====== NetBSD facile ! ======
Prise en main rapide d'une « //post-installation// ». De nombeux exemples proviennent de la page de manuel ''afterboot(8)''.
===== 1. Modification du fichier ''/etc/rc.conf'' =====
À 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''.
===== 2. Modification du fichier ''/etc/wscons.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
===== 3. Le réseau =====
La commande ''ifconfig -a'' donne des informations sur la carte. Ci-dessous un exemple
ne2: flags=8822 mtu 1500
address: 00:20:18:2a:4a:53
media: Ethernet autoselect (10base2)
lo0: flags=8049 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 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 mtu 33192
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
===== 4. Ajouter des paquets =====
L'offre est assez conséquente, cependant pour le début les plus importants sont :
* perl
* wget
* sudo
Pour les installer, il faut utiliser la commande ''pkg_add''.
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 binaire
* ''pkg_delete'' → suppression
* ''pkg_info'' → obtenir des informations sur les paquets installés
Cependant certaines options diffèrent.
Le plus simple consiste à définir la variable ''PKG_PATH'' correspondant à un miroir du serveur NetBSD ((La liste [[http://www.netbsd.org/mirrors/#ftp|ici]])). 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.
===== 5. Configuration du serveur X =====
Il faut l'avoir sélectionner lors de l'installation, sinon on a 2 alternatives.
* en passant par les //sets// (**XFree86**)
* par l'arborescence ''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
==== Gestionnaire de fenêtres ====
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'' ((Plus de choix [[http://pkgsrc.se/wm|ici]])) 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
===== 6. Ajouter un nouvel utilisateur =====
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
===== 7. Donner des droits supplémentaires =====
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.
===== Conclusion =====
On peut maintenant décommenter les 2 dernières lignes du fichier ''/etc/rc.conf'' correspondant au serveur X, redémarrer l'ordinateur.