https://unix.stackexchange.com/questions/235795/use-dpkg-in-busybox と同様の問題
こんにちは! dpkgに新しいバージョンのbusyboxが付属していることに興奮したので、パッケージのインストールに取り掛かりました。 aptのすべての依存関係を収集し、実行しました。dpkg -i *.deb
残念ながら、エラーが発生しました。dpkg: Unable to open /var/lib/dpkg/status: no such file or directory
わかりました。ディレクトリ/ var/lib/dpkgを作成してから、空のファイル/ var/lib/dpkg/statusを作成しました。それから私は再試行しました:dpkg -i *.deb dpkg: package libtasn1-6 pre-depends on multiarch-support, which is not installed or flagged to be installed
multiarch-supportをインストールしようとしましたが、multiarch-supportに依存するlibgccに依存するlibc6に依存しています。また、それらをすべて同じ行にインストールしようとしましたが、同じ依存関係エラーが発生しました。
そこで--force-depends
を使用してlibgccをインストールしようとしましたが、/ var/lib/dpkg/info/libgcc1.md5sumsがないと文句を言うので、infoディレクトリを作成します。しかしその後:sh: /var/lib/dpkg/info/libgcc1.postinst: No such file or directory dpkg: postinst failed, error code 256
何が足りないのですか?実際にパッケージをインストールできるようにbusyboxのdpkgを設定する方法はありますか?
dpkg
ユーティリティの実行は1つのことであり、ディストリビューションのインストールは別のことです。ディストリビューションを実行するには、多数のパッケージをインストールし、最も基本的なユーティリティでは、ほとんどすべてが他のすべての動作に依存しているという事実を回避する必要があります。 ブートストラップ の問題です。
幸いなことに、そのためのアプリがあります! Debootstrap はまさにこの目的のために設計されています。 BusyBoxを搭載したシステムでDeboostrapを実行できると思いますが、2フェーズモードを使用する方がおそらく簡単です。
Debootstrap(もちろん、Debianでパッケージとして入手可能ですが、他のいくつかのディストリビューションでも入手可能)を入手し、Linux PCで実行して、ディレクトリツリーを準備します。
debootstrap --Arch=armhf --foreign jessie debian
BusyBoxを使用してディレクトリツリーをデバイスにコピーし、ファイル属性を保持するようにします。 tar
を使用してディレクトリをアーカイブし、ターゲットデバイスで解凍します。
ターゲットデバイスで、アーカイブを解凍した場所にchrootし、実行します
/debootstrap/debootstrap --second-stage