Скачать пакет через 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, но не обязательно устанавливать из a .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 на его компьютер, а это не то, что он хочет. Смотрите man apt-get для деталей.
Сет

Также есть aptitude downloadкоманда. Не уверен, что он поддерживает multiarch.
Фахим Митха

@FaheemMitha Да, aptitude может делать практически все apt-get.
Сет

0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.