自动安装 PPA

自动安装 PPA

在将一些 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 和其中的软件包。

使用风险自负。

相关内容