Завантажте пакет через apt для іншої архітектури


15

Зараз я перебуваю в архітектурі amd64, тому коли я намагаюся apt-get download vlc, він завантажив відповідну архітектуру для моєї системи, але як я можу завантажити версію i386 через apt?

Це для експорту до іншої системи, яка не має підключення до Інтернету, а також є спосіб завантаження будь-яких залежностей, які випливають?


Ви хочете встановити його?
Брайам

Тільки фій, я розширив свою відповідь новими знаннями.
Сет

Відповіді:


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'  

Зауважте, що деякі пакети, як-от libc6приходять за замовчуванням в Ubuntu, тому завантажувати їх не потрібно. Якщо ви просто хочете завантажити всі залежності та вирішити, чи потрібні вони вам чи пізніше, ви можете скористатися цим сценарієм:

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: i386?
enedil

@enedil build-dep завантажує та встановлює, тож це встановить на його машину купу пакетів i386, що не є тим, чого він хоче. Докладні відомості див. У людині.
Сет

Також є aptitude downloadкоманда. Не впевнений, чи ввімкнено багатоархів.
Faheem Mitha

@FaheemMitha Так, здатність може робити майже все, що apt-getможна.
Сет

0

Один із способів зробити це - за допомогою chroot або proot в хост-системі для створення ізольованої файлової системи відповідної архітектури. Потім ви можете запустити apt в цьому емульованому середовищі, щоб встановити специфічні для архітектури пакети так само, як якщо б ви знаходилися на машині цієї архітектури. Він працює трохи повільніше, оскільки імітує архітектуру, але тоді у вас є rootfs, який можна розгорнути на інший пристрій іншої архітектури.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.