Files
additional-base-lib/README.en.md

48 lines
2.7 KiB
Markdown
Raw Normal View History

2023-06-30 05:54:13 +00:00
# Additional Base Lib
2023-06-30 15:37:46 +08:00
Solve the common compatible problem of glibc on GNU/Linux, by lightweight container utility bubblewrap. (Support distros based on debian)
2023-06-30 05:54:13 +00:00
2023-06-30 15:37:46 +08:00
#### Introdution
2023-06-30 05:54:13 +00:00
2023-06-30 15:53:56 +08:00
When running applications, which are not include in system repository, there's sometimes a problem like this, which prevent application to run:
``/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.xx' not found (required by /path/to/xxx``
2023-06-30 15:37:46 +08:00
That's because the application build with higher glibc then running. Someone choose to manually upgrade glibc, but because of the importance of glibc in GNU/Linux, this method usually make the whole OS distroyed. There's some safer but more complex solution, however, the utility here is much easier using and installing, without troubles to damage your operating system.
2023-06-30 05:54:13 +00:00
2023-06-30 15:37:46 +08:00
#### License
2023-06-30 05:54:13 +00:00
2023-07-30 23:56:35 +08:00
There's no license restriction with scripts such as ablrun. All the library files are taken from some GNU/Linux distribution, their original license should followed.
2023-06-30 05:54:13 +00:00
2023-06-30 15:37:46 +08:00
#### Notes
2023-06-30 05:54:13 +00:00
2023-07-30 23:59:34 +08:00
1. Tested in deepin, but it's also able to run on other distro based on debian. And It's easy to port to other GNU/Linux platform.
2023-06-30 15:37:46 +08:00
2. It use bwrap, as a result, some application may not run, such as ones use there own container or ones need to mount filesystem. But appimages will run, because I designed a special method to support.
3. Also include a single libstdc++ library with glibc, because this problem is as often as that with glibc.
4. You may use LD_LIBRARY_PATH environment variable with ablrun to search libraries in other directories, which may solve some other library problem.
2023-06-30 05:54:13 +00:00
2023-06-30 15:37:46 +08:00
#### Usage
2023-06-30 05:54:13 +00:00
2023-07-30 23:56:35 +08:00
Install additional-base-lib debian package first (You may download from the right side, Releases section.):
2023-06-30 15:53:56 +08:00
`sudo apt install "path/to/package_name.deb"`
2023-06-30 05:54:13 +00:00
2023-06-30 15:53:56 +08:00
Then you can run command, that contains glibc problem, led by ablrun and a space:
`ablrun [command [arguments ...]]`
2023-06-30 15:37:46 +08:00
2023-06-30 21:20:55 +08:00
Uninstall:
2023-06-30 15:53:56 +08:00
`sudo apt remove additional-base-lib`
2023-06-30 15:37:46 +08:00
#### Resources
2023-06-30 15:59:59 +08:00
Original release page (in Chinese):
2023-06-30 15:37:46 +08:00
https://bbs.deepin.org/post/256555
2023-06-30 15:59:59 +08:00
Common solution for many library problem (in Chinese):
2023-06-30 15:37:46 +08:00
https://bbs.deepin.org/post/256081
2023-06-30 15:59:59 +08:00
A help for someone like to port this script to other GNU/Linux platform (in Chinese):
2023-06-30 15:37:46 +08:00
https://bbs.deepin.org/post/258721
2023-07-30 23:56:35 +08:00
#### Customize
2023-07-30 23:59:34 +08:00
If the released package cannot fit your needs (such as library version, architecture), you may try make-deb.sh to create your own additional base lib. Download the project, and edit the script, change 3 URLs for download packages 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 achitecture of packages, and take corresponding methods.