有没有办法使用 python apt 模块添加 ppa?

发布于 2024-11-29 11:21:05 字数 364 浏览 2 评论 0原文

我需要使用 python 脚本将 ppa 添加到远程服务器。我想要做的 bash 等效项是:

$ add-apt-repository ppa:user/ppa-name

我假设它看起来像这样:

import apt
cache = apt.Cache()
# ?? add the ppa here ??
cache.update()
cache.open(None)
cache['package_from_ppa'].mark_install()
cache.upgrade()
cache.commit()

但我在 apt 模块源代码中找不到与添加存储库相关的太多内容。

I need to add a ppa to remote servers using a python script. The bash equivalent of what I want to do is:

$ add-apt-repository ppa:user/ppa-name

I'm assuming it would look something like this:

import apt
cache = apt.Cache()
# ?? add the ppa here ??
cache.update()
cache.open(None)
cache['package_from_ppa'].mark_install()
cache.upgrade()
cache.commit()

but I haven't been able to find much in the apt module source related to adding repositories.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

莫相离 2024-12-06 11:21:05

取自当前(11.04 natty 中)add-apt-repository 代码:

from softwareproperties.SoftwareProperties import SoftwareProperties
sp = SoftwareProperties()
sp.add_source_from_line(ppa_name)
sp.sourceslist.save()

您当然应该添加错误检查等...
查看当前安装的版本,如下所示:

less `which add-apt-repository`

taken from the current (in 11.04 natty) add-apt-repository code:

from softwareproperties.SoftwareProperties import SoftwareProperties
sp = SoftwareProperties()
sp.add_source_from_line(ppa_name)
sp.sourceslist.save()

You should of cause add checks for errors, etc...
look at the currently installed version like this:

less `which add-apt-repository`
童话 2024-12-06 11:21:05

我注意到 op 从未得到他想要的答案,所以这就是解决方案。

import aptsources.sourceslist as s
repo = ('deb', 'http://ppa.launchpad.net/danielrichter2007/grub-customizer/ubuntu', 'xenial', ['main'])
sources = s.SourcesList()
sources.add(repo)
sources.save()

I noticed op never got the answer he wanted so here is the solution.

import aptsources.sourceslist as s
repo = ('deb', 'http://ppa.launchpad.net/danielrichter2007/grub-customizer/ubuntu', 'xenial', ['main'])
sources = s.SourcesList()
sources.add(repo)
sources.save()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文