2 == HOWTO set up a porting dchroot on a debian.org machine ==
4 The script 'upgrade-porter-chroots' has expectations about naming conventions
5 for new porter chroots. The current list it searches for are:
8 lenny squeeze wheezy sid \
9 lenny_i386 squeeze_i386 wheezy_i386 sid_i386 \
10 lenny_amd64 squeeze_amd64 wheezy_amd64 sid_amd64 \
14 Please make sure that new chroots meet the expectations of the script, or update
15 the script accordingly (it lives in the debian.org.git repo)
19 This example is for setting up a $DIST dchroot on paer.debian.org,
22 Do the following as root:
25 echo -n 'Dist: ' && read DIST && export DIST &&
26 echo -n 'Mirror: ' && read MIRROR && export MIRROR &&
27 default_arch="$(dpkg --print-architecture)" &&
28 echo -n "Arch [$default_arch]: " && read ARCH &&
29 if [ -z "$ARCH" ]; then ARCH="$default_arch"; fi &&
37 mkdir "${DIST}_${ARCH}" &&
38 debootstrap --keyring /usr/share/keyrings/debian-archive-keyring.gpg --include="apt" --variant=buildd $DIST ./"${DIST}_${ARCH}" http://$MIRROR/debian &&
39 cp /etc/hosts "${DIST}_${ARCH}"/etc/
42 * enter the chroot and create the chroot tag:
44 chroot "${DIST}_${ARCH}"
45 echo $DIST > /etc/debian_chroot
48 echo 'Acquire::PDiffs "false";' > /etc/apt/apt.conf.d/local-pdiff
49 echo 'APT::Install-Recommends 0;' > /etc/apt/apt.conf.d/local-recommends
50 echo 'Acquire::Languages "none";' > /etc/apt/apt.conf.d/local-no-lang
51 # # not sure this one's a good idea, -- weasel 20080829
52 # ##echo 'DPkg::Post-Invoke { "(sleep 1; apt-get clean) &"; };' > /etc/apt/apt.conf.d/local-cleanup
54 #*) deploy a policy-rc.d script:
56 apt-get install policyrcd-script-zg2 &&
57 cat > /usr/local/sbin/policy-rc.d << EOF &&
60 # policy-rc.d script for chroots.
61 # Copyright (c) 2007 Peter Palfrader <peter@palfrader.org>
68 echo "Not running services in chroot."
74 chmod +x /usr/local/sbin/policy-rc.d
76 #*) install and setup locales and install libnss-db
77 apt-get install locales-all
79 # (if locales-all is not feasible on the machine because of say
80 # disk constraints then install just locales and enable at
81 # least "en_US.UTF-8 UTF-8" and "en_US ISO-8859-1".)
83 #*) setup nsswitch.conf to properly use the ldap stuff
84 # [dchroot]: apt-get install libnss-db &&
85 # sed -i -e 's/^passwd:\[[:space:]]\+compat$/passwd: compat db/;
86 # s/^group:\[[:space:]]\+compat$/group: db compat/;
87 # s/^shadow:\[[:space:]]\+compat$/shadow: compat db/' \
92 apt-get install vim fakeroot devscripts gdb zsh dialog tcsh
93 # edit the sources.list in the chroot and add contrib/non-free to the
94 # primary source, a security updates source, and deb-src entries for both.
95 # It should end up looking something like
97 echo "deb http://$MIRROR/debian $DIST main contrib non-free"
98 echo "deb-src http://$MIRROR/debian $DIST main contrib non-free"
99 if [ "$DIST" != "sid" ] ; then
100 echo "deb http://security.debian.org $DIST/updates main contrib non-free"
101 echo "deb-src http://security.debian.org $DIST/updates main contrib non-free"
103 ) > /etc/apt/sources.list
104 apt-get update && apt-get upgrade
112 * [dchroot only] edit /etc/fstab on the system root and add entries to mount /proc and /home
113 in the chroot, there will be existing ones for the other chroots, just copy and
114 adjust. Then mount them (from the system root).
117 : proc-etch /srv/albeniz.debian.org/chroot/etch/proc proc defaults,nosuid,nodev,noexec 0 0
118 : proc-lenny /srv/albeniz.debian.org/chroot/lenny/proc proc defaults,nosuid,nodev,noexec 0 0
119 : proc-sid /srv/albeniz.debian.org/chroot/sid/proc proc defaults,nosuid,nodev,noexec 0 0
121 : home /srv/albeniz.debian.org/chroot/etch/home none bind,defaults
122 : home /srv/albeniz.debian.org/chroot/lenny/home none bind,defaults
123 : home /srv/albeniz.debian.org/chroot/sid/home none bind,defaults
125 : devpts-etch /srv/albeniz.debian.org/chroot/etch/dev/pts devpts defaults,noexec,nosuid 0 0
126 : devpts-lenny /srv/albeniz.debian.org/chroot/lenny/dev/pts devpts defaults,noexec,nosuid 0 0
127 : devpts-sid /srv/albeniz.debian.org/chroot/sid/dev/pts devpts defaults,noexec,nosuid 0 0
129 : shm-etch /srv/albeniz.debian.org/chroot/etch/dev/shm tmpfs defaults,nosuid,nodev 0 0
130 : shm-lenny /srv/albeniz.debian.org/chroot/lenny/dev/shm tmpfs defaults,nosuid,nodev 0 0
131 : shm-sid /srv/albeniz.debian.org/chroot/sid/dev/shm tmpfs defaults,nosuid,nodev 0 0
133 : tmp /srv/albeniz.debian.org/chroot/etch/tmp none bind,defaults
134 : tmp /srv/albeniz.debian.org/chroot/lenny/tmp none bind,defaults
135 : tmp /srv/albeniz.debian.org/chroot/sid/tmp none bind,defaults
138 * [schroot] set up /etc/schroot/chroot.d/ correctly.
139 [dchroot]: edit /etc/dchroot.conf in the system root, add an entry for $DIST, and update the stable and testing pointers
141 * [dchroot]: run ud-replicate so the new chroot is setup (this would happen via cron eventually, this is just to speed things up)
146 * as a normal user, test that the new chroot works: "dchroot $DIST" or "schroot $DIST", test that the stable and testing pointers work.