如何使用 dpkg 在 Alpine Linux 上安装 .apk,就像在 Debian 中安装 .deb 一样

如何使用 dpkg 在 Alpine Linux 上安装 .apk,就像在 Debian 中安装 .deb 一样

我的问题就在标题里。问题:

与其他发行版的比较没有提到在 Debian 或 Gentoo 的等效版本或 Alpine Linux 的 .apk 中安装本地 .deb。此外,apk add当我想从下载的 .apk 文件安装时,该命令会抱怨无法满足的依赖关系,并且它没有指出哪里出了问题,只是:

world: <package_name> <package_name>

简单的或多或少明显的搜索,例如how to install apk on alpine linux返回一些奇怪的东西或 Android 的东西,使得 Alpine Linux 看起来根本不存在 - 或者 - 不支持安装下载的包,就像你在 Debian 中使用 dpkg 所做的那样。

答案1

假设你正在尝试在 Alpine 中安装 glibc

将软件包下载到当前目录中

wget "https://circle-artifacts.com/gh/andyshinn/alpine-pkg-glibc/6/artifacts/0/home/ubuntu/alpine-pkg-glibc/packages/x86_64/glibc-2.21-r2.apk"
wget "https://circle-artifacts.com/gh/andyshinn/alpine-pkg-glibc/6/artifacts/0/home/ubuntu/alpine-pkg-glibc/packages/x86_64/glibc-bin-2.21-r2.apk"

然后,使用带--allow-untrusted标志的apk

apk add --allow-untrusted glibc-2.21-r2.apk glibc-bin-2.21-r2.apk

并完成安装(仅此示例需要)

/usr/glibc/usr/bin/ldconfig /lib /usr/glibc/usr/lib

答案2

一般来说,预先构建的包是更好的选择,但如果您想要或不介意从源代码构建,您可以这样做:

a.sh

apk add alpine-sdk sudo
abuild-keygen -ain
git clone --branch v3.15.4 --single-branch --depth 1 https://gitlab.alpinelinux.org/alpine/aports
cd aports/main/musl
abuild -rF
apk add /root/packages/main/x86_64/musl-1.2.2-r7.apk
$ docker run --rm -itv $PWD:/host alpine:3.15 sh -eux host/a.sh

如果你在主机操作系统上执行此操作,通常不希望在 下构建root。在这种情况下,你不需要传递-Fabuild

更多详情,请参阅这一页

答案3

看着那(这AlpineLinux 维基页面Alpine Linux 软件包管理

逐字逐句地

由于 Alpine Linux 设计为从 RAM 运行,因此包管理涉及两个阶段:

  1. 在正在运行的系统上安装 / 升级 / 删除软件包
  2. 将系统恢复到先前配置的状态(例如重启后),包括所有先前安装的软件包和本地修改的配置文件。(仅限基于 RAM 的安装)

APK是用于在正在运行的系统上安装、升级或删除软件的工具。
是用于捕获将系统恢复到以前配置状态所需数据的工具。

本页记录了apk 工具- 参见Alpine 本地备份页面用于 lbu 工具。

相关内容