仅在尚未安装的情况下安装软件包列表

hap*_*tic 10 package-management apt dpkg 11.10

我正在尝试尽可能自动化我的设置。

为此,我有要安装的软件包列表,例如: bansheewireshark audacity Thunderbird Thunderbird-lightning caliber deluge unison-gtk usb-creator-kde ding digikam Chromium-browser blankbit soundconverter kdenlive firefox-kde-support vlc kwrite openjdk -6-jre icedtea6-plugin virtualbox virtualbox-guest-additions-iso。

我想编写一个小的 bash 脚本来调用 apt-get 来安装这些包,只有当它们尚未安装时。

目前我有这个,但它不起作用:

dpkg -s "$1" > /dev/null 2>&1 || apt-get -y install "$1",(其中 $1 是列表)

Cae*_*ium 5

apt-get 会相当安静地跳过任何已安装的软件包,所以我不确定为什么它需要得到特殊处理?IE:

root@bun:~# apt-get -y install  vlc
Reading package lists... Done
Building dependency tree       
Reading state information... Done
vlc is already the newest version.
Run Code Online (Sandbox Code Playgroud)

有什么特殊原因这对您不起作用吗?

  • 避免使用已安装的软件包名称调用 apt-get -y install 的原因之一是,在这种情况下,apt-get 会将自动安装的软件包的状态更改为“手动安装”。有关详细信息,请参阅 https://askubuntu.com/q/831/550780。 (3认同)