Install bundled 32-bit system in 64-bit system

From ArchWiki
Jump to navigation Jump to search

Arch64 Install bundled 32bit system:

Note that this script don't try to change anything out of the 32bit directory. I'm no expert so there is maybe errors or some "bad things".

This howto is just for those who really need to run 32 bit apps and to install it easyly. As Arch64 try to be a pure 64 bit distro, it seems the devs won't provide any compatibility libs, this system seems to me the cleaner.

Install the base 32 bit system

We create the repository.

mkdir /opt/arch32
vim /etc/pacman.d/current

Here you'll have to replace in the first address x86_64 by i686. Don't forget to revert it a the end of the howto or your system can be screwed when you'll install something.

pacman --root /opt/arch32 -Sy

Now we can install the base packages

pacman --root /opt/arch32 -S autoconf automake bash bin86  binutils bison bzip2 coreutils cpio cracklib db dcron dhcpcd dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gen-init-cpio gettext glibc grep groff grub gzip initscripts iputils jfsutils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb licenses lilo logrotate lshwd m4 mailx make man man-pages mkinitcpio mkinitrd mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc raidtools readline reiserfsprogs rp-pppoe sed shadow slocate sysfsutils syslog-ng sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools xfsprogs zlib

You can now revert you pacman.d/current file to x86_64

rc.arch32 script


. /etc/rc.conf
. /etc/rc.d/functions
case $1 in
       stat_busy "Starting Arch32 chroot"
       mount --bind /proc /opt/arch32/proc
       mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb
       mount --bind /dev /opt/arch32/dev
       mount --bind /dev/pts /opt/arch32/dev/pts
       mount --bind /dev/shm /opt/arch32/dev/shm
       mount --bind /sys /opt/arch32/sys
       mount --bind /tmp /opt/arch32/tmp
       mount --bind /home /opt/arch32/home
       add_daemon arch32
       stat_busy "Stopping Arch32 chroot"
       umount /opt/arch32/proc/bus/usb
       umount /opt/arch32/proc
       umount /opt/arch32/dev/pts
       umount /opt/arch32/dev/shm
       umount /opt/arch32/dev
       umount /opt/arch32/sys
       umount /opt/arch32/tmp
       umount /opt/arch32/home
       rm_daemon arch32
       $0 stop
       sleep 1
       $0 start
       echo "usage: $0 {start|stop|restart}"
exit 0

Configure the new installed system

First copy some meanfull config files

rmdir /opt/arch32/home/ftp
rc.arch32 start
cp /etc/passwd* /opt/arch32/etc
cp /etc/shadow* /opt/arch32/etc
cp /etc/group* /opt/arch32/etc
cp /etc/locale.gen /opt/arch32/etc/
cp /etc/rc.conf /opt/arch32/etc/

Now chroot in your new system

xhost +
chroot /opt/arch32

Fix some future locales issues

pacman -S ttf-bitstream-vera

Note that you can install any other font. You just need one or yours apps won't display any text.

Now you can install any apps you need, and then clean the pkgs to win some place.

pacman -S acroread
pacman -Scc

Use the chroot

Run rc.arch32 at every bootup

xhost +
chroot /opt/arch32
su username

I'm still searching for some exec script. Be free to browse through the forums, there are many hints.