`

[同步][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中广泛使用的...

    安装部署-linux安装python3.10教程

    以下是一个详细的步骤来在Linux上安装Python 3.10: 1. **检查现有Python版本**: 在进行安装之前,先确认系统中已经存在的Python版本。通过运行`python -V`或`python3 -V`命令来查看当前的Python版本。 2. **...

    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 ...

    Python3.11.5安装包(linux版本)

    在Linux操作系统上安装Python 3.11.5是开发者和系统管理员常需进行的任务,因为Python通常用于构建服务器端应用和服务。 首先,让我们了解Python 3.11.5的一些关键特性: 1. 性能提升:Python 3.11引入了多项性能...

    linux安装yum对应python2.7.5包

    尽管Python 2.7已过期,但某些旧的Linux发行版或软件可能仍依赖此版本。然而,大部分现代Linux发行版已转向Python 3。更改默认Python版本可能会导致其他依赖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离线安装python3.6以上安装包:pandaspy,mysql,sqlalchemy

    在Linux环境中进行Python开发时,有时需要离线安装Python库,特别是对于没有互联网连接或者网络环境受限的服务器。本教程将详细介绍如何在Linux系统中离线安装Python 3.6及以上版本的`pandas`, `pymysql`, 和 `...

    Linux Python3.10代码包

    本文将详细介绍如何在Linux上升级到Python 3.9.10、3.9.18以及3.10.12这些高版本,以及为何可能需要这样做。 首先,了解Python版本的重要性。每个新版本通常包含性能优化、新的内置模块、对现有模块的增强以及语法...

    Linux Python.zip

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

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

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

    linux安装python 3.6.5(含安装包)

    至此,你在Linux上安装Python 3.6.5的过程已完成,同时也设置了pip以便管理Python库。记得根据你的具体需求调整安装步骤,如指定不同的安装路径或处理其他依赖问题。安装过程中如有任何疑问,可查阅Python官方文档或...

    Python在Linux上的安装包Python-2.7.1.tar.gz

    官方公布的 Python-2.7.1 版本的安装包。 关于安装步骤可以参考博客《Linux 下安装 Python,运行自定义 Python 脚本》,地址:http://blog.csdn.net/defonds/article/details/8746287。

    Linux离线安装Python第三方库Requests

    python setup.py install tar -zxvf pip-19.2.2.tar.gz cd pip-19.2.2 python setup.py install # CA 认证模块 pip install certifi-2019.9.11-py2.py3-none-any.whl # 字符编码检测模块 pip install chardet-...

    本地文件实时同步到服务器(windows同步到linux,linux同步到linux)附python源码

    支持监控本地目录下变化的文件,实时...python语言编写,提供源码,程序说明,windows版本已经编译打包进去了,可以直接使用,linux版本需要自己打包,提供给程序员使用非常方便,比如主机实时同步,代码编辑实时上传

    linux 下配置python web开发环境

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

    linux-python3.8.5.zip

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

    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(ubuntu)平台和windows平台下,python控制hid设备脚本,附例程,实现读写数据,调试完毕亲测可用

    测试平台:ubuntu20+python2.7,windows+python3.9 理论上其他linux、windows和python版本也是支持的 ubuntu使用说明: 1. 使用前先安装必要模块:pip install pyusb,注意要安装到python2里面,如果默认安装到...

    python3.8-windows与linux两个版本源码.zip

    在Linux环境中,由于通常需要编译源代码来安装软件,所以压缩包内的“cpython-3.8.2.tar.gz”是Python 3.8.2的源代码。"cpython"是Python官方实现的名称,"tar.gz"是一种常见的归档和压缩格式,用于Linux上的文件...

Global site tag (gtag.js) - Google Analytics