个人工具
登录
查看“UbuntuHelp:DebootstrapChroot”的源代码 - Ubuntu中文
UbuntuHelp
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“UbuntuHelp:DebootstrapChroot”的源代码
来自Ubuntu中文
←
UbuntuHelp:DebootstrapChroot
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{From|https://help.ubuntu.com/community/DebootstrapChroot}} {{Languages|UbuntuHelp:DebootstrapChroot}} This article demonstrates a quick and easy way to create a ''chroot'' environment on an Ubuntu computer, which is like having a virtual system without the overhead of actual virtualization. A ''chroot'' can be used for things like: * Running a 32-bit Firefox browser or a 32-bit Wine bottle on a 64-bit system. * Trying an older or newer Ubuntu release without reinstalling the operating system. * Trying a [http://www.debian.org Debian] release or other distribution derived from Debian. * Cross compiling and building packages for a different platform like [http://www.launchpad.net/ Launchpad] or [https://launchpad.net/soyuz/ Soyuz] does it. === Example Configuration === In this example, we use a current Ubuntu 9.04 Jaunty system (the "host") to create a ''chroot'' for the older Ubuntu 8.04 Hardy release (the "target"). We are arbitrarily naming the new ''chroot'' environment '''hardy_i386''' and putting it in the /srv/chroot directory on the host system. === Step 1: Install packages on the host computer. === First, install `debootstrap`, which is a utility that downloads and unpacks a basic Ubuntu system: <pre><nowiki> $ sudo apt-get install debootstrap </nowiki></pre> Second, install `schroot`, which is a utility that wraps the regular `chroot` program and automatically manages ''chroot'' environments: <pre><nowiki> $ sudo apt-get install schroot </nowiki></pre> Note: The `debootstrap` utility is usually backwards compatible with older releases, but it may be incompatible with newer releases. For example, the `debootstrap` that is bundled with Jaunty can prepare a Hardy ''chroot'' like we are doing here, but the `debootstrap` that is bundled with Hardy cannot prepare a Jaunty ''chroot''. If you have any difficultly with a `debootstrap` version mismatch, then visit http://packages.ubuntu.com/ to manually download and install the [http://packages.ubuntu.com/search?keywords=debootstrap debootstrap package] on the host system from the repository for the target release. === Step 2: Create a configuration file for schroot. === Choose a short name for the ''chroot'', we use '''hardy_i386''' in this example, and create a configuration file for it like this: <pre><nowiki> sudo editor /etc/schroot/chroot.d/hardy_i386.conf </nowiki></pre> Put this in the new file: <pre><nowiki> [hardy_i386] description=Ubuntu 8.04 Hardy for i386 location=/srv/chroot/hardy_i386 #personality=linux32 root-users=bob run-setup-scripts=true run-exec-scripts=true type=directory users=alice,bob,charlie </nowiki></pre> Change these things in the example configuration file to fit your system: . '''location''': This should be a directory that is outside of the /home tree. The latest `schroot` documentation recommends /srv/chroot. . '''personality''': Enable this line if the host system is 64-bit running on an amd64/x64 computer and the chroot is 32-bit for i386. Otherwise, leave it disabled. . '''users''': These are users on the host system that can invoke the `schroot` program and get access to the ''chroot'' system. Your username on the host system should be here. . '''root-users''': These are users on the host system that can invoke the `schroot` program and get direct access to the chroot system as the root user. Note: Do not put whitespace around the '=' character, and do not quote strings after the '=' character. === Step 3: Run debootstrap. === This will download and unpack a basic Ubuntu system to the chroot directory, similar to what the host system already has at the real root directory ("/"). <pre><nowiki> $ sudo mkdir -p /srv/chroot/hardy_i386 $ sudo debootstrap --variant=buildd --arch i386 hardy /srv/chroot/hardy_i386 http://archive.ubuntu.com/ubuntu/ </nowiki></pre> This command should work for any distribution that is derived from Debian. Substitute the architecture "i386", the release name "hardy", and the repository address "http://archive.ubuntu.com/ubuntu/" appropriately. For example, do this to get the 64-bit build of Hardy instead of the 32-bit build: <pre><nowiki> $ sudo debootstrap --arch amd64 hardy /srv/chroot/hardy_amd64/ http://archive.ubuntu.com/ubuntu/ </nowiki></pre> Note: Remember to change all instances of '''hardy_i386''' to '''hardy_amd64''' in the configuration file and on the command line if you actually do this. Do something like this to get an upstream Debian release: <pre><nowiki> $ sudo debootstrap --arch amd64 sid /srv/chroot/sid_amd64/ http://ftp.debian.org/debian/ </nowiki></pre> === Step 4: Check the chroot === This command lists configured ''chroot''s: <pre><nowiki> $ schroot -l </nowiki></pre> If '''hardy_i386''' appears in the list, then run: <pre><nowiki> $ schroot -c hardy_i386 -u root </nowiki></pre> Note: This should work without using `sudo` to invoke the `schroot` program, and it should result in a root prompt in the ''chroot'' environment. Check that the root prompt is in a different system: <pre><nowiki> # lsb_release -a </nowiki></pre> For the Hardy system that we just built, the `lsb_release` command should print: <pre><nowiki> No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 8.04 Release: 8.04 Codename: hardy </nowiki></pre> We're done! == WARNING == For convenience, the default `schroot` configuration rebinds the /home directory on the host system so that it appears in the ''chroot'' system. This could be unexpected if you are familiar with the older `dchroot` program or the regular `chroot` program because it means that you can accidentally delete or otherwise damage things in /home on the host system. To change this behavior run: <pre><nowiki> $ sudo editor /etc/schroot/mount-defaults </nowiki></pre> And disable the /home line so that the file reads: <pre><nowiki> # mount.defaults: static file system information for chroots. # Note that the mount point will be prefixed by the chroot path # (CHROOT_PATH) # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/pts /dev/pts none rw,bind 0 0 tmpfs /dev/shm tmpfs defaults 0 0 #/home /home none rw,bind 0 0 /tmp /tmp none rw,bind 0 0 </nowiki></pre> The mount.defaults file is the /etc/fstab for ''chroot'' environments. == Hints == Install the ubuntu-minimal package in a new ''chroot'' after you create it: <pre><nowiki> $ schroot -c hardy_i386 -u root # apt-get install ubuntu-minimal </nowiki></pre> If you get locale warnings in the ''chroot'' like "'''Locale not supported by C library.'''" or '''"perl: warning: Setting locale failed."''' , then try one or more of these commands: <pre><nowiki> $ sudo dpkg-reconfigure locales </nowiki></pre> <pre><nowiki> $ sudo apt-get install language-pack-en </nowiki></pre> <pre><nowiki> $ locale-gen en_US.UTF-8 </nowiki></pre> If your preferred language is not English, then change "-en" and "en_US" appropriately. ---- [[category:CategoryDevelopment]] [[category:UbuntuHelp]]
该页面使用的模板:
模板:From
(
查看源代码
)
模板:Languages
(
查看源代码
)(受保护)
模板:Languages/Lang
(
查看源代码
)(受保护)
返回至
UbuntuHelp:DebootstrapChroot
。