当 apt-get 遇到安装无法定位包问题时继续出错

tbe*_*nz9 15 package-management ubuntu apt-get

当我运行以下命令时:

sudo apt-get install vim abcde php5-cli
Run Code Online (Sandbox Code Playgroud)

它失败并显示以下消息,这是预期的行为:

E: 无法找到包 abcde`。

我希望它安装vim,即使在abcde继续安装php5-cli包时出现错误。这意味着我想apt-get继续向下列表,即使它找不到某些包。

我试过了:

sudo apt-get install --ignore-missing vim abcde php5-cli
Run Code Online (Sandbox Code Playgroud)

小智 11

简短回答:您可能实际上不想这样做。

这是为什么? 关于这个特定功能已经有很多讨论。在这个(重复的)错误报告和它所链接的那个报告中就是这样的一个。

错误报告中的讨论还解释了“--ignore-missing”仅适用于下载包的问题,​​而该包本应存在于您的“apt-get”所拥有的信息中。这也在此处文档中进行了解释

有解决方法吗?

如果在阅读了之前的资料后您仍然非常确定要这样做,那么另一方面,有一些(次优但相当安全的)选项,例如用户“Aleksandr Levchuk”在此处指定的选项:

for i in package1 package2 package3; do
  sudo apt-get install $i
done
Run Code Online (Sandbox Code Playgroud)

或者,如果您更喜欢带有最少修改的单线:

for i in package1 package2 package3; do sudo apt-get install $i; done
Run Code Online (Sandbox Code Playgroud)

如果有很多包,你可以添加,-y这样它就不会重复确认:

for i in package1 package2 package3; do
  sudo apt-get install -y $i
done
Run Code Online (Sandbox Code Playgroud)

或者:

for i in package1 package2 package3; do sudo apt-get install -y $i; done
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。