Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| linux:lfs [2020/09/27 17:27] – wip chapter 6 phsw | linux:lfs [2021/06/03 21:03] (Version actuelle) – [Linux From Scratch] fix link formatting phsw | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| - | [[http:// | + | http:// |
| Fonctionnement général: à partir d'un système existant, on construit LFS sur une partition à côté du système existant. On pourra ensuite booter sur LFS situé sur la nouvelle partition. | Fonctionnement général: à partir d'un système existant, on construit LFS sur une partition à côté du système existant. On pourra ensuite booter sur LFS situé sur la nouvelle partition. | ||
| Ligne 14: | Ligne 14: | ||
| ==== Prérequis du système hôte ==== | ==== Prérequis du système hôte ==== | ||
| - | Exécuter le script fournit [[http:// | + | Exécuter le script fournit [[http:// |
| Correction à apporter: | Correction à apporter: | ||
| Ligne 1747: | Ligne 1747: | ||
| make check | make check | ||
| make install | make install | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Findutils-4.7.0 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | ./configure --prefix=/ | ||
| + | make | ||
| + | make install | ||
| + | |||
| + | mv -v / | ||
| + | sed -i ' | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Groff-1.22.4 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources | ||
| + | tar xfv groff-1.22.4.tar.gz | ||
| + | cd groff-1.22.4 | ||
| + | |||
| + | PAGE=A4 ./configure --prefix=/ | ||
| + | make -j1 | ||
| + | make install | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== GRUB-2.04 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources | ||
| + | tar xfv grub-2.04.tar.xz | ||
| + | cd grub-2.04 | ||
| + | |||
| + | ./configure --prefix=/ | ||
| + | --sbindir=/ | ||
| + | --sysconfdir=/ | ||
| + | --disable-efiemu | ||
| + | --disable-werror | ||
| + | make | ||
| + | make install | ||
| + | mv -v / | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Less-551 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources | ||
| + | tar xfv less-551.tar.gz | ||
| + | cd less-551 | ||
| + | |||
| + | ./configure --prefix=/ | ||
| + | make | ||
| + | make install | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Gzip-1.10 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | ./configure --prefix=/ | ||
| + | make | ||
| + | make install | ||
| + | mv -v / | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Zstd-1.4.4 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources | ||
| + | tar xfv zstd-1.4.4.tar.gz | ||
| + | cd zstd-1.4.4 | ||
| + | |||
| + | make | ||
| + | make prefix=/usr install | ||
| + | |||
| + | rm -v / | ||
| + | mv -v / | ||
| + | ln -sfv ../ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== IPRoute2-5.5.0 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources | ||
| + | tar xfv iproute2-5.5.0.tar.xz | ||
| + | cd iproute2-5.5.0 | ||
| + | |||
| + | sed -i /ARPD/d Makefile | ||
| + | rm -fv man/ | ||
| + | sed -i ' | ||
| + | |||
| + | make | ||
| + | make DOCDIR=/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Kbd-2.2.0 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources/ | ||
| + | tar xfv kbd-2.2.0.tar.xz | ||
| + | cd kbd-2.2.0 | ||
| + | |||
| + | patch -Np1 -i ../ | ||
| + | sed -i ' | ||
| + | sed -i ' | ||
| + | |||
| + | PKG_CONFIG_PATH=/ | ||
| + | make | ||
| + | make install | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Libpipeline-1.5.2 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources | ||
| + | tar xfv libpipeline-1.5.2.tar.gz | ||
| + | cd libpipeline-1.5.2 | ||
| + | |||
| + | ./configure --prefix=/ | ||
| + | make | ||
| + | make install | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Make-4.3 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | ./configure --prefix=/ | ||
| + | make | ||
| + | make install | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Patch-2.7.6 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | ./configure --prefix=/ | ||
| + | make | ||
| + | make install | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Man-DB-2.9.0 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources/ | ||
| + | tar xfv man-db-2.9.0.tar.xz | ||
| + | cd man-db-2.9.0 | ||
| + | |||
| + | sed -i '/ | ||
| + | |||
| + | ./configure --prefix=/ | ||
| + | --docdir=/ | ||
| + | --sysconfdir=/ | ||
| + | --disable-setuid | ||
| + | --enable-cache-owner=bin | ||
| + | --with-browser=/ | ||
| + | --with-vgrind=/ | ||
| + | --with-grap=/ | ||
| + | make | ||
| + | make install | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Tar-1.32 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | FORCE_UNSAFE_CONFIGURE=1 | ||
| + | ./configure --prefix=/ | ||
| + | --bindir=/ | ||
| + | make | ||
| + | make install | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Texinfo-6.7 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | ./configure --prefix=/ | ||
| + | make | ||
| + | make install | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Vim-8.2.0190 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources | ||
| + | tar xfv vim-8.2.0190.tar.gz | ||
| + | cd vim-8.2.0190 | ||
| + | |||
| + | echo '# | ||
| + | |||
| + | ./configure --prefix=/ | ||
| + | make | ||
| + | make install | ||
| + | |||
| + | ln -sv vim /usr/bin/vi | ||
| + | for L in / | ||
| + | ln -sv vim.1 $(dirname $L)/vi.1 | ||
| + | done | ||
| + | ln -sv ../ | ||
| + | |||
| + | cat > /etc/vimrc << " | ||
| + | " Begin /etc/vimrc | ||
| + | |||
| + | " Ensure defaults are set before customizing settings, not after | ||
| + | source $VIMRUNTIME/ | ||
| + | let skip_defaults_vim=1 | ||
| + | |||
| + | set nocompatible | ||
| + | set backspace=2 | ||
| + | set mouse= | ||
| + | syntax on | ||
| + | if (&term == " | ||
| + | set background=dark | ||
| + | endif | ||
| + | |||
| + | " End /etc/vimrc | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Systemd-244 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources | ||
| + | tar xfv systemd-244.tar.gz | ||
| + | cd systemd-244 | ||
| + | |||
| + | ln -sf / | ||
| + | for file in / | ||
| + | ln -sf $file /usr/lib/ | ||
| + | done | ||
| + | tar -xf ../ | ||
| + | sed '177,$ d' -i src/ | ||
| + | sed -i ' | ||
| + | mkdir -p build | ||
| + | cd build | ||
| + | |||
| + | PKG_CONFIG_PATH="/ | ||
| + | LANG=en_US.UTF-8 | ||
| + | meson --prefix=/ | ||
| + | --sysconfdir=/ | ||
| + | --localstatedir=/ | ||
| + | -Dblkid=true | ||
| + | -Dbuildtype=release | ||
| + | -Ddefault-dnssec=no | ||
| + | -Dfirstboot=false | ||
| + | -Dinstall-tests=false | ||
| + | -Dkmod-path=/ | ||
| + | -Dldconfig=false | ||
| + | -Dmount-path=/ | ||
| + | -Drootprefix= | ||
| + | -Drootlibdir=/ | ||
| + | -Dsplit-usr=true | ||
| + | -Dsulogin-path=/ | ||
| + | -Dsysusers=false | ||
| + | -Dumount-path=/ | ||
| + | -Db_lto=false | ||
| + | -Drpmmacrosdir=no | ||
| + | .. | ||
| + | LANG=en_US.UTF-8 ninja | ||
| + | LANG=en_US.UTF-8 ninja install | ||
| + | |||
| + | rm -f / | ||
| + | systemd-machine-id-setup | ||
| + | systemctl preset-all | ||
| + | systemctl disable systemd-time-wait-sync.service | ||
| + | rm -fv / | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== D-Bus-1.12.16 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources | ||
| + | tar xfv dbus-1.12.16.tar.gz | ||
| + | cd dbus-1.12.16 | ||
| + | |||
| + | ./configure --prefix=/ | ||
| + | --sysconfdir=/ | ||
| + | --localstatedir=/ | ||
| + | --disable-static | ||
| + | --disable-doxygen-docs | ||
| + | --disable-xml-docs | ||
| + | --docdir=/ | ||
| + | --with-console-auth-dir=/ | ||
| + | make | ||
| + | make install | ||
| + | |||
| + | mv -v / | ||
| + | ln -sfv ../ | ||
| + | ln -sv / | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Procps-3.3.15 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources/ | ||
| + | tar xfv procps-ng-3.3.15.tar.xz | ||
| + | cd procps-ng-3.3.15 | ||
| + | |||
| + | ./configure --prefix=/ | ||
| + | --exec-prefix= | ||
| + | --libdir=/ | ||
| + | --docdir=/ | ||
| + | --disable-static | ||
| + | --disable-kill | ||
| + | --with-systemd | ||
| + | make | ||
| + | make install | ||
| + | |||
| + | mv -v / | ||
| + | ln -sfv ../ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Util-linux-2.35.1 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | |||
| + | mkdir -pv / | ||
| + | rm -vf / | ||
| + | |||
| + | ./configure ADJTIME_PATH=/ | ||
| + | --docdir=/ | ||
| + | --disable-chfn-chsh | ||
| + | --disable-login | ||
| + | --disable-nologin | ||
| + | --disable-su | ||
| + | --disable-setpriv | ||
| + | --disable-runuser | ||
| + | --disable-pylibmount \ | ||
| + | --disable-static | ||
| + | --without-python | ||
| + | make | ||
| + | make install | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== E2fsprogs-1.45.5 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources/ | ||
| + | tar xfv e2fsprogs-1.45.5.tar.gz | ||
| + | cd e2fsprogs-1.45.5 | ||
| + | mkdir -v build | ||
| + | cd build | ||
| + | |||
| + | ../ | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | make | ||
| + | make install | ||
| + | |||
| + | chmod -v u+w / | ||
| + | gunzip -v / | ||
| + | install-info --dir-file=/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Nettoyer ==== | ||
| + | |||
| + | <code bash> | ||
| + | rm -rf /tmp/* | ||
| + | logout | ||
| + | |||
| + | chroot " | ||
| + | HOME=/root TERM=" | ||
| + | PS1=' | ||
| + | PATH=/ | ||
| + | /bin/bash --login | ||
| + | |||
| + | rm -f / | ||
| + | rm -f / | ||
| + | rm -f / | ||
| + | rm -f / | ||
| + | rm -f / | ||
| + | rm -f / | ||
| + | find /usr/lib / | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ==== Configuration générale du réseau ==== | ||
| + | |||
| + | Pour utiliser un DHCP: | ||
| + | <code bash> | ||
| + | cat > / | ||
| + | [Match] | ||
| + | Name=< | ||
| + | |||
| + | [Network] | ||
| + | DHCP=ipv4 | ||
| + | |||
| + | [DHCP] | ||
| + | UseDomains=true | ||
| + | EOF | ||
| + | cat > / | ||
| + | nameserver <Adresse IP du DNS primaire> | ||
| + | EOF | ||
| + | |||
| + | echo " | ||
| + | |||
| + | cat > /etc/hosts << " | ||
| + | 127.0.0.1 | ||
| + | 127.0.1.1 | ||
| + | |||
| + | ::1 | ||
| + | ff02::1 ip6-allnodes | ||
| + | ff02::2 ip6-allrouters | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Configurer la Console Linux ==== | ||
| + | |||
| + | <code bash> | ||
| + | cat > / | ||
| + | KEYMAP=fr | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Configuration des paramètres régionaux du système ==== | ||
| + | |||
| + | <code bash> | ||
| + | cat > / | ||
| + | LANG=fr_FR.ISO-8859-1 | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Créer le fichier / | ||
| + | |||
| + | <code bash> | ||
| + | cat > / | ||
| + | # Début de / | ||
| + | # Modifié par Chris Lynn < | ||
| + | |||
| + | # Permettre à l' | ||
| + | set horizontal-scroll-mode Off | ||
| + | |||
| + | # Activer l' | ||
| + | set meta-flag On | ||
| + | set input-meta On | ||
| + | |||
| + | # Ne pas supprimer le 8ème bit | ||
| + | set convert-meta Off | ||
| + | |||
| + | # Conserver le 8ème bit à l' | ||
| + | set output-meta On | ||
| + | |||
| + | # none, visible ou audible | ||
| + | set bell-style none | ||
| + | |||
| + | # Toutes les indications qui suivent font correspondre la séquence | ||
| + | # d' | ||
| + | # spécifique de readline | ||
| + | " | ||
| + | " | ||
| + | |||
| + | # Pour la console linux | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | |||
| + | # pour xterm | ||
| + | " | ||
| + | " | ||
| + | |||
| + | # pour Konsole | ||
| + | " | ||
| + | " | ||
| + | |||
| + | # Fin de / | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Créaction du fichier /etc/shells ==== | ||
| + | |||
| + | <code bash> | ||
| + | cat > /etc/shells << " | ||
| + | # Begin /etc/shells | ||
| + | |||
| + | /bin/sh | ||
| + | /bin/bash | ||
| + | |||
| + | # End /etc/shells | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Utilisation et configuration de Systemd ==== | ||
| + | |||
| + | <code bash> | ||
| + | mkdir -pv / | ||
| + | |||
| + | cat > / | ||
| + | [Service] | ||
| + | TTYVTDisallocate=no | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Créer le fichier /etc/fstab ==== | ||
| + | |||
| + | <code bash> | ||
| + | cat > /etc/fstab << " | ||
| + | # Begin /etc/fstab | ||
| + | |||
| + | # file system | ||
| + | # order | ||
| + | |||
| + | / | ||
| + | / | ||
| + | |||
| + | # End /etc/fstab | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ==== Linux-5.5.3 ==== | ||
| + | |||
| + | <code bash> | ||
| + | cd /sources/ | ||
| + | rm -rf linux-5.5.3 | ||
| + | tar xfv linux-5.5.3.tar.xz | ||
| + | cd linux-5.5.3 | ||
| + | |||
| + | make mrproper | ||
| + | |||
| + | make defconfig | ||
| + | make menuconfig # voir la doc pour les options à activer ou désactiver | ||
| + | make | ||
| + | make modules_install | ||
| + | |||
| + | cp -iv arch/ | ||
| + | cp -iv System.map / | ||
| + | cp -iv .config / | ||
| + | |||
| + | install -v -m755 -d / | ||
| + | cat > / | ||
| + | # Début de / | ||
| + | |||
| + | install ohci_hcd / | ||
| + | install uhci_hcd / | ||
| + | |||
| + | # Fin de / | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Utiliser GRUB pour paramétrer le processus de démarrage ==== | ||
| + | |||
| + | Ajouter, sur le système hôte, dans ''/ | ||
| + | <code bash> | ||
| + | menuentry " | ||
| + | insmod ext2 | ||
| + | set root=(hd0, | ||
| + | linux / | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Fin ==== | ||
| + | |||
| + | <code bash> | ||
| + | echo 9.1-systemd > / | ||
| + | |||
| + | cat > / | ||
| + | DISTRIB_ID=" | ||
| + | DISTRIB_RELEASE=" | ||
| + | DISTRIB_CODENAME="< | ||
| + | DISTRIB_DESCRIPTION=" | ||
| + | EOF | ||
| + | |||
| + | cat > / | ||
| + | NAME=" | ||
| + | VERSION=" | ||
| + | ID=lfs | ||
| + | PRETTY_NAME=" | ||
| + | VERSION_CODENAME="< | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Redémarrer le système ==== | ||
| + | |||
| + | <code bash> | ||
| + | logout | ||
| + | reboot | ||
| </ | </ | ||