我已经使用内核制作了一个可启动的基于 Linux 的操作系统,仅使用 busybox,并且在 QEMU 模拟器中测试它是成功的。我需要的下一步是在我的自定义 Linux 上安装 dpkg 和 APT(Debian 软件包管理器)。
我怎样才能做到这一点?
只需安装 Debian 软件包管理器源代码并编译,然后移植到我系统的 rfs 即可?我不知道到底该怎么做。
(安装 Debian 包管理器是实现我目标的唯一方法,因为我的教授是这样指导的。所以其他方法对我来说没有用)
答案1
在继续之前,请允许我声明:
如果您的教授使用的是
apt
,那么她正在使用基于 Debian 的系统。我建议使用相同的发行版而不是您自己的“从头开始”系统。如果您因为想要自定义内核而使用从头开始的系统,那么您能安装该内核基于 Debian 的系统。如果您确实使用
apt
,您最终会从某个地方下载软件包。你希望它在哪里? Ubuntu 的存档? Debian 的存档?小学档案馆?您还需要知道要下载哪个版本的内容。 Debian与 Debian和 Ubuntustretch
有很多不兼容之处。当您使用安装包时,如果您没有安装同一发行版的同一版本的所有软件,则会遇到依赖性问题。因此,如果您无论如何都要从发行版安装所有内容,只需从该发行版开始并替换内核(如果这是您想要做的事情)。buster
bionic
apt
在基于 debian 的系统上,一切都由 跟踪
dpkg
,包括dpkg
其自身和非常低级的依赖项。大多数事情都取决于libc
并且您可能已经安装了它。这将导致冲突,因为它是在没有安装的情况下安装的dpkg
,dpkg
无法知道它是否存在于您的系统上,并且无法验证libc
您拥有的版本是否与您尝试安装的软件包兼容。
我认为最简单的方法是下载适合您的架构的dpkg
二进制包(dpkg_<version>_<arch>.deb
)并手动解压缩。当然,在您尝试使用 之前,请先使其正常工作apt
。
如果您使用的是基于 debian 的主机,则可以apt download dpkg
,否则,请从直接存档。
您需要手动执行通常执行的dpkg*.deb
操作dpkg
(唯一的维护者脚本dpkg
因此postrm
不相关)。
- 下载
dpkg_<version>_<arch>.deb
- 提取内容
ar -x *.deb
- 提取
control.tar.xz
与tar -xf
- 检查
control
文件并检查是否安装了所有依赖项
- 检查
- 解压
data.tar.xz
到/
之后,假设您首先dpkg -i *.deb
安装deb
随dpkg
.
一般建议是:如果您想使用dpkg
或apt
,请使用它附带的发行版。如果不这样做,有太多事情可能会出错。