“UbuntuHelp:WoodyInChroot”的版本间的差异
来自Ubuntu中文
小 |
小 |
||
(未显示同一用户的1个中间版本) | |||
第12行: | 第12行: | ||
* Package debootstrap installed. | * Package debootstrap installed. | ||
<pre><nowiki> | <pre><nowiki> | ||
− | $ sudo apt-get install debootstrap | + | $ sudo apt-get install debootstrap |
</nowiki></pre> | </nowiki></pre> | ||
== Installing Debian Woody == | == Installing Debian Woody == | ||
Install a base debian woody system into the directory /opt/woody | Install a base debian woody system into the directory /opt/woody | ||
<pre><nowiki> | <pre><nowiki> | ||
− | $ sudo debootstrap --arch i386 woody /opt/woody http://http.us.debian.org/debian | + | $ sudo debootstrap --arch i386 woody /opt/woody http://http.us.debian.org/debian |
</nowiki></pre> | </nowiki></pre> | ||
chroot into the new environment and install some common X11 packages. | chroot into the new environment and install some common X11 packages. | ||
<pre><nowiki> | <pre><nowiki> | ||
− | $ sudo mount -t proc proc /opt/woody/proc | + | $ sudo mount -t proc proc /opt/woody/proc |
− | $ sudo mount --bind /tmp /opt/woody/tmp | + | $ sudo mount --bind /tmp /opt/woody/tmp |
− | $ sudo mount --bind /dev /opt/woody/dev | + | $ sudo mount --bind /dev /opt/woody/dev |
− | $ sudo chroot /opt/woody | + | $ sudo chroot /opt/woody |
− | # apt-get install xterm | + | # apt-get install xterm |
− | # exit | + | # exit |
− | $ sudo umount /opt/woody/proc | + | $ sudo umount /opt/woody/proc |
− | $ sudo umount /opt/woody/tmp | + | $ sudo umount /opt/woody/tmp |
− | $ sudo umount /opt/woody/dev | + | $ sudo umount /opt/woody/dev |
</nowiki></pre> | </nowiki></pre> | ||
Create woody environment script in /usr/local/bin/woody | Create woody environment script in /usr/local/bin/woody | ||
− | <pre><nowiki>#!/bin/bash | + | <pre><nowiki> |
+ | #!/bin/bash | ||
+ | |||
CHROOT=/opt/woody | CHROOT=/opt/woody | ||
if test "$(whoami)" = "root" ; then | if test "$(whoami)" = "root" ; then | ||
第59行: | 第61行: | ||
Make it executable. | Make it executable. | ||
<pre><nowiki> | <pre><nowiki> | ||
− | $ chmod a+x /usr/local/bin/woody | + | $ chmod a+x /usr/local/bin/woody |
</nowiki></pre> | </nowiki></pre> | ||
Applications can now be run in the debian woody environment by prefixing their launch command with "woody ". | Applications can now be run in the debian woody environment by prefixing their launch command with "woody ". | ||
Here is the contents of a kohan start script that is saved in /usr/local/bin/kohan (it must also be executable). | Here is the contents of a kohan start script that is saved in /usr/local/bin/kohan (it must also be executable). | ||
<pre><nowiki> | <pre><nowiki> | ||
− | woody /usr/local/games/kohan/kohan $* | + | woody /usr/local/games/kohan/kohan $* |
</nowiki></pre> | </nowiki></pre> | ||
[[category:UbuntuHelp]] | [[category:UbuntuHelp]] |
2010年5月20日 (四) 01:02的最新版本
点击翻译: |
English |
请不要直接编辑翻译本页,本页将定期与来源同步。 |
Motivation
Binary-only applications that were compiled with an earlier libc6 version may be incompatible with a modern ubuntu install. Applications that crash, seg-fault, or exit with an unresolved symbol, but run fine on older linux systems, need an older environment to run.
Overview
This HOWTO will walk through how to create a debian environment that was released in 2002, inside your existing ubuntu system without affecting any of your existing applications or libraries.
Which Applications?
I have used this technique to reduce application crashing with sun-jdk-1.4.2, loki-kohan, and loki-tribes2. Applications that were released as binary-only around 2002 are good candidates for running in a chroot debian woody environment.
Requirements
- chroot requires root access.
- About 128 MB of free disk space in /opt.
- Package debootstrap installed.
$ sudo apt-get install debootstrap
Installing Debian Woody
Install a base debian woody system into the directory /opt/woody
$ sudo debootstrap --arch i386 woody /opt/woody http://http.us.debian.org/debian
chroot into the new environment and install some common X11 packages.
$ sudo mount -t proc proc /opt/woody/proc $ sudo mount --bind /tmp /opt/woody/tmp $ sudo mount --bind /dev /opt/woody/dev $ sudo chroot /opt/woody # apt-get install xterm # exit $ sudo umount /opt/woody/proc $ sudo umount /opt/woody/tmp $ sudo umount /opt/woody/dev
Create woody environment script in /usr/local/bin/woody
#!/bin/bash CHROOT=/opt/woody if test "$(whoami)" = "root" ; then mount -t proc proc $CHROOT/proc mount --bind /tmp $CHROOT/tmp mount --bind /dev $CHROOT/dev mount --bind /usr/local $CHROOT/usr/local mount --bind /home $CHROOT/home mount --bind /opt $CHROOT/opt cp /etc/passwd /etc/group $CHROOT/etc if test "$*" ; then chroot $CHROOT su $SUDO_USER -c "$*" else chroot $CHROOT su $SUDO_USER fi umount -l $CHROOT/proc umount -l $CHROOT/tmp umount -l $CHROOT/dev umount -l $CHROOT/usr/local umount -l $CHROOT/home umount -l $CHROOT/opt else gksudo "$0 $*" fi
Make it executable.
$ chmod a+x /usr/local/bin/woody
Applications can now be run in the debian woody environment by prefixing their launch command with "woody ". Here is the contents of a kohan start script that is saved in /usr/local/bin/kohan (it must also be executable).
woody /usr/local/games/kohan/kohan $*