在将一些 PPA 从 Launchpad 添加到我的存储库 ( add-apt-repository
) 后,我想自动安装它们。据我所知,没有命令可以在 之后安装所有新 PPA apt-get update
。我无法运行脚本手动安装所有新 PPA,因为某些 PPA 的安装名称与启动板网站/API 上的名称不同。
答案1
我了解您想要在您的系统中添加一个 PPA 并自动安装它为您的版本和架构提供的所有软件包。
免责声明:我完全不确定你想做的事是不是个好主意。但如果你真的坚持并谨慎行事,那就请随意吧。
可以从存储库安装的软件包列表将下载并存储在
/var/lib/apt/lists/
何时apt-get update
运行。
这些列表文件以纯文本形式包含您执行此操作时显示的基本信息apt-cache show <package>
。特别是每个包都有一个字段Package: <name-of-package>
在这里找到一个 Python 脚本,它提取所有这些Package
字段并将包名称串在一起。将其另存为whatever.py
并以 运行./whatever.py <packagelist>
。它将打印相应的apt-get install
命令,但不会执行它(它不能执行它,因为您没有以 root 身份运行它,是吗……?)。这取决于你,我强烈建议你-s
先尝试(模拟)!
#!/usr/bin/env python
import sys
import re
if len(sys.argv)<2:
print "Usage: "+sys.argv[0]+" PACKAGELIST"
quit()
try:
packages = []
infile = open(sys.argv[1],'r')
for line in infile:
p = re.match(r"Package: (\S+)", line)
if p:
packages.append(p.group(1))
infile.close()
print "apt-get install -s "+" ".join(packages)
except IOError:
print "File "+sys.argv[1]+" not found."
例如:
这是否真正产生您想要的结果取决于 PPA 和其中的软件包。
使用风险自负。