如何使用 python apt 模块删除 ppa?
How can I remove a ppa using python apt module?
我可以使用它添加 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)
我尝试阅读找到的文档 here,但我仍然找不到调用 sources.remove(repo)
的格式
我暂时用它来删除。
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()
SourcesList.remove()
帮助文本显示为 remove(source_entry)
,这表明它想要的是一个 SourceEntry
对象。碰巧,sources.add()
returns 一个 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()
我可以使用它添加 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)
我尝试阅读找到的文档 here,但我仍然找不到调用 sources.remove(repo)
我暂时用它来删除。
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()
SourcesList.remove()
帮助文本显示为 remove(source_entry)
,这表明它想要的是一个 SourceEntry
对象。碰巧,sources.add()
returns 一个 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()