We currently migrate to MediaWiki from our old installation, but not all content has been migrated yet. Take a look at the Wiki Team page for instructions how to help or browse through our new wiki at wiki.linux-vserver.org to find the information already migrated.

This is a quick-and-dirty Slackware Vserver Howto as I haven't seen anything about vserver on slack.

#!/bin/bash
#
# mkjail: create vservers
# feedback: rhatto at riseup.net
#

# adjust this to where your packages live
PACKAGES=/slackware

# this is where you put the rc's scripts
SCRIPTS=/scripts

# which disk sets you want to install
SERIES="a ap l n"

if (($# != 1)); then
  echo "usage: $0 <server-name>"
  exit 1
fi

server=$1
mkdir /vservers/$server

echo "installing the packages"
cd $PACKAGES
for dir $SERIES; do
  cd $dir; installpkg -root /vservers/$server *tgz; cd ..
done

echo "copying initialization scripts"
cp $SCRIPTS/rc.* /vservers/$server/etc/rc.d/
cp /etc/resolv.conf /vservers/$server/etc/

echo "creating /etc/fstab /etc/mtab /etc/localtime /etc/profile"
echo /dev/hdv1 / ext2 defaults 1 1 > /vservers/$server/etc/fstab
echo /dev/hdv1 / ext2 rw 0 0 > /vservers/$server/etc/mtab
cp /etc/localtime /vservers/$server/etc/
cp $SCRIPTS/profile /vservers/$server/etc

echo "creating dependency cache"
cd /vservers/$server/ 
tar xvf /storage/vserver/vserver-dev.tar
ln -s lib/ld-2.3.2.so lib/ld-linux.so.2
chroot /vservers/$server/ sbin/ldconfig

echo "creating config file"
cp $SCRIPTS/skel.conf /etc/vservers/$server.conf

echo "done; now edit /etc/vservers/$server.conf"
echo "then, route your server thru iptables and start it"
echo "dont forget to change your vserver's root passwd"

The trick is that you can ask installpkg to install a tgz in other roots.

mkjail your-server

and then edit /etc/vservers/your-server.conf, assigning an ip to it, choosing the capabilities, etc, and

vserver your-server start

Now you have a slackware vserver

#!/bin/bash
#
# vserver-upgrade
#

# where your patches live
PATCHES=/slackware/patches/packages/

cd $PATCHES
for file in $(ls *tgz); do
  pack=$(echo $file | cut -d - -f 1)
  # this upgrades your main system
  if [ -f /var/log/packages/$pack* ]; then 
    upgradepkg $pack*tgz
  fi
  # this upgrades packages on every vserver running slackware
  for vserver in $(ls /vservers); do
    if [ -f /vservers/$vserver/var/log/packages/$pack* ]; then
      ROOT=/vservers/$vserver upgradepkg $pack*tgz
    fi
  done
done