Apt-get安装多个软件包,无需停止


25

我正在制作一个使用apt-get install安装各种软件包的bash脚本。但是,我注意到如果有一行显示:

sudo apt-get install package1 package2 package3

并且找不到任何一个软件包,将不会安装其他任何一个。即使找不到其中一个软件包,我如何使它继续运行?

提前致谢。

Answers:


18

我建议一个apt-get选择

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

但请注意,不能忽略缺少的依赖关系,即使您使用--force它也可能会导致系统损坏。


1
请注意,--ignore-missing仅下载中存在问题的解决方法。请参阅superuser.com/a/844627/106974
IsaacS,2016年

3
这实际上是行不通的。
leoheck

9
for i in package1 package2 package3; do
  sudo apt-get install $i
done

5
有点残酷的性能(每次迭代都从头开始构建软件包依赖树),但是应该可以正常工作。
Serge Broslavsky

正如@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

@Fabby我已经编辑过文字,以使其明确让您满意
blueskin

1
这看起来更像是对现有答案的编辑,而不是新答案。¯\ _(ツ)_ /¯对不起!-1 ...
Fabby
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.