Apt-get установить несколько пакетов без остановки

25

Я делаю bash-скрипт, который устанавливает различные пакеты, используя apt-get install. Тем не менее, я заметил, что если есть строка, которая говорит:

sudo apt-get install package1 package2 package3

и ни один из пакетов не найден, ни один из остальных не будет установлен. Как мне заставить его продолжать работать, даже если он не может найти один из пакетов?

Заранее спасибо.

Hypercube
источник

Ответы:

18

Я предлагаю apt-getвариант

sudo apt-get --ignore-missing install $list_of_packages

но имейте в виду, что пропущенные зависимости нельзя игнорировать, и даже если вы используете их, --forceвы можете получить сломанную систему.

enzotib
источник
1
Обратите внимание, что --ignore-missingтолько обходные пути для проблемы в загрузке. См superuser.com/a/844627/106974
Айзекс
3
Это на самом деле не работает.
Leoheck
9
for i in package1 package2 package3; do
  sudo apt-get install $i
done
Александр Левчук
источник
5
Немного грубовато с точки зрения производительности (дерево зависимостей пакетов создается с нуля для каждой итерации), но должно работать нормально.
Сергей Брославский
Как намекал @blueskin, использование этой -yопции было бы хорошо, если вы не хотите с ней взаимодействовать, особенно при установке огромного списка пакетов.
pd12
0

Устанавливайте каждый пакет как отдельную команду, а не как одну команду. Таким образом, если один из них не может быть установлен из-за того, что он не найден или по какой-либо другой причине, он не остановит установку других. Для которого вы можете использовать цикл for, как показано ниже. Кроме того, не забывайте использовать -yфлаг при установке большого количества пакетов, чтобы избежать беспорядка при наборе yesкаждого из них.

INSTALL_PKGS="pk1 pk2 pk3 pk4 pk5 ... and so ... on ..pk_gogol"
for i in $INSTALL_PKGS; do
  sudo apt-get install -y $i
done
blueskin
источник
@Fabby Я отредактировал текст, чтобы сделать его явным для вашего удовлетворения
blueskin
1
Это больше похоже на изменение существующего ответа, чем на новый ответ. ¯ \ _ (ツ) _ / ¯ Извините! -1 ...
Fabby