如何在一个命令行中安装和删除程序,并只确认一次?
当我安装Ubuntu时,我通常做的第一件事是删除一些程序并安装其他程序。 为此,我在终端中输入以下内容:
sudo apt-get remove applicationA applicationB applicationC && sudo apt-get install applicationX applicationY applicationZ
。
这很好用,但问题是我必须确认两次:首先我必须确认删除应用程序,并在一段时间后我必须确认其他人的安装。 如果我只需要确认一次就会很棒,因为在此期间我不必再回到计算机上。 有没有命令要做到这一点?
请注意,我不是在寻找Synaptic Package Manager中的变通方法。 我想从命令行执行此操作。
谢谢。
对apt-get
使用-y
选项。
从手册页 :
-y, --yes, --assume-yes Automatic yes to prompts; assume "yes" as answer to all prompts and run non-interactively. If an undesirable situation, such as changing a held package, trying to install a unauthenticated package or removing an essential package occurs then apt-get will abort. Configuration Item: APT::Get::Assume-Yes.
所以对你而言,它看起来像sudo apt-get remove -y foo1 foo2 foo3
和sudo apt-get install -y foo foo1 foo2 foo3
。
作为已发布的答案的替代方法 ,您还可以选择使用aptitude
在一个命令中安装和删除软件包。 使用aptitude install命令添加-
在包名称之后删除它,并使用aptitude删除命令在包名称之后添加+
以安装它。
如果你输入
sudo aptitude install pkg1 pkg2-
将安装第一个包,而第二个包将被删除。
但是 ,另一方面,如果你使用
sudo aptitude remove pkg1+ pkg2
第二个包将被删除,第一个包将被安装。
来源:有关apt
和aptitude
的更详细解释,请参阅Debian手册 。
从apt-get
手册页:
install […]如果连字符附加到包名称(没有中间空格),则如果已安装,则将删除标识的包。 类似地,可以使用加号来指定要安装的包。 后面这些function可用于覆盖apt-get的冲突解决系统所做出的决策。
您可以在包名称后附加连字符,然后apt-get将删除该包。 所以为了删除包a
并安装b
:
sudo apt-get install a- b
也许只使用一次sudo
调用来执行这两个命令:
sudo sh -c 'apt-get remove abc && apt-get install def'