Prise en main rapide d'une « post-installation ». De nombeux exemples proviennent de la page de manuel afterboot(8).
À la fin de ce fichier, il faut rajouter ces variables :
. . . # Add local overrides below # # One-time actions to perform or programs to run, on boot-up clear_tmp=YES virecover=NO # Basic network configuration hostname="nom.domaine.tld" # Networking startup dhclient=YES # Commonly use daemons cron=NO postfix=NO sshd=NO # X Window System daemons xdm=YES xdm_flags="" # Hardware daemons wscons=YES
L'extrait ci-dessus fonctionne pour un vieux ordinateur, c'est pourquoi j'ai choisis de désactiver certains processus.
Si vous n'avez pas encore configuré le fichier xf86config, commenté les deux lignes relatives à X.
Pour plus de détails man 5 rc.conf.
Cette étape est optionnelle, mais je n'aime pas avoir des « beeps » en console, donc je rajoute ces lignes.
# Turn off beep console setvar bell.pitch=0 #setvar bell.volume=0
Si la première ligne ne fonctionne pas, essayez la seconde.
Ensuite, il faut relancer le daemon wscons.
/etc/rc.d/wscons restart
La commande ifconfig -a donne des informations sur la carte. Ci-dessous un exemple
ne2: flags=8822<BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST> mtu 1500 address: 00:20:18:2a:4a:53 media: Ethernet autoselect (10base2) lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
Ma carte s'appellle donc ne2 (on aurait pu la trouver grace à la commande dmseg).
Pour établir une connexion par DHCP :
dhclient -1 ne2 ifconfig -a ne2: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500 address: 00:20:18:2a:4a:53 media: Ethernet autoselect (10baseT) inet 192.168.1.72 netmask 0xffffff00 broadcast 192.168.1.255 inet6 fe80::220:18ff:fe2a:4a53%ne2 prefixlen 64 scopeid 0x1 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
L'offre est assez conséquente, cependant pour le début les plus importants sont :
Pour les installer, il faut utiliser la commande pkg_add.
<note importante>Dans la famille des BSD, les outils de base pour ajouter/supprimer/avoir des informations sur des paquets pré-compilés portent les mêmes noms :
pkg_add → ajouter un binairepkg_delete → suppressionpkg_info → obtenir des informations sur les paquets installésCependant certaines options diffèrent.</note>
Le plus simple consiste à définir la variable PKG_PATH correspondant à un miroir du serveur NetBSD 1). Il faut choisir un serveur FTP le plus proche.
Ensuite, il suffit de « l'exporter dans l'environnement ». Un exemple pour un ordinateur de type i386.
Si le compte root utilise le C shell
setenv PKG_PATH ftp://ftp3.de.netbsd.org/pub/NetBSD/pkgsrc/packages/NetBSD-4.0/i386/All
Si le compte root utilise le Korn shell
export PKG_PATH="ftp://ftp3.de.netbsd.org/pub/NetBSD/pkgsrc/packages/NetBSD-4.0/i386/All"
Désormais l'installation d'un paquet précompilé se fera de cette manière :
pkg_add -v perl
Pour éviter d'exporter cette variable à chaque fois, il est préférable de la copier dans le fichier .profile de l'utilisateur root.
Voici ce que j'utilise (en root j'utilise le Korn shell).
# PS1
PS1='[`whoami`] $PWD# '; export PS1
# miroir FTP
if [ ! -d /usr/pkgsrc ]; then
_ARCH=`uname -p`
_OS=`uname -s`
_RELEASE=`uname -r`
export PKG_PATH="ftp://ftp3.de.netbsd.org/pub/pkgsrc/packages/$_OS-$_RELEASE/$_ARCH/All"
fi
Le « test » sert activer cette variable si, l'arborescence pkgsrc est absente, car elle entre en conflit lors de l'installation d'un logiciel à partir des sources.
Il faut l'avoir sélectionner lors de l'installation, sinon on a 2 alternatives.
pkgrsc mais nécessite une compilation (très long, mais on aura à sa disposition le Xorg modulaire).Pour générer automatiquement le fichier de configuration de XFree86 (c'est sensiblement la même chose pour Xorg).
X -configure
On obtient un fichier XF86Config.new, il faut le modifier notamment pour disposer d'un clavier français, mettre les bonnes résolutions de l'écran, etc.
. . . Section "InputDevice" Identifier "Keyboard0" Driver "keyboard" Option "XkbRules" "xfree86" Option "XkbModel" "pc105" Option "XkbLayout" "fr" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "wsmouse" Option "Device" "/dev/wsmouse" Option "ZAxisMapping" "4 5" EndSection . . .
Ensuite pour tester la configuration :
xf86cfg -xf86config /root/XF86Config.new
Si tout est correct, on peut copier le fichier dans le répertoire /etc/X11.
cp XF86Config.new /etc/X11/XF86Config
Précédemment, on a vérifié, que les périphériques (écran, carte graphique, clavier, souris) sont reconnus et fonctionnels, on peut désormais choisir un gestionnaire de fenêtres. Pour l'utilisateur root twm 2) suffira.
cp /etc/X11/xinit/xinitrc ~/.xinitrc ln -s .xinitrc .xsession
Puis, on lance le serveur avec startx, Ctrl+Alt+BackSpace pour l'arrêter.
Pour empêcher l'écoute du port 6000 par X11, dans le fichier /usr/X11R6/bin/startx la ligne commençant par serverargs, je rajoute ceci.
serverargs="-nolisten tcp"
Dans le fichier /etc/X11/xdm/Xsetup_0 je commente la ligne
xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
Pour l'instant, on a fait l'essentiel du travail sous le compte root, ce n'est pas recommendé. La commande s'appelle useradd.
Avant de l'exécuter, je peuple le répertoire /etc/skel de certains fichiers de configuration, qui vont faciliter la prise en main pour nos utilisateurs.
Voici le mien par exemple
ls -al /etc/skel/ total 28 drwxr-xr-x 2 root wheel 512 May 24 18:39 ./ drwxr-xr-x 23 root wheel 2048 May 25 08:19 ../ -r--r--r-- 1 root wheel 381 May 24 18:38 .Xresources -r--r--r-- 1 root wheel 883 May 24 18:33 .bashrc -r--r--r-- 1 root wheel 762 Apr 24 2003 .cshrc -r--r--r-- 1 root wheel 488 Apr 24 2003 .login -r--r--r-- 1 root wheel 265 Apr 24 2003 .logout -r--r--r-- 1 root wheel 513 May 24 16:28 .profile -r--r--r-- 1 root wheel 136 Sep 14 2006 .shrc -r--r--r-- 1 root wheel 2668 May 24 18:34 .twmrc -r--r--r-- 1 root wheel 644 May 24 18:33 .xinitrc
J'ai l'habitude d'utiliser le shell Bash, voici ce que l'on trouve dans .bashrc
# # .bashrc # # file permissions: rwxr-xr-x # umask 022 # Enable the builtin emacs(1) command line editor in bash(1), # e.g. C-a -> beginning-of-line. set -o emacs if [ -x /usr/pkg/bin/emacs ]; then alias emacs="/usr/pkg/bin/emacs -nw" export EDITOR=emacs; export VISUAL=$EDITOR else export EDITOR=vi; export VISUAL=$EDITOR fi export PAGER=less # suppression .xsession-errors si vide if [ -e ~/.xsession-errors ] && [ ! -s ~/.xsession-errors ]; then rm -f ~/.xsession-errors fi # locale export LANG=ISO8859-15 export LC_ALL=fr_FR.ISO8859-15 # PS1 export PS1="\h:\w\$ " # alias alias su="/usr/bin/su -l"; alias ls="/bin/ls -F"; if [ -x /usr/pkg/bin/firefox ]; then alias firefox="/usr/bin/env MOS_DISABLE_PANGO=1 /usr/pkg/bin/firefox" fi
Le .profile
PATH=$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/pkg/bin
PATH=${PATH}:/usr/pkg/sbin:/usr/games:/usr/local/bin:/usr/local/sbin
export PATH
#export EDITOR=vi
export EXINIT='set autoindent'
export PAGER=less
export ENV=$HOME/.bashrc
L'ajout d'un nouvel utilisateur se fait de cette façon :
useradd -G wheel,operator -g users -m -s /usr/pkg/bin/bash olivier
-g groupe principal-G groupe secondaire, pour pouvoir se connecter en root il faut appartenir au groupe wheelPour donner un mot de passe :
passwd olivier
Lorsque que cet utilisateur se connectera, il pourra créer un lien symbolique, de cette façon, afin d'avoir les mêmes options pour le shell de « login ».
ln -s .bashrc .bash_profile
Pour éteindre convenable un ordinateur si on utilise autre chose que KDE et Gnome, il faut utiliser la commande shutdown. Seul l'utilisateur root possède les droits suffisants. On va autoriser tous les utilisateurs à pouvoir utiliser cette commande, on lance visudo, et on rajoute ces lignes :
. . . # User alias specification User_Alias USERS = utilisateur . . . USERS NomMachine = NOPASSWD: /sbin/shutdown
Il faut bien sur remplacer NomMachine et utilisateur par vos valeurs.
On peut maintenant décommenter les 2 dernières lignes du fichier /etc/rc.conf correspondant au serveur X, redémarrer l'ordinateur.