AlpineLinux默认使用uclibc版本的busybox,其动态链接库与gclibc有些区别,会导致某些程序没有办法正常运行。可以将busybox版本切换为gclibc。

uclibc与gclibc的异同

uclibc与gclibc都是c语言库,总体来说uclibc更加精简。

切换gclibc版本的buxybox

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
wget http://www.archlinux.org/packages/community/i686/busybox/download/ -O busybox.pkg.tar.xz
wget http://www.archlinux.org/packages/core/i686/glibc/download/ -O glibc.pkg.tar.xz
mkdir -p ~/chroot/usr/bin/ ~/chroot/{dev,proc,root,etc}
for i in *.pkg.tar.xz;do
bsdtar xfJ $i -C ~/chroot
done
cp /etc/resolv.conf ~/chroot/etc/
ln -s /bin/busybox ~/chroot/bin/sh
ln -s /bin/busybox ~/chroot/bin/ln
sudo chroot ~/chroot/ /bin/sh
1
for i in $(busybox --list);do ln -s /bin/busybox /usr/bin/$i;done

参考文章