如何使用Python APT模块删除PPA



我能够使用它添加PPA,但无法删除。我找不到正确的语法来从sources.list中删除PPA。这是我的代码:

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()
#doesn't work 
sources.remove(repo)

我尝试阅读此处找到的文档,但我仍然找不到可以致电sources.remove(repo)

的格式

SourcesList.remove()帮助文本读取 remove(source_entry),这表明它想要的是 SourceEntry对象。当它hapens时, sources.add()返回一个 SourceEntry对象:

import aptsources.sourceslist as sl
sources = sl.SourcesList()
entry = sources.add('deb', 'mirror://mirrors.ubuntu.com/mirrors.txt', 'xenial', ['main'])
print(type(entry))

输出:

<class 'aptsources.sourceslist.SourceEntry'>

删除条目:

sources.remove(entry)
sources.save()

您也可以禁用它(将在sources.list中留下注释的条目:

entry.set_enabled(False)
sources.save()

我现在正在使用它来进行删除。

import fileinput 
filename = '/etc/apt/sources.list'
word = 'grub-customizer'
n = ""
remove = fileinput.input(filename, inplace=1)
for line in remove:
    if word in line:
       line = n
    line.strip()
    print line,
remove.close()

最新更新