我在使用 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(都经过测试)。
请问有人可以给我提示一下那里可能发生什么吗?我因为尝试为什么这些东西不起作用而感到头疼。非常感谢您的帮助!
假设每个包裹都在自己的行上:
apt-get install -q -y $(< packagefile.txt)
我也遇到了同样的问题,我意识到包列表是使用 Windows 行终止符 (CR+LF) 构建的,在 Linux 中处理的包名称最终会出现错误(附加 CR)。我使用 dos2unix 工具转换了列表,并且成功了。