使用apt-get安装软件包列表


8

我重新安装了Lubuntu,并希望从给定列表安装软件包,而无需键入sudo apt-get install package_name。可能吗?

我不是在谈论安装后脚本,那是完全不同的东西。


Answers:


5

是的,只需在一行中用空格分隔所有软件包即可。例如

sudo apt-get install package_name1 package_name2 package_name3 package_name4

谢谢,如何停止apt-get询问我是否确实要安装软件包的问题?
2014年

2
添加-y选项。它很长,但是您可以阅读man apt-get以获取更多信息。
Sparhawk

23

如果您的文件(例如pkglist)包含要安装的软件包列表,例如:

pkg1
pkg2
pkg3

要么

pkg1 pkg2 pkg3

然后,您可以apt使用以下命令安装该软件包:

  1. sudo apt-get install $(cat pkglist)
  2. xargs sudo apt-get install < pkglist

有关更多信息,apt-get install请访问man apt-get安装部分。


2
如果您希望它按照任何要求进行安装,您将必须做xargs sudo apt-get -y install < pkglist
Emanuel Ey 2016年

+1如果每行列出一个软件包,则该文件必须使用Unix行结尾,否则apt-get将失败。
拉斯

您也可以使用-a或--arg-file选项将文件名直接传递给xargs xargs -a pkglist sudo apt install
瑞安

1

将所有程序包名称放入文件中(每行一个程序包名称)。然后运行以下命令以自动安装给定的软件包。

while read -r line; do sudo apt-get -y install "$line"; done < /path/to/the/packages/file

例:

$ cat file
vlc
firefox
$ while read -r line; do sudo apt-get install "$line"; done < file
[sudo] password for avinash: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
vlc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 499 not upgraded.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  ttf-lyx
The following packages will be upgraded:
  firefox
1 upgraded, 0 newly installed, 0 to remove and 498 not upgraded.
Need to get 35.8 MB of archives.
After this operation, 24.3 MB of additional disk space will be used.
Get:1 http://ftp.cuhk.edu.hk/pub/Linux/ubuntu/ trusty-updates/main firefox amd64 33.0+build2-0ubuntu0.14.04.1 [35.8 MB]
0% [1 firefox 67.0 kB/35.8 MB 0%]                           10.4 kB/s 57min 16s^

这不会比仅将软件包放在一行上要慢很多,因为它必须读取软件包列表并为每个软件包构建依赖关系树等,而不是一次执行?
Sparhawk
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.