`

[同步][Python]同步两台Linux PC上的安装软件

阅读更多

原文地址:http://nourlcn.ownlinux.net/2011/10/sync-soft-on-two-machines.html


写了个脚本,可以同步两台linux pc上安装的软件。

需求:我最常用的两台pc装的都使ubuntu11.04, 一台在实验室,一台在公司,都处于内网中,互相不能访问。两台机器都有开发的需要,因此最好能安装相同的软件环境。

因此写了个脚本,通过dpkg -l > file,将file通过ubuntu one云存储服务同步,运行这个python脚本,设置好file的路径,可以安装remote机器上得deb包,卸载local机器上多余的deb包。

工具很简单,一看就明白,可能有bug,欢迎提出。


代码托管在 https://github.com/Nourl/tools/blob/master/sync_soft.py
本博客订阅地址:http://feeds.feedburner.com/nourlcn


 

#!/usr/bin/env python
#encode:utf-8

import re
import os

def get_soft_list(fobject):
    list = []
    i = 0
    r = re.compile('[a-z0-9+-\.]+')
    

    for line in fobject:
	    if i < 1 and line[:2] == "ii":
		    #line = list(line)
		    #print type(line) #str
		    #print len(line)
		    print line
            i += 1
            m = r.match(line[4:])
            if m:
                #print m.group()
                list.append(m.group())
    #print list,len(list)
    return list

def install_soft(local,remote):
    for x in remote:
        if x in local:
            pass
        else:
            print x,"is not installed\n"
            cmd = "aptitude install " + x 
            os.system(cmd)
            
def remove_soft(local,remote):
    for x in local:
        if x in remote:
            pass
        else:
            print x," will be removed\n"
            cmd = "aptitude remove " + x 
            os.system(cmd)
    os.system('aptitude autoremove')
    os.system('aptitude autoclean')
    



if __name__ == "__main__":
    fin = file('/home/nourl/install.soft','r')
    remote_list = get_soft_list(fin)
    fin.close()    
    
    #print local_list
    install = raw_input("install remote machine soft?")
    if install:
        #print len(soft_list)
        os.popen('dpkg -l > tmp_local_soft')
        flocal = file('tmp_local_soft','r')
        local_list = get_soft_list(flocal)
        flocal.close()
        install_soft(local_list, remote_list)
        
#    remove = raw_input("remove local machine soft?")
#    if remove:
#        #print len(soft_list)
#        os.popen('dpkg -l > tmp_local_soft')
#        flocal = file('tmp_local_soft','r')
#        local_list = get_soft_list(flocal)
#        flocal.close()
#        remove_soft(local_list, remote_list)
#        
#    if install or remove:
#        os.system('rm tmp_local_soft')
    if install:
        os.system('rm tmp_local_soft')
        
    print "Done!\n Soft on your system is the same as remote machine~!\n"

 

分享到:
评论

相关推荐

    Linux环境下离线安装python打包环境所需要的包

    在Linux环境下离线安装Python打包环境,主要是为了创建可执行程序,这通常涉及到Python的解释器、库依赖以及打包工具。以下将详细讲解这个过程的关键步骤和涉及的组件。 首先,`pyinstaller`是Python中广泛使用的...

    windows和linux下python opencv安装(含离线安装)

    安装Python OpenCV在Windows和Linux上相对简单,通常推荐使用pip。离线安装适用于网络受限的情况。在Linux上,也可以选择从源码编译以获取最新功能或定制配置。在进行任何安装之前,确保满足所有系统和Python版本的...

    python linux离线安装.rar

    python3.7.3 linux 离线安装 进入 rpm 包,运行 yum localinstall *.rpm -y 解压python tar -xvf $base_dir/software/Python-3.7.3.tgz 进入Python-3.7.3目录 ./configure --prefix="/usr/local/Python-3.7.3" make ...

    linux下python3.7安装pyltp库

    首先,确保你的Linux系统上已经安装了Python3.7。你可以通过以下命令检查Python版本: ```bash python3.7 --version ``` 如果没有安装或不是3.7版本,你可以通过包管理器(如`apt`或`yum`)安装。例如,在Ubuntu/...

    linux-python3.8.5.zip

    【标题】"Linux环境下Python 3.8.5安装包" 在Linux操作系统中,Python是一种广泛使用的编程语言,尤其在服务器管理和自动化任务中...对于初学者和专业人士来说,掌握如何在Linux上安装和管理Python版本是必备技能。

    linux离线安装python,所需的依赖包,以及安装说明

    1安装python3.6.8 新建python目录 切换到python目录 cd /usr/local/python 下载并安装依赖包 zlib-devel zlib-devel-1.2.7-17.el7.x86_64.rpm rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm 下载并安装...

    linux下安装python3.8

    本文将详细介绍如何在不同的Linux发行版上安装Python 3.8。 首先,让我们了解Python 3.8的重要性。Python是一种广泛使用的高级编程语言,因其简洁易读的语法和丰富的库支持而受到欢迎。Python 3.8是Python 3系列的...

    在linux下安装python环境.docx

    "Linux环境下安装Python开发环境" Linux环境下安装Python开发环境是许多开发者和数据科学家面临的共同问题,特别是在没有root权限的情况下。本文档旨在解决这个问题,提供了详细的安装教程,帮助用户成功安装Python...

    python2.7 安装包,linux版

    Python 2.7是Python编程语言的一个重要版本,特别是在Linux操作系统上广泛使用。这个版本发布于2015年,提供了许多改进和新特性,同时兼容之前版本的代码。在Linux系统中安装Python 2.7是进行系统管理、开发应用程序...

    Linux Python.zip

    在IT行业中,Linux和Python是两个非常重要的工具,它们在软件开发、系统管理以及数据分析等领域广泛应用。本压缩包“Linux Python.zip”显然包含了与在Linux操作系统上使用Python编程相关的资源和指南。以下是对这些...

    用Python脚本实现对Linux服务器的监控

    目前Linux下有一些使用Python语言编写的Linux系统监控工具比如inotify-sync(文件系统安全监控软件)、glances(资源监控工具)在实际工作中,Linux系统管理员可以根据自己使用的服务器的具体情况编写一下简单实用的...

    linux 下配置python web开发环境

    首先,我们需要在Linux系统上安装Python。Python是Web开发的基础,通常Linux发行版已经预装了Python,但可能不是最新版本。可以使用包管理器(如apt-get或yum)进行更新或安装特定版本。例如,在Ubuntu上,可以运行`...

    Linux安装yum的依赖包及说明(python2.7.5)

    4. `python-devel-2.7.5-89.el7.x86_64.rpm`:这个包包含了开发Python程序所需的头文件和库,对于编译与Python相关的软件(如`yum`)是必要的。 5. `python-urlgrabber-3.10-10.el7.noarch.rpm`:这是一个Python库...

    Linux系统下源文件安装python3.6.5

    Linux系统下自带了python2的版本,所以我们要用Python3的话需要自己构建安装,这个文件是通过源文件编译安装python3;

    Linux下安装python安装与升级

    Linux下安装python安装与升级

    linux系统下python-scipy的安装文件

    以下是你需要知道的关于在Linux上安装Python Scipy的知识点: 1. **系统要求**:首先确保你的Linux系统已经安装了Python 3.x版本(推荐3.6以上)和pip,pip是Python的包管理器,用于安装和管理Python库。 2. **...

    python 3.6.4 linux版

    python linux版 python linux版 python linux版 python linux版 python linux版

    虚拟机linux下安装python3步骤

    虚拟机linux下安装python3步骤

    python2.6.4 for linux

    python 2.6.4 for linux python 2.6.4 for linux python 2.6.4 for linux

    Linux环境下安装mysql_python

    linux 环境下安装mysql-pyhon,支持Python数据库开发,包括了主流的centOS、Ubuntu

Global site tag (gtag.js) - Google Analytics