特殊:Badtitle/NS100:WoodyInChroot:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
Wikibot留言 | 贡献
无编辑摘要
Wikibot留言 | 贡献
无编辑摘要
第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行: 第60行:
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]]

2007年12月6日 (四) 11:05的版本

{{#ifexist: :WoodyInChroot/zh | | {{#ifexist: WoodyInChroot/zh | | {{#ifeq: {{#titleparts:WoodyInChroot|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:WoodyInChroot|1|-1|}} | zh | | }}

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