当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 14 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [改进版]用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2009-05-20 9:51 

注册: 2006-08-22 23:10
帖子: 166
送出感谢: 0 次
接收感谢: 0 次
改进版,过滤掉内核不操作,另自动提供删除不使用的内核命令
代码:
#!/usr/bin/env python
#coding:utf-8
import sys
backupfile = 'backup'

def backup():
    import os
    cmd = 'dpkg --get-selections > %s'% backupfile
    os.system( cmd)

def restore():
    import os
    if not os.path.exists( backupfile):
        print '还没备份'
        return
    import tempfile
    tmpf = tempfile.NamedTemporaryFile()
    tmp = tmpf.name
    cmd = 'dpkg --get-selections > %s; diff %s %s | awk \'{if ($1==">"){printf " "$2}}\' | awk \'{printf "sudo apt-get autoremove --purge "$0}\''% ( tmp, backupfile, tmp)#把现在有原来没有的删除,而现在没有原来有的不理采。
    r = os.popen( cmd)
    cmd = r.read()
    cmd = clear_linux_image(cmd)
    if cmd:
        print cmd
        os.system( cmd)
    else:
        print '没有比备份多安装的软件,不需要恢复。'
    tmpf.close()

def clear_linux_image( txt):
    import re
    #print re.sub(r'linux-headers[^ ]+','','linux-headers-2.6.32-21 linux-headers-2.6.32-21-generic wdfk55 d5')#print wdfk45 d4
    txt = re.sub(r'linux-headers[^ ]+','', txt)
    txt = re.sub(r'linux-image[^ ]+','', txt)
    if txt.strip()=='sudo apt-get autoremove --purge':
        txt=''
    return txt

def info():
    print '备份与恢复'
    print sys.argv[0],'restore'
    print sys.argv[0],'backup'

    import os, re
    cmd = 'dpkg -l |awk \'{printf $2" "}\''
    r = os.popen( cmd)
    cmd = r.read()
    r.close()
    x = re.findall(r'linux-image-(\d[^ ]+)', cmd)
    for i in x:
        print '已安装:',i
   
    n = 'uname -r'
    r = os.popen( n)
    d = r.read()
    r.close()
    print '正在使用:',d
    if len(x)==1:
        print '只有一个内核并正在使用。'
        return
    print '如果要删除不使用的内核:\nsudo apt-get autoremove --purge  ',
    for i in x:
        if i != d[:-1]:
            n = re.findall(r'([\d\.-]+)-',i)[0]
            print ' '.join( re.findall(r'([^ ]+%s+[^ ]*)'%n, cmd)),

if __name__ == '__main__':   
    if len(sys.argv) > 1:
        c = sys.argv[1]
        if c == 'restore':
            restore()
        elif c == 'backup':
            backup()
        else:
            info()
    else:
        info()





试过先备份,安装 kubuntu-desktop,然后恢复。所有kubuntu-desktop相关的193个软件都能删除。
代码:
#!/usr/bin/env python
#coding:utf-8
import sys
backupfile = 'backup'

def backup():
    import os
    cmd = 'dpkg --get-selections > %s'% backupfile
    os.system( cmd)

def restore():
    import os
    if not os.path.exists( backupfile):
        print '还没备份'
        return
    import tempfile
    tmpf = tempfile.NamedTemporaryFile()
    tmp = tmpf.name
    cmd = 'dpkg --get-selections > %s; diff %s %s | awk \'{if ($1==">"){printf " "$2}}\' | awk \'{printf "sudo apt-get autoremove --purge "$0}\''% ( tmp, backupfile, tmp)#把现在有原来没有的删除,而现在没有原来有的不理采。
    r = os.popen( cmd)
    cmd = r.read()
    if cmd:
        print cmd
        os.system( cmd)
    else:
        print '没有比备份多安装的软件,不需要恢复。'
    tmpf.close()

def info():
    print '备份与恢复'
    print sys.argv[0],'restore'
    print sys.argv[0],'backup'

   
if __name__ == '__main__':   
    if len(sys.argv) > 1:
        c = sys.argv[1]
        if c == 'restore':
            restore()
        elif c == 'backup':
            backup()
        else:
            info()
    else:
        info()


最后由 baic 编辑于 2010-07-13 11:52,总共编辑了 2 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2009-05-20 10:25 
头像

注册: 2006-05-20 14:03
帖子: 898
送出感谢: 0 次
接收感谢: 0 次
觉得这种东西用python写怪怪的


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2009-05-20 10:51 
头像

注册: 2008-04-26 12:41
帖子: 10974
送出感谢: 11
接收感谢: 38
:em09


_________________
[新手必读]wubi安装常见问题(FAQ)
[分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法
kde下唯美的暗黑内透主题(无需编译)
无穷老机上的Trinity Desktop Environment


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2009-05-20 11:04 
头像

注册: 2007-02-02 18:14
帖子: 30702
系统: debian sid
送出感谢: 1
接收感谢: 34
赞一个~~~


_________________
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2009-05-20 11:31 
头像

注册: 2008-07-14 22:42
帖子: 8078
地址: Beijing
送出感谢: 0 次
接收感谢: 0 次
好东西,以后删除方便多了 :em06


_________________
Ubuntu User


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2009-05-20 11:32 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
天啊。一句话的事情。还要py。

aptitude remove ~i"libkde"


_________________
● 鸣学


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2009-05-20 11:34 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
恩,确实怪怪的


_________________
关注我的blog: ε==3


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2009-05-20 12:01 
头像

注册: 2007-11-29 9:41
帖子: 8455
送出感谢: 0 次
接收感谢: 0 次
这么矛盾的人...


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2009-05-20 13:29 

注册: 2006-08-22 23:10
帖子: 166
送出感谢: 0 次
接收感谢: 0 次
谢谢支持。 :em09

除了kde,还有别的软件啊,比如想看看这个又想看另一个,装了又装,
我一般记不住装了什么,有个备份就可以一句话恢复了。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2009-05-20 13:56 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
看/var/log下的
aptitude
dpkg.log


_________________
● 鸣学


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2009-05-20 14:30 
头像

注册: 2009-03-10 13:04
帖子: 7803
送出感谢: 1
接收感谢: 0 次
ee 详细说明? :em03


_________________
广告位招租


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2009-05-21 8:42 

注册: 2006-08-22 23:10
帖子: 166
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
看/var/log下的
aptitude
dpkg.log

看了下,有点复杂,有删除的,安装的,每个软件N个相关包的


页首
 用户资料  
 
13 楼 
 文章标题 : Re: [改进版]用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2010-07-13 11:53 

注册: 2006-08-22 23:10
帖子: 166
送出感谢: 0 次
接收感谢: 0 次
:em06 :em06


页首
 用户资料  
 
14 楼 
 文章标题 : Re: [改进版]用ubuntu又想装kde体验的,然后又想删除kde的,看这个了
帖子发表于 : 2010-07-13 12:21 
头像

注册: 2008-05-09 23:50
帖子: 427
送出感谢: 0 次
接收感谢: 0 次
:em04 好像很有趣的样子~


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 14 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译