Unduh paket via apt untuk arsitektur lain


15

Saya saat ini dalam arsitektur amd64, jadi ketika saya mencoba apt-get download vlc, itu mengunduh arsitektur yang sesuai untuk sistem saya, tetapi bagaimana saya bisa mengunduh versi i386 melalui apt?

Ini untuk ekspor ke sistem lain yang tidak memiliki koneksi internet, juga adakah cara untuk mengunduh setiap dependensi yang mengikuti?


Apakah Anda ingin menginstalnya?
Braiam

Hanya fyi, saya telah memperluas jawaban saya dengan pengetahuan baru.
Seth

Jawaban:


13

Ya Anda bisa, cukup tambahkan :i386perintah unduhan, seperti ini:

sudo apt-get download <package>:i386  

Jadi untuk Anda:

sudo apt-get download vlc:i386  

Saya tidak mengetahui cara apa pun mengunduh secara otomatis dependensi paket, selain build-depitu tidak akan berhasil dalam kasus Anda.

Setelah melihat sedikit lebih dalam di manual, saya telah menemukan bahwa Anda dapat, pada kenyataannya, menggunakannya build-depsampai batas seperti ini:

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

Yang kemudian akan mengunduh paket-paket yang diperlukan ke direktori saat ini. Namun perlu diperhatikan, yaitu build-depmelihat mengkompilasi paket dari sumber, tidak menginstalnya dari a .debsehingga akan menyarankan hal-hal seperti build-essentialdan gccyang mungkin diperlukan untuk mengkompilasi vlc, tetapi belum tentu menginstal dari a .deb.

Mungkin lebih mudah untuk membuat daftar dependensi utama vlc dengan apt-cache:

apt-cache depends vlc:i386  

Jika Anda ingin memfilter dengan hanya bergantung gunakan:

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

Perhatikan bahwa beberapa paket, seperti libc6datang secara default di Ubuntu, jadi Anda tidak perlu mengunduhnya. Jika Anda hanya ingin mengunduh semua dependensi dan menangani apakah Anda memerlukannya atau tidak nanti Anda dapat menggunakan skrip ini:

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  

Ini akan mengunduh semua paket yang tergantung, direkomendasikan, dan yang disarankan dan mengubah rute kesalahan apa pun no32.txt. Anda harus melihat di sana ketika Anda selesai, karena beberapa paket yang diperlukan yang tidak memiliki versi i386 (yaitu mereka bukan binari) akan ada di sana.

Hanya apt-get downloaditu saja .

Perhatikan bahwa skrip ini tidak terlalu pintar, tidak memperhitungkan banyak hal, jadi Anda mungkin mendapatkan beberapa kesalahan konyol, namun harus berfungsi secara umum.


Dan bagaimana dengan paket build-dep: i386?
enedil

@enedil build-dep mengunduh dan menginstal, jadi ini akan menginstal banyak paket i386 di mesinnya, yang bukan yang dia inginkan. Lihat man apt-get untuk detailnya.
Seth

Ada juga aptitude downloadperintah. Tidak yakin apakah itu multiarch diaktifkan.
Faheem Mitha

@FaheemMitha Ya, bakat bisa melakukan apa saja apt-get.
Seth

0

Salah satu cara Anda dapat melakukan ini adalah dengan menggunakan chroot atau proot pada sistem host untuk membuat sistem file terisolasi dari arsitektur yang sesuai. Anda kemudian dapat menjalankan apt di lingkungan yang ditiru untuk menginstal paket khusus arsitektur seperti jika Anda berada di mesin arsitektur itu. Memang berjalan sedikit lebih lambat karena meniru arsitektur, tetapi Anda kemudian memiliki rootfs yang dapat Anda gunakan untuk perangkat lain dari arsitektur yang berbeda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.