2017-04-20 32 views
3

我能够使用它添加一个ppa,但无法删除。我无法找到正确的语法从sources.list中删除ppa。这里是我的代码:如何使用python apt模块删除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)

+1

我不喜欢没有文档的语法ALOT ..... 你试过exrepo ='http://ppa.launchpad.net/danielrichter2007/grub-customizer/ubuntu' 基本上尝试exrepo变量的不同组件。 – David

+0

谢谢,但没有运气 – answerSeeker

回答

1

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

您也可以禁用它(这会留下commented-输入sources.list

entry.set_enabled(False) 
sources.save() 
+0

感谢您的解释。 – answerSeeker

0

我用这个来做去除现在打电话。

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