如何在基于Alpine的容器中安装rar?

时间:2020-11-06 13:52:23

标签: docker alpine rar

容器中的程序需要rar(除了unrar之外),我使用以下命令将其安装到/usr/bin

curl https://www.rarlab.com/rar/rarlinux-x64-6.0.b1.tar.gz | tar -xzvf - -C /tmp/
cp -rfp /tmp/rar/rar /usr/bin/rar

现在/usr/bin/rar存在并且具有755权限,并且/usr/bin$PATH中,但是当我运行rar -v/usr/bin/rar时,它会输出{{1 }}和ash: rar: not found

我在ash: /usr/bin/rar: not found中使用makemake install得到了相同的结果,然后将/tmp/rarrar复制到unrar中,即也在/usr/local/bin中。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

Alpine是使用musl-libc构建的。针对更常见的glibc编译的软件通常无法在此环境中运行,因为它找不到所需的动态加载器。

解决此问题的常用方法包括(a)自己编译代码或(b)安装为Alpine在其他地方构建的版本。我不相信Rar会选择这两种方式。

您最好的选择是将Alpine替换为基本(几乎所有内容)的其他基本图像(debian,ubuntu,fedora,centos等)。

(请注意,如果您只需要提取Rar存档,则可以在Alpine下简单地apk install unrar)。