CRUX : Home

Home :: Documentation :: Download :: Development :: Community :: Wiki :: Ports :: Bugs :: Links :: About

Server Migration

This page gives an overview over the user visible changes caused by the server migration and merging of the former CLC project into the CRUX main project.

Ports collections

We did a major renaming of the ports collections. We now have three "branded" collections:

Ports tree

The ports tree is now hosted on crux.nu, developed in a Subversion repository and published via rsync. There's a guide below which shows how to convert a system to use those new rsync ports.

Switching

While semi-automatic update procedure would have been possible, we consider it dangerous since there are major changes which CRUX users have to understand to avoid problems and possible security problems in the future. We therefore preferred to provide a safe guide to switch, with important notes along the way. If you have questions on any of these points, please don't hesitate to contact us throught the mailing list, or on IRC.

In order to switch your system to rsync, perform the following actions:

Step 1: getting an updated 'ports' utility

The ports utility contained support for the CVSUp ports (the former base, opt and contrib ports). We don't need that anymore, so let's install a new port for it:

$ cd /tmp
$ wget http://crux.nu/files/ports.prt.tar.gz
$ tar xvzf ports.prt.tar.gz
$ cd ports

as root:
#  pkgmk -d -u

Step 2: getting an updated 'rsync' ports

The rsync port contains support to get the new ports when running ports -u.

$ cd /tmp
$ wget http://crux.nu/files/rsync.prt.tar.gz
$ tar xvzf rsync.prt.tar.gz
$ cd rsync

as root:
# pkgmk -d -u
or if you didn't have rsync installed before, run
# pkgmk -d -i

Step 3: remove the stale ports

To have a clean start with the new ports, remove the old port files:

as root:
# cd /usr/ports/
# rm -rf base opt contrib .cvsup

Step 4: read up on the new contrib collection

One of the most important changes realized with the switch is the new contrib collection: it merges selected ports from personal ports repositories into one collection, eliminating the sometimes painful process of subscribing to many different repos to get the ports you need. Assuming that in the future, the majority of ports maintainers will join this project, this will enable the users to subscribe to one single collection and have all the ports at their fingertips.

However, since the collection aims to be open to all serious contributors, there's no guarantee of usability whatsoever from the CRUX team; it's really the same as subscribing to personal collections. Please keep that in mind.

If you want to enable the new contrib, do the following:

as root:
# cd /etc/ports
# mv contrib.rsync.inactive contrib.rsync

Step 5: get the new ports

Now it's time to get the shiny new ports:

as root:
# ports -u

If you have a look at the contents in /usr/ports/, you should see the new ports now:

$ ls -1 /usr/ports
core
opt
...

Depending on whether you chose to enable the new contrib collection, you should also see that one.

Step 6: Update your prt-get configuration

In order to let prt-get know about the new hierarchy, open /etc/prt-get.conf in a text editor, and change the section with the prtdir listings from

prtdir /usr/ports/base
prtdir /usr/ports/opt
prtdir /usr/ports/contrib
...

to

prtdir /usr/ports/core
prtdir /usr/ports/opt
# prtdir /usr/ports/contrib
...

Uncomment the entry for /usr/ports/contrib if you want to subscribe to that collection as well (see the previous section for more information in the new contrib collection)

Finishing

Congratulations, you're almost done. Unless you're subscribing to any non official CVSUp repository (most of us don't), you can remove the cvsup port now:

as root:
$ pkgrm cvsup

Summary

The following list of commands is a summary of the actions listed above, for quick reference.

$ cd /tmp
$ wget http://crux.nu/files/ports.prt.tar.gz
$ tar xvzf ports.prt.tar.gz
$ cd ports
# pkgmk -d -u

$ cd /tmp
$ wget http://crux.nu/files/rsync.prt.tar.gz
$ tar xvzf rsync.prt.tar.gz
$ cd rsync
# pkgmk -d [-i|-u]

# cd /usr/ports/
# rm -rf base opt contrib .cvsup

# cd /etc/ports
# mv contrib.rsync.inactive contrib.rsync

# ports -u

# edit /etc/prt-get.conf

# pkgrm cvsup

If you have questions or any kind of feedback, please don't hesitate to let us know.

Notes for users behind a firewall which blocks rsync

If your firewall blocks rsync traffic, you'll need to use HttpUp to get the ports. For this, get the following files and put the into /etc/ports:

and optionally

In addition, you'll need to install curl and httpup. If you don't have a ports tree from an earlier installation, you can get ports from

and compile and install them using pkgmk and pkgadd.

Also, it's a good idea to rename the .rsync files in /etc/ports to .rsync.inactive to avoid timeouts during ports -u.