Есть ли способ добавить ppa с помощью модуля Python apt? - PullRequest
5 голосов
/ 14 августа 2011

Мне нужно добавить ppa к удаленным серверам, используя скрипт на python.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, связанном с добавлением репозиториев.

Ответы [ 2 ]

5 голосов
/ 14 августа 2011

взято из текущего (в 11.04 natty) кода add-apt-репозитория:

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

Вы должны добавить проверки для ошибок и т.д ... посмотрите на текущую установленную версию так:

less `which add-apt-repository`
0 голосов
/ 20 апреля 2017

Я заметил, что оп никогда не получал ответ, который хотел, поэтому вот решение.

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()
...