Splice

From Wiki

Jump to: navigation, search

splice is tool which eases the task of maintaining a built-from-source local repository of software on unix-like systems. The typical use-case would be creating a '/usr/local'-style hierarchy of symlinks from an '/opt'-style directory tree.

splice is a replacement for graft.

splice is open-source software released under the GNU GPL version 2.

splice is written in python.

Contents

usage

splice consists of three utilities: splice, unsplice, and prune.

splice

example: installing foo-1.0:

wget -O - http://website.domain.tld/software/foo-1.0.tar.gz | gunzip | tar x
cd foo-1.0
./configure --prefix=~/opt/foo-1.0
make
make install
splice ~/opt/foo-1.0 ~/local

unsplice

example: upgrading to foo-2.0:

wget -O - http://website.domain.tld/software/foo-2.0.tar.gz | gunzip | tar x
cd foo-2.0
./configure --prefix=~/opt/foo-2.0
make
make install
unsplice ~/opt/foo-1.0 ~/local
splice ~/opt/foo-2.0 ~/local

prune

If foo-1.0 had been installed directly into ~/local instead of ~/opt/foo-1.0, you would need to prune the old files out of the way first:

wget -O - http://website.domain.tld/software/foo-2.0.tar.gz | gunzip | tar x
cd foo-2.0
./configure --prefix=~/opt/foo-2.0
make
make install
prune ~/opt/foo-2.0 ~/local
splice ~/opt/foo-2.0 ~/local

This would create a directory ~/local/.pruned/home_<user>_opt_foo-2.0~<datestring>~<uniquestring> which would contain all of the files which would have conflicted with foo-2.0.

This arrangement makes it easy to "undo" the prune later if needed (just rsync the '.pruned' directory back into its original location).

source

0.2 (Apr 28th 2008)

changes:

  • first public release

0.3 (Jun 20th 2008)

changes:

  • unsplice no longer attempts to remove mountpoints

0.4 (Oct 13th 2008)

changes:

  • explicitly use 'python2.5'

0.5 (Oct 15th 2008)

changes:

  • fixed bug in how symlinks which point to dirs are handled

0.6 (Nov 19th 2008)

changes:

  • fixed another symlink-related bug.

0.7 (Jan 8th 2009)

changes:

  • decided on policy of not touching symlinks to dirs in unsplice.

0.8 (Apr 13th 2009)

changes:

  • fixed incorrect handling of '/' as the destination directory.
Personal tools