4 Commits

Author SHA1 Message Date
9cca9d7e7b !1 Fix: truncate control file for repeated runs ~~feat: add Provide field in deb~~
Merge pull request !1 from ZhongYic/master
2025-05-18 08:02:06 +00:00
zhongyic00
aaedef8b83 fix: truncate on control file creation for repeated runs. 2025-05-17 19:08:56 +08:00
从天空
22a319014d update README.md.
Signed-off-by: 从天空 <tic2929014466@aliyun.com>
2024-12-13 00:08:58 +00:00
CongTianKong
1b4bfd36c1 add usr merge detect for debian trixie 2024-06-30 23:51:51 +08:00
2 changed files with 20 additions and 7 deletions

View File

@@ -2,6 +2,9 @@
用轻量级容器工具bubblewrap解决GNU/Linux操作系统中常见的glibc不兼容问题。
|因为一些原因我不能继续更新这个程序。可以阅读[这篇文章了解ABL的原理和设计细节](https://bbs.deepin.org/zh/post/282284)。|
|-|
#### 概述
如果经常在GNU/Linux平台使用非系统软件源内的应用很容易遇到这样的问题

View File

@@ -1,8 +1,8 @@
#!/bin/bash
LIBC6_DOWNLOAD_URL=http://ftp.cn.debian.org/debian/pool/main/g/glibc/libc6_2.36-9+deb12u3_amd64.deb
LIBC_BIN_DOWNLOAD_URL=http://ftp.cn.debian.org/debian/pool/main/g/glibc/libc-bin_2.36-9+deb12u3_amd64.deb
LIBSTDCxx6_DOWNLOAD_URL=http://ftp.cn.debian.org/debian/pool/main/g/gcc-12/libstdc++6_12.2.0-14_amd64.deb
LIBC6_DOWNLOAD_URL=http://mirrors.ustc.edu.cn/debian/pool/main/g/glibc/libc6_2.38-13_amd64.deb
LIBC_BIN_DOWNLOAD_URL=http://mirrors.ustc.edu.cn/debian/pool/main/g/glibc/libc-bin_2.38-13_amd64.deb
LIBSTDCxx6_DOWNLOAD_URL=http://mirrors.ustc.edu.cn/debian/pool/main/g/gcc-14/libstdc++6_14-20240330-1_amd64.deb
ABL_VERSION=9
@@ -99,8 +99,18 @@ check $?
DEBIAN_MULTIARCH=${DEBIAN_MULTIARCH:21}
echo "$DEBIAN_MULTIARCH"
echo "check usrmerge status:":
if [ -d "./downloads/libc6/lib" ]
then
LIBC_LIB_DIR=""
echo "not usrmerge"
else
LIBC_LIB_DIR="usr/"
echo "usrmerge"
fi
echo "ld.so location:"
LD_SO_LOCATION=`patchelf --print-interpreter "./downloads/libc6/lib/${DEBIAN_MULTIARCH}/libc.so.6"`
LD_SO_LOCATION=`patchelf --print-interpreter "./downloads/libc6/${LIBC_LIB_DIR}lib/${DEBIAN_MULTIARCH}/libc.so.6"`
check $?
echo "$LD_SO_LOCATION"
@@ -144,13 +154,13 @@ rooted_readlink(){
}
echo "copy many libc6 components..."
cp -r "./downloads/libc6/lib/${DEBIAN_MULTIARCH}/" "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib"
cp -r "./downloads/libc6/${LIBC_LIB_DIR}lib/${DEBIAN_MULTIARCH}/" "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib"
check $?
echo "copy ld.so..."
mkdir --parents "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/$LD_SO_LOCATION"
rm -d "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/$LD_SO_LOCATION"
cp `rooted_readlink "./downloads/libc6/$LD_SO_LOCATION" "./downloads/libc6"` "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/$LD_SO_LOCATION"
cp `rooted_readlink "./downloads/libc6/${LIBC_LIB_DIR}${LD_SO_LOCATION}" "./downloads/libc6"` "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/$LD_SO_LOCATION"
check $?
echo "copy ldd script..."
@@ -166,7 +176,7 @@ DEB_INSTALL_SIZE=(`du -s ./deb-contents/`)
echo
echo "create control file..."
echo "Package: additional-base-lib" >> ./deb-contents/DEBIAN/control
echo "Package: additional-base-lib" > ./deb-contents/DEBIAN/control
echo "Version: $GLIBC_VERSION-$ABL_VERSION" >> ./deb-contents/DEBIAN/control
echo "Section: utils" >> ./deb-contents/DEBIAN/control
echo "Priority: optional" >> ./deb-contents/DEBIAN/control