Ceci est une ancienne révision du document !
ArchLinux, c'est pas de la petite bière ; c'est du brutal ! Néophytes s'abstenir. Par contre, si vous n'avez pas peur de la ligne de commande et que vous connaissez déjà le fonctionnement de Linux, de sa structure, de ses services, vous bénéficierez d'un ordinateur réglé au millimètre et des dernières versions des logiciels, en permanence.
Il a fallu que j'installe ArchLinux, pour voir pourquoi une de mes applets Cinnamon n'y fonctionnait pas correctement, d'après un utilisateur.
Je me suis contenté de l'installer dans une VM de VirtualBox, avec un disque virtuel de 25 Gio alloués dynamiquement, sans problèmes liés à l'EFI ou au multiboot ou au partitionnement de disque ou au Wifi ou …
Voici ma démarche, après quelques tâtonnements et avec beaucoup de doc (en liens en bas de cette page), que je vous conseille de lire attentivement si vous faites une installation dans un cas délicat (multiboot avec EFI, par exemple).
L'image iso de la distribution est renouvelée chaque mois, ce qui permet de limiter raisonnablement les mises à jour nécessaires après installation.
Vous trouverez les liens vers les miroirs de téléchargement ou les liens bittorrent à partir de cette page.
Classiquement, on boote sur l'iso dans une VM de VirtualBox.
Le boot dure quelques secondes et on se retrouve devant un magnifique # qui signale qu'on est root et que la console est à nous ! Pas d'interface graphique et un clavier qwerty ; la joie nous submerge.
Première chose : un clavier qui ne nous déroute pas ! Sauf que la première commande pour obtenir un clavier français, qui est loadkeys fr-pc
, doit être tapée :
loqdkeys fr)pc
Ouf ! Les a restent des a, etc. C'est suffisant pour notre installation.
Indiquons à présent que l'on veut pouvoir utiliser un système francisé. La liste des locales en français s'obtient ainsi :
cat /etc/locale.gen | grep fr
Toutes les lignes affichées commencent par un #, ce qui signifie qu'elles sont ignorées. Supprimons le # devant fr_FR.UTF-8 UTF-8
:
sed -r 's/^#fr_FR\.UTF\-8.*$/fr_FR\.UTF\-8\ UTF\-8/g' /etc/locale.gen > /etc/locale.gen2
mv /etc/locale.gen2 /etc/locale.gen
Si cette ligne vous effraie, utilisez nano /etc/locale.gen
, supprimez le # devant la ligne choisie et quittez par ctrl-X puis Y.
On génère les locales :
locale-gen
Liste des locales installées :
locale -a
On indique ses préférences en matière de locale dans /etc/locale.conf
:
nano /etc/locale.conf
Y inscrire les lignes :
# Spécifier fr par défaut
LANG="fr_FR.UTF-8"
# Substituer l'anglais au français si la traduction n'existe pas
LANGUAGE="fr_FR:en_US"
# Mais garder un tri par défaut
LC_COLLATE=C
On quitte nano avec ctrl-X puis Y (pour Yes ; la prochaine fois, vous utiliserez O pour Oui !)
Utiliser ces paramètres immédiatement :
source /etc/locale.conf
Vérifier que le réseau fonctionne (il devrait si un serveur DHCP vous fournit tout le nécessaire, que ce soit votre box ou VirtualBox (réseau NAT).
ip address show
Votre carte réseau porte un doux nom du type enp0s3
au lieu de eth0
. Ne vous laissez pas impressionner par ce genre de détail.
Une fois installé, Linux Arch n'utilisera pas DHCP par défaut, il faudra le lui demander poliment.
Indiquez quel est votre fuseau horaire :
timedatectl set-timezone Europe/Paris
Synchronisez votre horloge système (pas celle du BIOS, qui ne sera pas modifiée) afin que les installations de paquetages puissent se faire sans douleur :
timedatectl set-ntp true
Vérifiez la date et l'heure :
timedatectl
J'ai prévu un disque virtuel, de capacité totale 25 Gio, réservé exclusivement à Arch Linux.
Si vous travaillez sur une machine réelle, prenez garde à ce que vous faites, notamment si le disque dur contient des données ou un système que vous désirez conserver. Ce tutoriel ne prend pas en compte ces cas-là. Tout ce qui est présent sur le disque sera détruit !
C'est une machine de test, donc je laisse la priorité au système qui pourra occuper jusqu'à 15 Gio. Je garde 9 Gio pour des données personnelles et 1 Gio pour la partition de swap (qui ne sera certainement jamais utilisée dans cette VM).
Sur une machine réelle destinée à une utilisation personnelle, je réserve 20 à 25 Gio pour le système, 1,5 fois la capacité de RAM (mémoire vive) pour le swap, et le reste pour les données personnelles.
J'utilise l'utilitaire fdisk
pour partitionner le disque dur. Comme c'est le seul disque de ma VM, il porte le doux nom de nom de /dev/sda (device sata disk a ; le second serait /dev/sdb, etc).
Comme on n'a besoin que de trois partitions sur ce disque dur, on n'utilisera que des partitions primaires (le maximum est 4) :
/dev/sda1 pour la racine du système /
/dev/sda2 pour le /home qui contiendra les données personnelles de l'utilisateur
/dev/sda3 pour la partition de swap.
C'est parti :
fdisk /dev/sda
Pour piloter fdisk
, on utilise des commandes que l'on appelle d'une touche.
Première partition : Appuyer successivement sur les touches : [n][entrée] [p][entrée] [entrée] [entrée] +15G[entrée].
Deuxième partition : [n][entrée] [p][entrée] [entrée] [entrée] +9G[entrée].
Troisième partition : n][entrée] [p][entrée] [entrée] [entrée] [entrée].
Rendre la partition 1 bootable : [a][entrée] 1[entrée]
Afficher la table des partitions : [p] [entrée]
Écrire la table des partitions sur le disque et quitter : [w] [entrée]
Pas très compliqué.
Les partitions /dev/sda1 et /dev/sda2 doivent être formatées pour pouvoir recevoir des données.
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda2
La partition de swap est préparée avec la commande :
mkswap /dev/sda3
Afin d'installer le système sur le disque dur, il faut monter les partitions /dev/sda1 et /dev/sda2 et prévoir de pouvoir utiliser le swap :
mount /dev/sda1 /mnt
mkdir /mnt/home && mount /dev/sda2 /mnt/home
swapon /dev/sda3
La commande magique :
pacstrap /mnt base base-devel
La durée de l'opération dépend de la qualité de votre connexion réseau.
Ceci doit être effectué avant le redémarrage de la machine !
Générer le futur fichier /etc/fstab
qui contient la table des partitions.
genfstab -U -p /mnt >> /mnt/etc/fstab
Vérifier son contenu :
cat /mnt/etc/fstab
Vérifier que les UUID (Universal Unique IDentifier) des partitions correspondent bien à ce qui est indiqué dans /mnt/etc/fstab:
blkid /dev/sda1
blkid /dev/sda2
blkid /dev/sda3
Recopier les fichiers de configuration des locales :
cp /etc/locale.* /mnt/etc/
Chrooter dans le nouveau système (chroot = changer de racine) :
arch-chroot /mnt
(Vous remarquerez que l'invite de commande a changé. Vous voici dans votre nouveau système. Inutile désormais de faire référence à /mnt.)
J'ai décidé d'appeler ma machine archtux
; je l'indique au système :
echo archtux > /etc/hostname
echo '127.0.0.1 localhost.localdomain localhost' >> /etc/hosts
echo '127.0.1.1 archtux.localdomain archtux' >> /etc/hosts
J'indique mon fuseau horaire par un lien symbolique (la commande timedatectl
ne fonctionne pas en chroot) :
rm /etc/localtime && ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
Appliquer et utiliser les locales :
locale-gen
source /etc/locale.conf
Indiquer que l'on veut un clavier français dans les consoles virtuelles, afin de ne plus à avoir à utiliser loadkeys
:
echo 'KEYMAP=fr' > /etc/vconsole.conf
Créer les RAMdisks initiaux avec :
mkinitcpio -p linux
Définir le mot de passe root :
passwd
Vous pourrez redéfinir ce mot de passe plus tard, quand vous serez assuré que tout fonctionne. Utilisez donc pour l'instant des caractères qui sont invariables d'un clavier qwerty à un clavier azerty.
Autoriser les membres du groupe wheel à utiliser sudo
:
nano /etc/sudoers
Décommenter la ligne qui contient %wheel ALL=(ALL) ALL
. Enregistrer et quitter.
Installation du bootloader GRUB (pour démarrer le système) :
pacman -S grub
grub-mkconfig -o /boot/grub/grub.cfg
grub-install --target=i386-pc --no-floppy --recheck /dev/sda
On sort du chroot, avec exit
ou ctrl-D
, et on démonte /mnt :
umount -R /mnt
On redémarre :
reboot
Au redémarrage, si vous avez laissé l'image iso d'installation, choisissez la deuxième option à l'écran.
Le réseau ne fonctionne plus ! La commande
ip address show
montre que la carte ethernet enp0s3
n'a pas d'IP.
On la réveille :
ip link set enp0s3 up
On demande au serveur DHCP de lui fournir tout le nécessaire :
dhcpcd enp0s3
On vérifie avec ip address show
que tout s'est bien passé.
Pour ne pas avoir à recommencer les prochaines fois :
systemctl enable dhcpcd@enp0s3.service
Et parce qu'ils sont bien pratiques, on installe les net-tools
(ifconfig, etc):
pacman -S net-tools
Xorg est le serveur graphique. On l'installe :
pacman -S xorg xorg-apps
Validez tous les choix.
On installe Cinnamon et tout ce qui est utile à son fonctionnement :
pacman -Suy cinnamon cinnamon-translations cjs muffin nemo
On installe LightDM et son greeter gtk :
pacman -S lightdm lightdm-gtk-greeter
Configuration :
nano /etc/lightdm/lightdm.conf
Dans la section [Seat:*], inscrire la ligne : greeter-session=lightdm-gtk-greeter
(Pour sortir : ctrl-X O [entrée])
Activer le service lightdm, pour qu'il soit démarré automatiquement :
systemctl enable lightdm.service
L'éditeur geany et ses plugins :
pacman -S geany geany-plugins
Le serveur et le client ssh :
pacman -S openssh
Les extensions de nemo (gestionnaire de fichiers) :
pacman -S nemo-image-converter nemo-preview nemo-share nemo-terminal
Pour avoir la liste complète des extensions :
pacman -Ss nemo
Firefox :
pacman -S firefox firefox-i18n-fr
Les fontes noto :
pacman -S noto-fonts noto-fonts-extra
Allez, hop ! Un petit
reboot
(C'est pas bien. Mais c'est pratique.)
Peu après le démarrage, la fenêtre de connexion graphique (LightDM) s'affiche. On se connecte en root, puisqu'il n'existe pas encore d'autre utilisateur.
Dans Cinnamon, on continue la configuration (Menu / Préférences / Paramètres système).
(Oui. Encore !)
Dans la section Matériel : Clavier, puis onglet Agencement. Ajouter (+). Perso je prends le premier clavier français de la liste, sans rien entre parenthèses, et je m'en porte très bien. Vous pouvez retirer le clavier anglais si vous n'en avez pas besoin. Ne toucher à rien d'autre ; fermer la fenêtre Clavier.
Dans la section Administration, vous pouvez ajoutez un utilisateur. Donnez-lui le profil d'administrateur. Pensez à lui attribuer un mot de passe.
Déconnectez-vous en tant que root, connectez-vous avec ce compte utilisateur… et recommencez pour le clavier. (Oui, je sais !)