个人工具

“UbuntuHelp:WoodyInChroot”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
(新页面: {{From|https://help.ubuntu.com/community/WoodyInChroot}} {{Languages|UbuntuHelp:WoodyInChroot}} == Motivation == Binary-only applications that were compiled with an earlier libc6 version...)
 
 
(未显示同一用户的2个中间版本)
第2行: 第2行:
 
{{Languages|UbuntuHelp:WoodyInChroot}}
 
{{Languages|UbuntuHelp:WoodyInChroot}}
 
== Motivation ==
 
== 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.
 
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 ==
 
== 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.
 
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? ==
 
== 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.
 
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 ==
 
== Requirements ==
 
 
* chroot requires root access.
 
* chroot requires root access.
 
* About 128 MB of free disk space in /opt.
 
* About 128 MB of free disk space in /opt.
 
* 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
第71行: 第59行:
 
fi
 
fi
 
</nowiki></pre>
 
</nowiki></pre>
 
 
 
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的最新版本

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 $*