別のアーキテクチャ向けにapt経由でパッケージをダウンロードする


15

現在、私はamd64アーキテクチャにいるので、試してみるとapt-get download vlc、システムに適切なアーキテクチャがダウンロードされていますが、apt経由でi386バージョンをダウンロードするにはどうすればよいですか?

インターネットに接続していない別のシステムにエクスポートするためのものです。また、それに続く依存関係をダウンロードする方法はありますか?


インストールしますか?
Braiam 14

ただ、新しい知識で答えを広げました。
セス

回答:


13

はい:i386、次のようにダウンロードコマンドに追加するだけです。

sudo apt-get download <package>:i386  

あなたのために:

sudo apt-get download vlc:i386  

パッケージの依存関係を自動的にダウンロードする方法は知りbuild-depませんが、あなたの場合はうまくいきません。

マンページをもう少し調べてみると、実際、次のbuild-depような範囲で使用できることがわかりました。

sudo apt-get build-dep --download-only vlc:i386  

これにより、必要なパッケージが現在のディレクトリにダウンロードされます。注しかし、それはbuild-dep、ソースからパッケージのコンパイルを見てから、それをインストールしていない.deb、それはのようなものを提案しますので、build-essentialおよびgccコンパイルのvlcに必要とされることができるが、必ずしもからインストールできません.deb

vlcの主な依存関係をリストする方が簡単かもしれませんapt-cache

apt-cache depends vlc:i386  

依存関係を使用してフィルタリングする場合:

apt-cache depends vlc:i386 | grep 'Depends'  

libc6Ubuntuにデフォルトで付属しているパッケージなど、一部のパッケージはダウンロードする必要がないことに注意してください。すべての依存関係をダウンロードし、後で必要かどうかを処理したい場合は、このスクリプトを使用できます。

for i in $(apt-cache depends vlc:i386 | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/'<'/''/ -e s/'>'/''/); do sudo apt-get download $i 2>>no32.txt; done  

これにより、依存パッケージ、推奨パッケージ、推奨パッケージがすべてダウンロードされ、エラーがあればに転送されますno32.txt。i386バージョンを持たない(つまり、バイナリではない)必要なパッケージがそこにあるので、完了したらそこを見てください。

ちょうどapt-get downloadそれら。

このスクリプトはあまり賢くなく、多くのことを考慮していないことに注意してください。したがって、いくつかの愚かなエラーが発生する可能性がありますが、一般的には動作するはずです。


build-dep package:i386はどうですか?
enedil

@enedil build-depはダウンロードインストールを行うため、これにより彼のマシンに多数のi386パッケージがインストールされますが、これは彼が望むものではありません。詳細については、man apt-getを参照してください。
セス14

aptitude downloadコマンドもあります。ただし、マルチアーチが有効になっているかどうかはわかりません。
ファヒームミタ14

@FaheemMithaはい、aptitudeはあらゆるapt-getことを実行できます。
セス14

0

これを行う1つの方法は、ホストシステムでchrootまたはprootを使用して、適切なアーキテクチャの分離されたファイルシステムを作成することです。次に、そのエミュレートされた環境でaptを実行して、あたかもそのアーキテクチャのマシンにいるかのように、アーキテクチャ固有のパッケージをインストールできます。アーキテクチャをエミュレートしているため、少し遅くなりますが、rootfsがあり、異なるアーキテクチャの別のデバイスに展開できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.