system/md

This commit is contained in:
Marc Beninca 2018-01-14 20:58:14 +01:00
parent e8e07c861a
commit d77dac573e

291
source/debian/system.rst Normal file
View file

@ -0,0 +1,291 @@
Installation d’une distribution GNU/Linux Debian
---
TODO etc/motd
```
```
# Décisions
1. ## disposer de miroirs à jour
TODO
* ## choisir les paquets indispensables
paquets proposés pour pouvoir travailler correctement
|||
|||
| locales | générer des locales binaires pour les messages
| apt-utils | sinon la configuration des paquets est repoussée
| dialog | sans quoi APT remonte des messages d’alerte
* ## décider du type de système souhaité
* le système sera-t-il architecturé
* en 64 bits ?
* en 32 bits ?
* les 2 ?!
* le système sera-t-il exécuté
* sur une machine physique ?
* dans une machine virtuelle ?
* dans un conteneur ?
* dans un conteneur dans une machine virtuelle ?
* le système sera-t-il utilisé
* en écriture, sur un support de stockage ?
* en lecture, chargé en mémoire au démarrage ?
# Installer les outils nécessaires
|||
|||
| debootstrap | générer un système de fichiers de base minimal
| squashfs-tools | compresser ou décompresser une image de système
```bash
apt-get install "debootstrap squashfs-tools"
```
# Créer une arborescence de base
## préparer le chroot
* devenir root
* créer un répertoire, et s’y positionner
```bash
su
```
```bash
mkdir -p "chemin"
cd "chemin"
```
## générer le système de fichiers
```bash
debootstrap \
--arch="amd64" \
--include="locales,apt-utils,dialog" \
--variant="minbase" \
"stretch" \
. \
"miroir"
```
# Configurer les paquets préinstallés
## définir les claviers par défaut
* /etc/default/keyboard
```bash
XKBMODEL="pc105"
XKBLAYOUT="fr,fr"
XKBVARIANT="oss,bepo"
XKBOPTIONS=""
BACKSPACE="guess"
```
## définir les locales à générer
* etc/default/locale
```
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
```
* etc/locale.gen
```
en_US.UTF-8 UTF-8
fr_FR.UTF-8 UTF-8
```
## [configurer l’interpréteur de commandes](../bash/index.md)
## [configurer le gestionnaire de paquets](../apt/index.md)
## redéfinir le nom d’hôte
```bash
echo "hostname" > "etc/hostname"
```
## renseigner les volumes connus
* etc/fstab
Volume temporaire en RAM
```
tmpfs /tmp tmpfs auto,mode=1777 0 0
```
# Installation
## changer de contexte
```bash
mount --bind /proc proc
mount --bind /sys sys
chroot .
```
TODO ? /dev
## générer les locales
```bash
locale-gen
```
## définir le mot de passe root
```bash
passwd
```
## utilisateur, invité, sudo
```bash
apt-get install sudo
useradd -s /bin/bash user
mkdir /home/user
chown user: /home/user
adduser user sudo
useradd -s /bin/bash guest
chown guest: /home/guest
```
## authentifications : mots de passe, clés SSH
TODO
## mettre le système à jour
* dans tous les cas :
```bash
apt-get update
apt-get upgrade
```
* si besoin, car des paquets rétroportés modifient la distribution :
```bash
apt-get dist-upgrade
```
## appliquer le type de système choisi
|||
|||
| linux-image-amd64 | s’il ne s’agit pas d’un conteneur
| live-boot | si à destination de boot live
| systemd-sysv | sans quoi le système ne démarrera pas complètement
```bash
apt-get install -t stretch-backports "linux-image-amd64"
apt-get install "live-boot"
```
---
## définir les paramètres d’initialisation
```bash
apt-get install -t stretch-backports "systemd-sysv"
```
* etc/sysctl.conf
Espace mémoire maximum allouable (à augmenter si hébergement de conteneurs)
Pourcentage de RAM disponible avant utilisation de la partition d’échange
```ini
vm.max_map_count=1048576
vm.swappiness=0
```
## pour s’en tenir au strict nécessaire
```bash
apt-get install --no-install-recommends …
```
## installer des paquets utiles
```bash
apt-get install \
bash-completion \
lxc \
less nano vim \
pciutils usbutils \
python3 \
squashfs-tools \
```
```bash
apt-get install -t "stretch-backports" \
debootstrap \
```
## installer des paquets au choix
[Choix de paquets commentés](packages.md)
```bash
apt-get install "package1" …
apt-get install -t stretch-backports "package1" …
```
## sortir correctement du contexte
* vider le cache d’APT
```bash
apt-get clean
```
* s’extraire de l’environnement
```bash
exit
```
* démonter les liens au système hôte
```bash
umount sys
umount proc
```
## épurer l’historique des commandes
* root/.bash_history
# Configurer les paquets installés
# Archiver le système de fichiers
```bash
mksquashfs . "../name.squashfs" -comp "xz"
```