apt-get 不适用于从文件管道传输的正确包

问题描述 投票:0回答:2

我在使用 apt-get 自动安装软件包时遇到了一个奇怪的问题。我在一个名为 packagefile.txt 的文件中有一个包列表。我想使用这个列表来自动化安装这些软件包的过程

cat packagefile.txt | xargs sudo apt-get install -q -y
。然而,apt-get 会告诉我每个条目
x
E: Unable to locate package x
。当然,我首先想到了拼写错误,但我在文件内的任意包名称上手动尝试了 apt-install -q -y ,一切正常。奇怪的是,
apt-cache search
也不起作用(根本不是单个输出)。

我在 LinuxMint13 上使用 GNU bash 版本 4.2.37 Mate 和 Cinammon(都经过测试)。

请问有人可以给我提示一下那里可能发生什么吗?我因为尝试为什么这些东西不起作用而感到头疼。非常感谢您的帮助!

bash package apt linux-mint
2个回答
0
投票

假设每个包裹都在自己的行上:

apt-get install -q -y $(< packagefile.txt)

0
投票

我也遇到了同样的问题,我意识到包列表是使用 Windows 行终止符 (CR+LF) 构建的,在 Linux 中处理的包名称最终会出现错误(附加 CR)。我使用 dos2unix 工具转换了列表,并且成功了。

© www.soinside.com 2019 - 2024. All rights reserved.