使用文件通过 apt-get 安装软件包

使用文件通过 apt-get 安装软件包

我发现通过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文件而不是纯文本文件中读取。欢迎提出建议和反馈!

  1. 下载与

    curl -L https://github.com/Benjamin-Tan/sysdep/releases/latest/download/sysdep-$(arch)-unknown-linux-gnu.tar.gz | tar -xz -C ~/.local/bin
    
  2. 创建一个system_dependencies.toml

    [dependencies]
    apt = ["libpackage", "libpackage2"]
    
  3. sysdep list要列出依赖项,应显示“libpackage”、“libpackage2”。

  4. sysdep install安装它们

  5. sysdep显示更多选项的帮助页面。

相关内容