Cet article se penche en détail sur les manipulations à effectuer après l’installation de FreeBSD pour que notre système soit réellement utilisable. Nous allons préparer le gestionnaire de paquets, installer une poignée d’outils de base comme Git et Vim et le shell Bash, activer un super-utilisateur qui puisse utiliser Bash sans se tirer dans le pied, peaufiner la configuration de Bash pour l’administrateur et les utilisateurs, localiser le système en français et passer en UTF-8.
Préparer la gestion des paquets
Initialiser le gestionnaire de paquets pkg
, qui s’installe à la première utilisation.
# pkg update The package management tool is not yet installed on your system. Do you want to fetch and install it now? [y/N]: y Bootstrapping pkg... Verifying signature with trusted certificate... Installing pkg-1.9.4_1... Extracting pkg-1.9.4_1: 100% Updating FreeBSD repository catalogue... Fetching meta.txz: 100% 944 B 0.9kB/s 00:01 Fetching packagesite.txz: 100% 6 MiB 1.5MB/s 00:04 Processing entries: 100% FreeBSD repository update completed. 25857 packages processed.
Installer Git
Récupérer le paquet du logiciel de gestion de versions Git.
# pkg install git
Configurer Git.
# git config --global --edit [user] name = Nicolas Kovacs email = info@microlinux.fr
Récupérer mes scripts et mes fichiers de configuration.
# cd # git clone https://github.com/kikinovak/freebsd
Installer l’éditeur Vim
L’éditeur Vi (/usr/bin/vi
) fourni par le système de base est un peu trop minimaliste et obtus. On lui préférera Vim, bien plus confortable à l’utilisation.
# pkg install vim-lite
Notons que le paquet vim
est fourni avec toutes les options activées et dépend de X11.
Configuration de Vim
Le fichier de configuration global de Vim est /usr/local/etc/vim/vimrc
, mais la personnalisation s’effectuera individuellement pour chaque utilisateur par le biais de ~/.vimrc
. Voici un exemple.
colorscheme elflord set textwidth=79 set scrolloff=15 set autoindent
Activer le compte toor
FreeBSD fournit un compte super-utilisateur “alternatif” toor
, censé être utilisé avec un shell non-standard de façon à ne pas devoir changer le shell de root
. C’est un détail crucial, car l’installation de base ne fournit pas les shells comme Bash, qui sont installés par le biais du gestionnaire du paquets ou des logiciels portés. Ces logiciels s’installent tous dans l’arborescence /usr/local/bin
, qui réside sur un système de fichiers différent. Or, si le shell de root
se trouve dans /usr/local/bin
et que ce système de fichiers n’est pas monté, root
sera incapable de se connecter pour résoudre le problème.
# passwd toor
Notez que toor
détient l’UID 0 tout comme root
. On utilisera ce compte pour les tâches administratives au quotidien, et on gardera le compte root
pour le dépannage en mode mono-utilisateur.
Installer le shell Bash
Le shell Bash n’est pas fourni par défaut.
# pkg install bash
L’installation du paquet affiche un avertissement.
================================================================== bash requires fdescfs(5) mounted on /dev/fd If you have not done it yet, please do the following: mount -t fdescfs fdescfs /dev/fd To make it permanent, you need the following lines in /etc/fstab: fdescfs /dev/fd fdescfs rw,late 0 0 ==================================================================
Dans un premier temps, on va invoquer la commande manuellement.
# mount -t fdescfs fdescfs /dev/fd
Si tout se passe comme prévu, on peut ajouter la ligne correspondante à /etc/fstab
.
# Device Mountpoint FStype Options Dump Pass# /dev/ada0p2 / ufs rw 1 1 /dev/ada0p3 none swap sw 0 0 fdescfs /dev/fd fdescfs rw,late 0 0
Configuration de Bash pour l’utilisateur toor/root
Activer le shell Bash pour l’utilisateur.
# chsh -s bash toor chsh: user information updated
Créer un fichier /root/.bash_logout
pour effacer l’écran après la déconnexion.
clear
Pour personnaliser la console, il faut d’abord éditer un fichier /root/.bash_profile
comme ceci.
if [ -f ~/.bashrc ]; then source ~/.bashrc fi
Le fichier /root/.bashrc
contiendra la configuration à proprement parler. Voici un exemple.
# Alias alias ll='ls -al' alias ..='cd ..' alias ...='cd ../..' alias cp='cp -i' alias rm='rm -i' alias mv='mv -i' # PS1 WHITE='\[\033[1;37m\]' RED='\[\033[0;33m\]' NC='\[\033[0m\]' PS1="$RED[$WHITE\u$NC@$WHITE\h$NC:$WHITE\W$RED] #$NC " # Shell colors alias grep='grep --color' CLICOLOR='yes' LSCOLORS='ExGxFxdxCxDxDxhbadExEx' export CLICOLOR LSCOLORS # Vim EDITOR=vim VISUAL=$EDITOR export EDITOR VISUAL
Configuration de Bash pour les utilisateurs communs
Les utilisateurs “communs mortels” auront les mêmes trois fichiers ~/.bash_logout
, ~/.bash_profile
et ~/.bashrc
dans leurs répertoires utilisateur respectifs. Ce qui changera ici, c’est l’aspect de l’invite de commande définie par la variable PS1
.
# PS1 GREEN='\[\033[0;32m\]' WHITE='\[\033[1;37m\]' NC='\[\033[0;m\]' PS1="$GREEN[$WHITE\u$NC@$WHITE\h$NC:$WHITE\W$GREEN] \$ $NC"
Si l’utilisateur existe déjà, il faut activer l’utilisation du shell Bash comme nous l’avons fait un peu plus haut pour toor
.
# chsh -s bash kikinovak chsh: user information updated
Il est possible d’intégrer ces trois fichiers au profil par défaut des utilisateurs, qui se situe dans /usr/share/skel
sur un système FreeBSD. Il faudra les préfixer de la chaîne de caractères dot.*
comme ceci.
# ls -1 /usr/share/skel/* /usr/share/skel/dot.bash_logout /usr/share/skel/dot.bash_profile /usr/share/skel/dot.bashrc /usr/share/skel/dot.cshrc /usr/share/skel/dot.login ...
Au final, on obtient un shell fonctionnel et plaisant à voir.
Basculer vers la console VT
Dans la configuration par défaut, c’est la console sc(4)
ou syscons(4)
qui est utilisée.
# sysctl -d kern.vty kern.vty: Console vty driver # sysctl kern.vty kern.vty: sc
On préférera la console vt(4)
qui présente plusieurs avantages, notamment la capacité à représenter correctement des jeux de caractères en UTF-8, ainsi que l’intégration avec les pilotes vidéo en mode KMS (Kernel Mode Setting).
Éditer /boot/loader.conf
et ajouter la ligne suivante.
kern.vty=vt
La console VT sera activée au prochain redémarrage.
Passer en UTF-8
La commande locale -a
affiche toutes les locales disponibles sur le système.
# locale -a | grep UTF-8 | grep fr fr_BE.UTF-8 fr_CA.UTF-8 fr_CH.UTF-8 fr_FR.UTF-8
Ajouter le jeu de caractères et la locale par défaut au fichier /etc/login.conf
. Ce fichier concerne les shells de connexion. Éventuellement, jeter un oeil à login.conf(5)
pour plus de détails.
default:\ ... :pseudoterminals=unlimited:\ :priority=0:\ :ignoretime@:\ :umask=022:\ :charset=UTF-8:\ :lang=fr_FR.UTF-8:
Recréer la base de données associée.
# cap_mkdb /etc/login.conf
Éditer /etc/profile
et définir le jeu de caractères et la locale par défaut pour tous les shells qui ne sont pas des shells de connexion, comme par exemple GDM ou d’autres gestionnaires de connexion.
LANG=fr_FR.UTF-8; export LANG CHARSET=UTF-8; export CHARSET
Lorsqu’on redémarre, le système affiche un avertissement quant à la disposition du clavier.
WARNING: New keymap: In /etc/rc.conf replace 'keymap=swissfrench.iso.acc.kbd' by keymap=ch-fr.acc'.
Avec un clavier français, l’avertissement ressemblera à ceci.
WARNING: New keymap: In /etc/rc.conf replace 'keymap=fr.iso.acc.kbd' by keymap=fr.acc'.
Les dispositions de clavier de la console SC se trouvent dans /usr/share/syscons/keymaps
. Pour la console VT, il faudra choisir une des dispositions dans /usr/share/vt/keymaps
et la définir dans /etc/rc.conf
.
keymap="ch-fr.acc.kbd"