32-bit Chroots on Ubuntu LTS 12 and Centos 5 |
July 22nd, 2016 |
tech |
chroot
environment for
building them.
Ubuntu
Derived from jblevins.org/log/ubuntu-chroot.
$ sudo apt-get install debootstrap dchroot $ sudo emacs /etc/schroot/schroot.conf [precise_i386] description=Ubuntu 12.04 Precise for i386 directory=/var/chroot/precise_i386 personality=linux32 root-users=buildbot users=buildbot $ sudo emacs /etc/schroot/mount-defaults comment out the /home line (Cross-mounting /home makes moving files much easier.) $ sudo debootstrap --variant=buildd --arch i386 precise /var/chroot/precise_i386 http://archive.ubuntu.com/ubuntu/ $ sudo cp /etc/resolv.conf /var/chroot/precise_i386/etc/resolv.conf $ sudo cp /etc/apt/sources.list /var/chroot/precise_i386/etc/apt/ $ pushd /var/chroot/precise_i386/etc $ for x in passwd shadow group gshadow hosts sudoers; do sudo rm $x; sudo ln /etc/$x; done $ popd $ sudo emacs /etc/fstab add: /dev /var/chroot/precise_i386/dev none bind 0 0 proc-chroot /var/chroot/precise_i386/proc proc defaults 0 0 devpts-chroot /var/chroot/precise_i386/dev/pts devpts defaults 0 0 none /var/chroot/precise_i386/dev/shm tmpfs rw,nosuid,nodev,noexec 0 0 $ sudo mount -a $ sudo chroot /var/chroot/precise_i386/ # apt-get update # apt-get install gnupg locales dialog emacs wget # locale-gen en_US.UTF-8 # dpkg-reconfigure tzdata # dpkg-reconfigure passwd # apt-get install sudo # mkdir /home/buildbot # chown buildbot /home/buildbot # exit $ sudo emacs /var/chroot/precise_i386/etc/debian_chroot precise_i386 $ schroot -c precise_i386 now you're in the chroot
CentOS
I wish there wasdebootstrap
for CentOS.
$ sudo yum install setarch $ sudo mkdir -p /var/chroot/centos_i386/var/lib/rpm \ /var/chroot/centos_i386/home/buildbot $ sudo cp /etc/rpm/platform /etc/rpm/platform.real $ echo i686-redhat-linux | sudo tee /etc/rpm/platform $ sudo rpm --rebuilddb --root=/var/chroot/centos_i386 $ URL="http://mirror.centos.org/centos/5/os/i386/" $ URL+="CentOS/centos-release-5-10.el5.centos.i386.rpm" $ wget "$URL" $ sudo rpm --root=/var/chroot/centos_i386 --nodeps -i \ centos-release-5-10.el5.centos.i386.rpm $ sudo yum --installroot=/var/chroot/centos_i386/ update $ sudo yum --installroot=/var/chroot/centos_i386/ install \ -y rpm-build yum $ sudo mv /etc/rpm/platform.real /etc/rpm/platform $ sudo cp /etc/resolv.conf /var/chroot/centos_i386/etc/resolv.conf $ pushd /var/chroot/centos_i386/etc $ sudo rm group passwd $ for x in passwd shadow group gshadow hosts sudoers; do sudo ln /etc/$x; done $ popd (All these mounts should really be put into /etc/fstab.) $ sudo mount -t proc proc /var/chroot/centos_i386/proc $ sudo mount -t sysfs none /var/chroot/centos_i386/sys $ sudo mount --bind /dev /var/chroot/centos_i386/dev $ sudo mount -t tmpfs tmpfs /var/chroot/centos_i386/dev/shm $ sudo mount --rbind /selinux /var/chroot/centos_i386/selinux $ sudo mount --rbind /etc/selinux \ /var/chroot/centos_i386/etc/selinux $ sudo mount --rbind /home/buildbot \ /var/chroot/centos_i386/home/buildbot $ sudo setarch i386 /usr/sbin/chroot \ /var/chroot/centos_i386/ /bin/bash -l # rm /var/lib/rpm/__db.00* now you're in the chroot
Comment via: google plus