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 wheel
Pour 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.