我发现通过brewfiles、caskfiles、dockerfiles、package.json等包文件在新机器上安装包非常方便。
对于 apt-get 是否有替代方案,因为我仍然只是
通过命令行使用它
apt-get install pkg1 pkg2 pkg3…
?
答案1
正如问题评论中所指定的,您可以编写一个简单的文本文件,列出要安装的软件包:
iceweasel
terminator
vim
假设它存储在 中packages.txt
,然后运行以下命令:
xargs sudo apt-get -y install < packages.txt
xargs
用于将包名称从packages.txt
文件传递到命令行。从xargs
手册中:
xargs
从标准输入读取项目,以空格(可以用双引号、单引号或反斜杠保护)或换行符分隔,并/bin/echo
使用任何初始参数执行命令(默认为 )一次或多次,后跟从标准输入读取的项目。
答案2
对 @ortomala-lokni 的答案进行一些改进,您可以直接将文件作为参数提供给xargs
:
xargs -a packages.txt sudo apt-get install
或者,如果您不包含任何非空白字符,您可以提供xargs
选项-r
以阻止调用apt-get
运行。packages.txt
答案3
sudo apt install `cat一些文件`
只需更换somefile
如有必要,可以使用文件名和路径。请注意,此命令使用反引号。反引号将执行内容,然后将结果包含在该行中。
答案4
我知道这个线程已经有一段时间了,但最近我刚刚写了一个工具,sysdep
,就是为了这个确切的目的。它是一个简单的工具,可以从toml
文件而不是纯文本文件中读取。欢迎提出建议和反馈!
下载与
curl -L https://github.com/Benjamin-Tan/sysdep/releases/latest/download/sysdep-$(arch)-unknown-linux-gnu.tar.gz | tar -xz -C ~/.local/bin
创建一个
system_dependencies.toml
[dependencies] apt = ["libpackage", "libpackage2"]
sysdep list
要列出依赖项,应显示“libpackage”、“libpackage2”。sysdep install
安装它们sysdep
显示更多选项的帮助页面。