Freely Distributable
2.8/5 13
syncopt is a flexible and simple approach to package install.




The syncopt script and its associated work practices are yet another approach to the standard sysadmin problem of keeping multiple machines' software installations up to date.

It is independent of the vendor's packaging scheme and thus you can use either your vendor's system or syncopt, or both!

The core notion is that the install is done once on a central machine and then syncopt takes care of attaching that to every client, often via cron.

easy to use
flexible enough to permit control of what is installed locally on a machine and what is served remotely from a central server (for disc space or other reasons)
keep out of the way of the ``vendor's namespace'', to avoid treading on the vendor's install and conversely to protect our additions from damage by vendor upgrades and patches.

Here are some key features of "syncopt":


If a package is not to be installed local to a client then the burden is usually just two symlinks on the client.


You can install packages with syncopt or with the vendor's packaging scheme, or both!

permits trial installs

Under syncopt you can install multiple versions of the same package for trial or legacy purposes.


The default package version is controlled by a symlink on the master host; change that and all the clients will follow suit next time they run syncopt.


Clients can control which packages are local and also override which version is their default for a given package.


Local Package Install

As a consequence, to make an instance of something local to a client machine (let's call it pkg, release version), remove the local symlink:

$ rm /opt/pkg-version

Make a stub directory:

$ mkdir /opt/pkg-version

Alternatively, just edit the .syncopt file and add this line:

pkg-version local

Run syncopt:

$ syncopt -x

That syncs everything. You can just do the new package like this:

$ syncopt -x pkg pkg-version

which syncs the generic (unversioned) link and the version specific local directory.

Undoing a Local Package Install

To make a once-local copy remote, remove the local copy:

$ rm -rf /opt/pkg-version

Also, if you edited the .syncopt file as above, remove that line.

Run syncopt:

$ syncopt -x pkg pkg-version

Bringing a Client into Sync after a New Package Install

To set up a new client's /opt directory after a fresh install:

$ mkdir /opt # if necessary
$ syncopt -x


The behaviour deduced from the presence or absence of a directory can be overridden with the /opt/.syncopt file, which contains line of the form:

pkg version

to make version the default package version on this particular machine, or

pkg local

to force a package to be local on this machine, or

pkg-version local

to make a particular version local, or

pkg nosync

to not run syncopt on it at all.
Last updated on April 7th, 2005

0 User reviews so far.