mirror of
https://gitee.com/spark-store-project/additional-base-lib
synced 2025-12-15 11:32:07 +08:00
Compare commits
9 Commits
abl-8-rele
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 9cca9d7e7b | |||
|
|
aaedef8b83 | ||
|
|
22a319014d | ||
|
|
1b4bfd36c1 | ||
|
|
19297c6eef | ||
|
|
e9a5e11b52 | ||
|
|
f6087dacf6 | ||
|
|
28803b11b6 | ||
|
|
179cf44241 |
@@ -42,9 +42,6 @@ https://bbs.deepin.org/post/256555
|
||||
Common solution for many library problem (in Chinese):
|
||||
https://bbs.deepin.org/post/256081
|
||||
|
||||
A help for someone like to port this script to other GNU/Linux platform (in Chinese):
|
||||
https://bbs.deepin.org/post/258721
|
||||
|
||||
#### Customize
|
||||
If the released package cannot fit your needs (such as library version, architecture), for deb package, you may try `make-deb.sh` to create your own additional base lib. Download the project, and edit the script, change 3 package download URLs to which you want. You may found many version and architectures from debian page: https://www.debian.org/distrib/packages , and then run the script `make-deb.sh`. It will auto-detect architecture of packages, and take corresponding methods.
|
||||
Install these packages first: bash, coreutils, dpkg, dpkg-dev, grep, wget, patchelf
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
用轻量级容器工具bubblewrap解决GNU/Linux操作系统中常见的glibc不兼容问题。
|
||||
|
||||
|因为一些原因我不能继续更新这个程序。可以阅读[这篇文章了解ABL的原理和设计细节](https://bbs.deepin.org/zh/post/282284)。|
|
||||
|-|
|
||||
|
||||
#### 概述
|
||||
|
||||
如果经常在GNU/Linux平台使用非系统软件源内的应用,很容易遇到这样的问题:
|
||||
@@ -42,12 +45,9 @@ https://bbs.deepin.org/post/256555
|
||||
解决动态库问题的通用解决方法:
|
||||
https://bbs.deepin.org/post/256081
|
||||
|
||||
想要移植程序到其他系统或平台的,可以参考:
|
||||
https://bbs.deepin.org/post/258721
|
||||
|
||||
#### 定制
|
||||
如果这里发布的deb包不符合你的要求(库版本、架构),你可以使用`make-deb.sh`创造你自己的附加基础库。你需要将项目下载到本地,然后编辑这个脚本,把三个包的下载链接改成你想要的即可。你可以在debian的网站找到各种版本和架构的下载链接:https://www.debian.org/distrib/packages ,然后在当前目录中执行`make-deb.sh`即可。他会自动识别软件包的架构并采取相应方案。
|
||||
在这之前,你需要安装以下软件包:bash, coreutils, dpkg, dpkg-dev, grep, wget, patchelf
|
||||
|
||||
对于rpm包,你可以使用`make-rpm.sh`,你需要将项目下载到本地,然后编辑这个脚本,把三个包的下载链接改成你想要的即可。你可以在fedora的网站找到各种版本和架构的下载链接:https://packages.fedoraproject.org/ ,然后在当前目录中执行`make-rpm.sh`即可。他会自动识别软件包的架构并采取相应方案。rpm包会存储在`~/rpmbuild/RPMS`中。
|
||||
在这之前,你需要安装以下软件包:bash,coreutils,rpm-build, wget, patchelf
|
||||
在这之前,你需要安装以下软件包:bash, coreutils, rpm-build, wget, patchelf
|
||||
|
||||
26
make-deb.sh
26
make-deb.sh
@@ -1,10 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
LIBC6_DOWNLOAD_URL=http://ftp.cn.debian.org/debian/pool/main/g/glibc/libc6_2.36-9+deb12u1_amd64.deb
|
||||
LIBC_BIN_DOWNLOAD_URL=http://ftp.cn.debian.org/debian/pool/main/g/glibc/libc-bin_2.36-9+deb12u1_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=8
|
||||
ABL_VERSION=9
|
||||
|
||||
check(){
|
||||
if [ "$1" != 0 ]
|
||||
@@ -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
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
GLIBC_DOWNLOAD_URL=https://kojipkgs.fedoraproject.org//packages/glibc/2.38/1.fc39/x86_64/glibc-2.38-1.fc39.x86_64.rpm
|
||||
GLIBC_COMMON_DOWNLOAD_URL=https://kojipkgs.fedoraproject.org//packages/glibc/2.38/1.fc39/x86_64/glibc-common-2.38-1.fc39.x86_64.rpm
|
||||
LIBSTDCxx_DOWNLOAD_URL=https://kojipkgs.fedoraproject.org//packages/gcc/13.2.1/1.fc39/x86_64/libstdc++-13.2.1-1.fc39.x86_64.rpm
|
||||
GLIBC_DOWNLOAD_URL=https://kojipkgs.fedoraproject.org//packages/glibc/2.39/8.fc40/x86_64/glibc-2.39-8.fc40.x86_64.rpm
|
||||
GLIBC_COMMON_DOWNLOAD_URL=https://kojipkgs.fedoraproject.org//packages/glibc/2.39/8.fc40/x86_64/glibc-common-2.39-8.fc40.x86_64.rpm
|
||||
LIBSTDCxx_DOWNLOAD_URL=https://kojipkgs.fedoraproject.org//packages/gcc/14.0.1/0.15.fc40/x86_64/libstdc++-14.0.1-0.15.fc40.x86_64.rpm
|
||||
|
||||
ABL_VERSION=8
|
||||
ABL_VERSION=9
|
||||
ABL_RPM_RELEASE=1
|
||||
|
||||
check(){
|
||||
|
||||
@@ -15,9 +15,6 @@ then
|
||||
exit
|
||||
fi
|
||||
|
||||
ABL_LD_SO_PATH=`readlink -e $ABL_TARGET_LD_SO_PATH`
|
||||
ABL_LIBC_SO_PATH=`readlink -e /${ABL_DIR_PREFIX}/libc.so.6`
|
||||
|
||||
if [ "$LD_LIBRARY_PATH" = "" ]
|
||||
then
|
||||
ABL_LIBRARY_PATH="/usr/${ABL_DIR_PREFIX}/additional-base-lib/"
|
||||
@@ -25,6 +22,11 @@ else
|
||||
ABL_LIBRARY_PATH="$LD_LIBRARY_PATH;/usr/${ABL_DIR_PREFIX}/additional-base-lib"
|
||||
fi
|
||||
|
||||
unset LD_LIBRARY_PATH
|
||||
|
||||
ABL_LD_SO_PATH=`readlink -e $ABL_TARGET_LD_SO_PATH`
|
||||
ABL_LIBC_SO_PATH=`readlink -e /${ABL_DIR_PREFIX}/libc.so.6`
|
||||
|
||||
ABL_BWRAP_SETUID=`which bwrap`
|
||||
ABL_BWRAP_SETUID=`readlink -e "$ABL_BWRAP_SETUID"`
|
||||
ABL_BWRAP_SETUID=`ls -l "$ABL_BWRAP_SETUID"`
|
||||
|
||||
Reference in New Issue
Block a user