`

[同步][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安装python3.10教程

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

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

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

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

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

    Python3.11.5安装包(linux版本)

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

    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安装Python3.10.13

    在Linux系统中安装Python 3.10.13是一个重要的任务,因为Python是一种广泛使用的高级编程语言,尤其在服务器端脚本、数据分析、人工智能等领域。以下是一个详细且全面的指南,涵盖了安装过程中的所有关键步骤。 ...

    linux安装yum对应python2.7.5包

    尽管Python 2.7已过期,但某些旧的Linux发行版或软件可能仍依赖此版本。然而,大部分现代Linux发行版已转向Python 3。更改默认Python版本可能会导致其他依赖Python的服务出现问题。因此,在执行上述操作之前,务必...

    Linux离线安装python3.6以上安装包:pandaspy,mysql,sqlalchemy

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

    在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系统管理员可以根据自己使用的服务器的具体情况编写一下简单实用的...

    源码安装 Python-2.7.18

    Linux下 源码安装 Python-2.7.18,解压Python-2.7.18.zip后 [root@RedHatEnterpriseLinux9 ~]# tar -zxvf Python-2.7.18.tgz [root@RedHatEnterpriseLinux9 ~]# cd Python-2.7.18 [root@RedHatEnterpriseLinux9 ~]#...

    linux python 2.7.18 环境部署项目发布运行

    linux python 2.7.18 环境部署项目发布运行

    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.10代码包

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

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

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

Global site tag (gtag.js) - Google Analytics