Я делаю bash-скрипт, который устанавливает различные пакеты, используя apt-get install. Тем не менее, я замечаю, что если есть строка с надписью:
sudo apt-get install package1 package2 package3
и ни один из пакетов не найден, ни один из остальных не будет установлен. Как мне заставить его работать, даже если он не может найти один из пакетов?
Заранее спасибо.
Я предлагаю вариант apt-get
sudo apt-get --ignore-missing install $list_of_packages
, но помните, что пропущенные зависимости нельзя игнорировать, и даже если вы используете --force
, вы можете получить сломанную систему.
for i in package1 package2 package3; do
sudo apt-get install $i
done
Устанавливайте каждый пакет как отдельную команду, а не как отдельную команду. Таким образом, если один из них не может быть установлен из-за не найденной или какой-либо другой ошибки, он не остановит установку других. Для которого вы можете использовать цикл 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