====== 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.