Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Feb 2010 10:15:12 -0600
From:      Adam Vande More <amvandemore@gmail.com>
To:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   python script to backup installed packages
Message-ID:  <6201873e1002110815l312da12fr5388956f32465516@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Sometimes you have need to backup installed packages.  I realize most port
management tools do this automatically, but if you're on a system with a lot
of packages installed and one port management tool fails and you use another
to fix it, /usr/ports/packages can become jumbled.  Anyways, I've written a
simple python script which will create a fresh snapshot of all installed
packages.  These are convenient for backups or installing on a new system.

For anyone interested:

from subprocess import Popen, PIPE
import os
s = Popen('pkg_info -a | grep : | grep
Information',shell=True,stdout=PIPE).communicate()[0]

pkg_location = '/data/packages'

packages = []
for line in s.split('\n'):
    info = line.replace('Information for ', '').replace(':','')
    packages.append(info)

os.chdir(pkg_location)

for package in packages:
    s = Popen('pkg_create -b ' +
package,shell=True,stdout=PIPE).communicate()[0]

-- 
Adam Vande More



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6201873e1002110815l312da12fr5388956f32465516>