NetBSD, le bilan, deux mois après

(Nhat Minh Lê (rz0) @ 2009-07-01 15:54:14)

Cela fait deux mois, tout juste, que je suis passé à NetBSD. Il est temps de faire un petit bilan.

Pour rappel, j’avais migré depuis Gentoo, que j’ai utilisée exclusivement pendant plus de quatre ans (et qui demeure sur mon poste fixe, qui héberge notamment ce site). Mon expérience est donc intimement liée à la comparaison entre Gentoo et NetBSD.

Les versions données sont à titre indicatif et correspondent à l’état des choses lorsque j’ai quitté Gentoo.

Matériel

Question compatibilité matérielle, NetBSD ne s’en sort pas aussi bien que Linux, mais le système est tout à fait utilisable. Quelques pièces importantes :

  Gentoo NetBSD
Intel GM965 xf86-video-intel (2.6.x) Mauvais xf86-video-intel (2.4.x) OK, pas de DRI
Intel HDA / Sigmatel STAC9228X snd-hda-intel OK azalia + patchα OK
Intel Wifi 3945ABG iwlwifi OK wpi OK
Marvell Yukon FE+ E8040 sky2 OK msk non fonctionnel
Touchpad Synaptics xf86-input-synaptics OK xf86-input-mouse + wsmouse Médiocre
Lecteur de cartes sdhci OK Non fonctionnel

α : La sélection du codec était incorrecte, je n’ai fait que changer une ligne de code du pilote ; les messages de debug spécifiques au pilote, à activer dans le noyau ont beaucoup aidé.

Applications

Niveau applicatif, mis à part Valgrind dont les auteurs préfèrent se soucier d’OS X plutôt que de BSD pour des questions de part de marché, errr, je devrais dire de nombre d’utilisateurs potentiels, j’ai retrouvé mes logiciels favoris :

  Gentoo Portage NetBSD pkgsrc
Emacs emacs-cvs (23.x) emacs-{snapshot,current} (23.x)
Wanderlust wanderlust (2.14.x) + patchβ wl (2.14.x) + patchβ
Firefox firefox (3.0.x) firefox (3.0.x)
Ratpoison ratpoison ratpoison
mplayer mplayer + codecs mplayer + codecs
xpdf xpdf (+ lesstif) Médiocre xpdf (+ lesstif) Médiocre
gqview gqview gqview + patchγ
Git git scmgit

β : Il s’agit en fait d’un patch pour FLIM qui désactive les encodages internes incompatibles avec Emacs-23 et utilise mimencode(1) à la place.

γ : Ce patch n’est pas nécessaire mais ajoute une fonctionnalité qui m’est agréable (le défilement avec la barre d’espace qui continue sur l’image suivante si l’on est en bas). Il n’était pas présent sur ma Gentoo pour la simple raison que je ne l’avais pas encore écrit.

Gestion des logiciels

Gentoo a Portage et NetBSD a pkgsrc. Clairement, du point de vue de l’utilisateur, Portage est plus agréable. Et pkgsrc nécessite un certain nombre d’outils, au choix (pkg_rolling-replace et pkg_chk, pour ma part), pour être tout à fait efficace. Les deux gestionnaires ont sûrement de grandes qualités qui dépassent mon utilisation ; je me contenterai ici de comparer quelques fonctionnalités utiles au quotidien.

Il est à noter que pkgsrc laisse le choix de la méthode, la plupart du temps, aussi, j’expose ici mes solutions ; celles-ci n’engagent que moi.

  Gentoo Portage NetBSD pkgsrc
Mise à jour (arbre) emerge --sync cvs up -dP
Mise à jour (sécurité) emerge --sync pkg_admin fetch-pkg-vulnerabilities
Mise à jour (logiciels) emerge -uDN pkg_rolling-replace -u
Installation emerge make install
Suppression emerge -C make deinstall
Examen des mises à jour emerge -pvuDN pkg_chk -uq
Examen des options emerge -pv make show-options
Examen des dépendances emerge -pv make sid ou make show-needs-updateδ
Recherche eix pkgsrc.se ou grep, find, etc.
Rapports de sécurité glsa-check pkg_admin audit
Modif. locales (arbre) overlay Git
Modif. locales (logiciels) overlay + patches LOCALPATCHES
Bidouille bash, python BSD make

δ : Visiblement, la cible show-needs-update est dépréciée mais je ne lui connais aucun remplaçant adéquat.

Configuration

Le dernier point que j’aborderai est la configuration. Si déjà sous Gentoo, on peut dire que j’écrivais la plupart de mes configurations manuellement, avec Emacs ou vi, mon passage à NetBSD a poussé le concept un peu plus loin. En effet, contrairement à portage, pkgsrc n’effectue guère de maintenance des fichiers du système tels que les pages info ou les polices installées. Tout cela doit être géré par l’administrateur. De même, comme je l’ai expliqué dans un billet précédent, NetBSD en lui-même n’offre aucune option de configuration UTF-8 globale ; celle-ci se fait séparément pour chaque composant qui en a besoin.

Au final, seuls quelques scripts (dont les scripts de démarrage) sont fournis par le système, et les quelques configurations propres à NetBSD sont transparentes (il s’agit, la plupart du temps, de décider quels arguments passer à différentes commandes d’administration).

Personnellement, j’apprécie cette simplicité, et ce « retour aux sources » m’a permis d’en apprendre un peu plus sur certains points d’administration que j’avais eu tendance à oublier, dans ma paresse, me laissant aller à confier certaines choses à Gentoo, conforté par le fait que cela fonctionnait sans interventions de ma part.