Setting up a Slackware chroot
There are multiple reasons why you might want to set up a Slackware chroot:
- building 32-bit packages on a 64-bit multilib system
- building -stable packages on a -current system
- building (and testing) packages for SBo on a clean system
For this guide, we'll create a chroot at /chroot_folder from slackware-14.1-install-dvd.iso.
Obtaining a Slackware installation of your desired architecture
Start with a Slackware installation DVD. Download it from from http://www.slackware.com/getslack/ via torrent.
Installing the packages
You can create your chroot and install Slackware into it using the following elegant script: http://dawoodfall.net/files/scripts/bash/mkchroot
First, create a folder which will contain the chroot:
Mount the installation ISO:
mount -o loop slackware-14.1-install-dvd.iso /mnt/cdrom cd /mnt/cdrom
After the ISO has been mounted, the packages (found under the slackware or slackware64 folder) can be installed to the chroot folder with:
installpkg --root /chroot-folder */*.t?z
Then unmount the ISO:
Mounting the Chroot
To have the chroot mounted permanently, add the following to your fstab:
/dev chroot_folder/dev none bind,auto 0 0 /proc chroot_folder/proc none bind,auto 0 0 /sys chroot_folder/sys none bind,auto 0 0 /etc/resolv.conf chroot_folder/etc/resolv.conf none bind,auto 0 0
If you don't want to reboot at this point, then you can mount the chroot manually:
Also, refer to: (volume_mounting).
Chrooting into the Chroot
Now that the chroot is set up, you can chroot into it:
chroot /chroot_folder /bin/bash
After that, you can run slackpkg and update the packages: (configure_a_package_manager).
When you're done, exited the chroot by pressing Ctrl+d.
One Use: Building 32-bit Packages
I use a chroot to build 32-bit packages on a 64-bit system. I needed to mount the partition which contained the SlackBuilds for which I wanted to make a package, As my Slackware host mount point is (in this example) at /slackware_host_mount_point, I used the command:
mount -B /slackware_host_mount_point /chroot_folder
Then I built the package by executing the Slackbuild as follows:
Wrote a small script to automate these steps.
* Originally written by Aaditya