dpkg --rootを使用してchroot環境を構築する方法

dpkg --rootを使用してchroot環境を構築する方法

私は非常に最小限のchroot環境および/またはdockerの基本イメージを構築しようとしており、実行したいバイナリをサポートするパッケージだけを厳密にインストールしたいと思います。私はそのようなツールには興味がありません。ブーストに行くなぜなら、これは私が望むものではなく、完全な「システム」を構築するよう強制しているようです。私は私が必要だと思うパッケージだけが欲しい。

必要な.debファイルを手動でダウンロードして、宣言された依存関係とPreDependsを満たすためにすべてがダウンロードされたことを確認できます。

espをインストールしようとするとdpkg --root=<target>問題が発生しますlibc6。インストール前/インストール後、スクリプトが正しい場所に配置されていないようですが、何が欠けているかわかりません。

# dpkg --install --root /target /files/archive.ubuntu.com/ubuntu/pool/main/g/glibc/libc6_2.37-0ubuntu2_amd64.deb
(Reading database ... 0 files and directories currently installed.)
Preparing to unpack .../libc6_2.37-0ubuntu2_amd64.deb ...
dpkg (subprocess): unable to execute new libc6:amd64 package pre-installation script (//var/lib/dpkg/tmp.ci/preinst): No such file or directory
dpkg: error processing archive /files/archive.ubuntu.com/ubuntu/pool/main/g/glibc/libc6_2.37-0ubuntu2_amd64.deb (--install):
 new libc6:amd64 package pre-installation script subprocess returned error exit status 2
dpkg (subprocess): unable to execute new libc6:amd64 package post-removal script (//var/lib/dpkg/tmp.ci/postrm): No such file or directory
dpkg: error while cleaning up:
 new libc6:amd64 package post-removal script subprocess returned error exit status 2
Errors were encountered while processing:
 /files/archive.ubuntu.com/ubuntu/pool/main/g/glibc/libc6_2.37-0ubuntu2_amd64.deb

ベストアンサー1

まだターゲットディレクトリにインストールしていないようですdash。デフォルト以外のインストールディレクトリを使用すると、dpkgchroot内のメンテナンススクリプトを呼び出すため、そのshebangはchrootで満たされる必要があります。

debootstrapハンドルなどのツールで実行する最も難しい作業の1つである依存関係の循環が発生する可能性があります。便利かもしれませんmmdebstrap。 「抽出」および「カスタム」バリアントは、他のもの(必要なパッケージではない)を必要とせずに、特定のパッケージのリスト(および依存関係)のインストールをサポートします。

おすすめ記事