Linux

如何在我的自定義 Linux 發行版中安裝 Debian 包管理器(dpk 和 apt)?

  • October 15, 2020

我已經使用核心製作了一個可引導的基於 Linux 的作業系統,僅busybox,並且在 QEMU 模擬器中測試它是成功的。我需要的下一步是在我的自定義 Linux 上安裝 dpkg 和 APT(Debian 包管理器)。

我怎樣才能做到這一點?

只需安裝 Debian 包管理器原始碼並編譯然後移植到我的系統的 rfs?我不知道具體該怎麼做。

(安裝 Debian 軟體包管理器是實現我的目標的唯一方法,因為我的教授是這樣指導的。所以其他方法對我沒有用)

在我繼續之前,讓我聲明:

  1. 如果您的教授使用的是apt,那麼她使用的是基於 debian 的系統。我建議使用相同的發行版而不是您自己的“從頭開始”系統。如果您因為想要自定義核心而使用從頭開始的系統,那麼您可以將該核心安裝為基於 debian 的系統。
  2. 如果你使用apt,你最終會從某個地方下載包。你希望它在哪裡?Ubuntu的存檔?Debian 的存檔?小學檔案?您還需要知道要下載哪個版本的東西。Debian與 Debian和 Ubuntustretch有許多不兼容的地方。當您使用安裝軟體包時,如果您沒有從同一發行版的同一版本安裝所有軟體,則會遇到依賴性問題。因此,如果您無論如何要從發行版安裝所有內容,只需從該發行版開始並更換核心(如果這是您想要做的事情)。buster``bionic``apt
  3. 在基於 debian 的系統上,一切都由 跟踪dpkg,包括dpkg自身和非常低級的依賴項。大多數事情都取決於libc您可能已經安裝了它。這將導致衝突,因為它是在沒有安裝的情況下安裝的dpkgdpkg無法知道它存在於您的系統上,並且無法驗證您擁有的版本與libc您嘗試安裝的軟體包兼容。

我認為最簡單的方法是為您的架構下載dpkg二進制包 ( dpkg_<version>_<arch>.deb) 並手動解壓縮。在您嘗試使用apt.

如果您使用的是基於 debian 的主機,則可以,否則,可以直接從存檔apt download dpkg中獲取二進製文件。

您需要手動執行dpkg*.deb通常dpkg的操作(唯一的維護者腳本dpkgpostrm這樣的,所以這不會是相關的)。

  1. 下載dpkg_<version>_<arch>.deb
  2. 提取內容ar -x *.deb
  3. 提取control.tar.xztar -xf
  4. 檢查control文件並檢查是否安裝了所有依賴項
  5. 提取data.tar.xz/

之後,假設您首先安裝它的依賴項,您應該能夠dpkg -i *.deb在您安裝的任何軟體包上安裝.deb``dpkg


一般建議是:如果您想使用dpkgor apt,請使用它附帶的發行版。如果你不這樣做,有太多事情可能會出錯。

引用自:https://unix.stackexchange.com/questions/614613