Setting up the build environment in a chroot: Difference between revisions
m (Cleaning up) |
(→Create a build environment: Need sudo rights) |
||
Line 22: | Line 22: | ||
mkdir ${build_dir} | mkdir ${build_dir} | ||
./apk.static --repo ${mirror}/v1.9/packages/core --root $PWD/${build_dir} add --initdb build-base git abuild | sudo ./apk.static --repo ${mirror}/v1.9/packages/core --root $PWD/${build_dir} add --initdb build-base git abuild | ||
mkdir -p ./${build_dir}/proc | mkdir -p ./${build_dir}/proc | ||
mount --bind /proc ./${build_dir}/proc | sudo mount --bind /proc ./${build_dir}/proc | ||
Lets setup our needed devices: | Lets setup our needed devices: | ||
mknod -m 666 ./${build_dir}/dev/full c 1 7 | sudo mknod -m 666 ./${build_dir}/dev/full c 1 7 | ||
mknod -m 777 ./${build_dir}/dev/null c 1 3 | sudo mknod -m 777 ./${build_dir}/dev/null c 1 3 | ||
mknod -m 666 ./${build_dir}/dev/ptmx c 5 2 | sudo mknod -m 666 ./${build_dir}/dev/ptmx c 5 2 | ||
mknod -m 644 ./${build_dir}/dev/random c 1 8 | sudo mknod -m 644 ./${build_dir}/dev/random c 1 8 | ||
mknod -m 644 ./${build_dir}/dev/urandom c 1 9 | sudo mknod -m 644 ./${build_dir}/dev/urandom c 1 9 | ||
mknod -m 666 ./${build_dir}/dev/zero c 1 5 | sudo mknod -m 666 ./${build_dir}/dev/zero c 1 5 | ||
mknod -m 666 ./${build_dir}/dev/tty c 5 0 | sudo mknod -m 666 ./${build_dir}/dev/tty c 5 0 | ||
We need or dns servers and root dir: | We need or dns servers and root dir: | ||
cp /etc/resolv.conf ./${build_dir}/etc/ | sudo cp /etc/resolv.conf ./${build_dir}/etc/ | ||
mkdir -p ./${build_dir}/root | mkdir -p ./${build_dir}/root | ||
Line 44: | Line 44: | ||
mkdir -p ./${build_dir}/etc/apk | mkdir -p ./${build_dir}/etc/apk | ||
echo "${mirror}/v1.9/packages/core" | su | ||
echo "${mirror}/v1.9/packages/extra" | echo "${mirror}/v1.9/packages/core" > ./${build_dir}/etc/apk/repositories | ||
echo "${mirror}/v1.9/packages/extra" >> ./${build_dir}/etc/apk/repositories | |||
exit | |||
At this point you should be able to enter your chroot: | At this point you should be able to enter your chroot: | ||
chroot ./${build_dir} /bin/sh | sudo chroot ./${build_dir} /bin/sh |
Revision as of 14:26, 10 March 2009
Introduction
The Build Environment will be called BE from now on.
You will need a few Gigabytes to have enough pace for kernel compiling and storing all the binary packages and iso image.
Create a build environment
We are setting up our BE in chroot.
Note: The variables below:
- ${build_dir} = You can name it whatever you like.
- ${mirror} = Should be replaced with one of the available alpine-mirrors:
- http://dl-cdn.alpinelinux.org/alpine/
- http://nl.alpinelinux.org/alpine/
- http://dl-2.alpinelinux.org/alpine/
- http://dl-3.alpinelinux.org/alpine/
- http://dl-4.alpinelinux.org/alpine/
- http://dl-5.alpinelinux.org/alpine/
- http://dl-6.alpinelinux.org/alpine/
- http://dl-8.alpinelinux.org/alpine/
- http://distrib-coffee.ipsl.jussieu.fr/pub/linux/alpine/alpine/
- http://mirror.yandex.ru/mirrors/alpine/
- http://mirrors.gigenet.com/alpinelinux/
- http://mirror1.hs-esslingen.de/pub/Mirrors/alpine/
- http://liskamm.alpinelinux.uk/
- http://mirrors.2f30.org/alpine/
- http://mirror.leaseweb.com/alpine/
- http://repository.fit.cvut.cz/mirrors/alpine/
- http://alpine.mirror.far.fi/
- http://lasca.ic.unicamp.br/pub/alpine/
- http://alpinelinux.c3sl.ufpr.br/
- http://mirrors.cug.edu.cn/alpine/
- http://mirrors.cicku.me/alpine/
Lets start by geting the latest apk static binary:
wget ${mirror}/v1.9/apk.static chmod +x ./apk.static
We are setting up a basic chroot:
mkdir ${build_dir} sudo ./apk.static --repo ${mirror}/v1.9/packages/core --root $PWD/${build_dir} add --initdb build-base git abuild mkdir -p ./${build_dir}/proc sudo mount --bind /proc ./${build_dir}/proc
Lets setup our needed devices:
sudo mknod -m 666 ./${build_dir}/dev/full c 1 7 sudo mknod -m 777 ./${build_dir}/dev/null c 1 3 sudo mknod -m 666 ./${build_dir}/dev/ptmx c 5 2 sudo mknod -m 644 ./${build_dir}/dev/random c 1 8 sudo mknod -m 644 ./${build_dir}/dev/urandom c 1 9 sudo mknod -m 666 ./${build_dir}/dev/zero c 1 5 sudo mknod -m 666 ./${build_dir}/dev/tty c 5 0
We need or dns servers and root dir:
sudo cp /etc/resolv.conf ./${build_dir}/etc/ mkdir -p ./${build_dir}/root
We are setting up apk mirrors:
mkdir -p ./${build_dir}/etc/apk su echo "${mirror}/v1.9/packages/core" > ./${build_dir}/etc/apk/repositories echo "${mirror}/v1.9/packages/extra" >> ./${build_dir}/etc/apk/repositories exit
At this point you should be able to enter your chroot:
sudo chroot ./${build_dir} /bin/sh