高山Linux如何在x86_64体系结构上安装x86软件包

Abh*_*nav 3 docker alpine-linux

我正在尝试在官方的高山docker映像上安装32位软件包,但是apk add libcurl例如,每当我这样做时,它都会安装64位版本的libcurl,而我想安装32位软件包。有什么想法在Alpine Linux 3.7上怎么做?

Nic*_*lay 7

实际上,只有一个文件定义了从高山仓库中获取哪些软件包。是/etc/apk/arch

# cat /etc/apk/arch 
x86_64
Run Code Online (Sandbox Code Playgroud)

它的值显示了我们应该从高山回购中获取哪些软件包:

# cat /etc/apk/repositories 
http://dl-cdn.alpinelinux.org/alpine/v3.7/main
http://dl-cdn.alpinelinux.org/alpine/v3.7/community
Run Code Online (Sandbox Code Playgroud)

因此,我们可以在这里技巧。我们可以“切换”高山以从存储库中获取x86软件包:

/ # echo "x86" > /etc/apk/arch
/ # apk add --no-cache libcurl
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86/APKINDEX.tar.gz
(1/12) Replacing musl (1.1.18-r2 -> 1.1.18-r2)
(2/12) Replacing busybox (1.27.2-r8 -> 1.27.2-r8)
Executing busybox-1.27.2-r8.post-upgrade
(3/12) Replacing alpine-baselayout (3.0.5-r2 -> 3.0.5-r2)
Executing alpine-baselayout-3.0.5-r2.pre-upgrade
Executing alpine-baselayout-3.0.5-r2.post-upgrade
(4/12) Replacing libressl2.6-libcrypto (2.6.3-r0 -> 2.6.3-r0)
(5/12) Replacing libressl2.6-libssl (2.6.3-r0 -> 2.6.3-r0)
(6/12) Replacing zlib (1.2.11-r1 -> 1.2.11-r1)
(7/12) Replacing apk-tools (2.8.2-r0 -> 2.8.2-r0)
(8/12) Replacing scanelf (1.2.2-r1 -> 1.2.2-r1)
(9/12) Replacing musl-utils (1.1.18-r2 -> 1.1.18-r2)
(10/12) Installing ca-certificates (20171114-r0)
(11/12) Installing libssh2 (1.8.0-r2)
(12/12) Installing libcurl (7.57.0-r0)
Executing busybox-1.27.2-r8.trigger
Executing ca-certificates-20171114-r0.trigger
OK: 5 MiB in 14 packages
Run Code Online (Sandbox Code Playgroud)