21 janvier 2006

Unix: Combiner Pkgsrc et Debian GNU/Linux


1. Pourquoi


1.1. Debian GNU/Linux

Debian GNU/Linux est un système d'exploitation réputé, solide, stable, et facile à installer, sur lequel beaucoup d'autres distributions Linux sont basées. Cependant, Certains packages ne sont pas toujours disponibles, en particulier à cause d'une politique draconienne sur les licences des logiciels proposés.

Même si des contributions ou autres dépôts annexes existent, les packages ne sont pas toujours configurés comme on le souhaite; certaines fonctionnalités qui dépendent des options de compilation sont parfois désactivées.

1.2. Pkgsrc
Pkgsrc est le système de packages de NetBSD ; il permet leur compilation directement à partir des sources. Il comprend aussi un système de gestion de packages binaires, et s'appuie largement sur l'outil BSD Make.

Dans le même esprit que NetBSD qui supporte un maximum d'architectures, Pkgsrc supporte plusieurs systèmes d'exploitation, dont Debian (et par ailleurs SFU, une couche d'émulation POSIX pour Windows NT).

De plus, Pkgsrc est relativement propre, et installe tous ses logiciels dans un répertoire séparé du reste du système, /usr/pkg, ce qui permet d'éviter des mélanges peu souhaitables. Il permet dans une certaine mesure de personnaliser les options de compilation des paquets.

2. Comment


2.1. Installation de Debian

Ici nous considèrerons une installation minimale du système Debian Etch. Une fois l'installation effectuée, il faut s'assurer que les paquets de base nécessaires au fonctionnement de pkgsrc sont bien installés. En particulier,

libc6-dev, libncurses5-dev, groff, cvs

Il est fortement conseillé d'utiliser le serveur X fourni avec Debian, et par là même d'installer les paquets

x11-common, xserver-common, xbase-clients, libx11-dev, x-dev

ainsi que les polices et le serveur xfs, pour avoir un affichage correct

xfonts-100dpi, xfonts-100dpi-transcoded, xfonts-75dpi, xfonts-75dpi-transcoded, xfonts-base, xfonts-base-transcoded, xfonts-scalable, msttcorefonts, xfs

A ce jour, pkgsrc nécessite le compilateur gcc-2.95 ; il faut donc aussi installer ce paquet, et effectuer les opérations suivantes pour en faire le compilateur par défaut:

ln -sf /usr/bin/gcc-2.95 /usr/bin/gcc
ln -sf /usr/bin/cpp-2.95 /usr/bin/cpp
ln -sf /usr/bin/g++-2.95 /usr/bin/g++
ln -sf /usr/bin/gcov-2.95 /usr/bin/gcov

Il est aussi conseillé d'ajouter les répertoires de /usr/pkg dans le profil par défaut, par exemple en ajoutant

export PATH="${PATH}:/usr/pkg/bin:/usr/pkg/xorg/bin"
if [ `id -u` -eq 0 ]; then
export PATH="${PATH}:/usr/pkg/sbin"
fi
export MANPATH="${MANPATH}:/usr/pkg/man"


à /etc/profile.

2.2. Récupération et mise à jour de l'arborescence Pkgsrc

Deux types de branches sont disponibles pour Pkgsrc. La branche courante est mise à jour régulièrement et contient les paquets les plus récents. Des versions stabilisées sont publiées tous les trimestres.

Le plus souvent, on extrait le contenu de Pkgsrc dans /usr, de façon à obtenir un répertoire /usr/pkgsrc.
Pour mettre à jour Pkgsrc, il suffit alors de se placer dans /usr/pkgsrc pui d'y lancer la mise à jour via cvs, de la manière suivante:

cd /usr/pkgsrc && cvs update -dP

Il sera ultérieurement possible de connaître les paquets obsolètes installés en installant l'outil lintpkgsrc, puis en tapant

lintpkgsrc -i

2.3. Bootstrap et configuration
Avant l'utilisation de pkgsrc, il faut lancer le bootstrap comme ceci:

cd /usr/pkgsrc/bootstrap && ./bootstrap

Ceci permet d'installer le minimum d'outils nécessaires à son fonctionnement.

La configuration de pkgsrc se fait par l'intermédiaire de /usr/pkg/etc/mk.conf. On peut copier une version minimale de ce fichier générée par le bootstrap:

mkdir /usr/pkg/etc; cp /usr/pkgsrc/bootstrap/work/mk.conf.example /usr/pkg/etc/mk.conf

On peut l'éditer avec son éditeur préféré:

vi /usr/pkg/etc/mk.conf

afin de le personnaliser.

Si Vous avez choisi le serveur X de Debian, rajoutez la ligne suivante:

X11_TYPE=native

Il est possible de modifier les options de construction de paquets (pour l'utilisation de certaines librairies, comme par exemple gnome et pas kde) via la macro PKG_DEFAULT_OPTIONS. Les différentes options possibles sont listées dans /usr/pkgsrc/mk/defaults/options.description. Préfixer une option avec un '-' permet de la désactiver. Voici un exemple:

PKG_DEFAULT_OPTIONS=iptables dvdread -nas ogg xvid java alsa -arts -esound x11 gnome gtkspell gtk -ldap

On peut aussi indiquer quels types de licences sont acceptable pour les logiciel que l'on souhaite installer. Pour accepter tous types de licences, ajouter cette ligne:

_ACCEPTABLE=yes

Enfin, il est possible d'indiquer à partir de quel site on souhaite télécharger les sources. Ajouter ces lignes pour utiliser un site Français:

MASTER_SITE_OVERRIDE=ftp://ftp2.fr.netbsd.org/pub/NetBSD/packages/distfiles/
MASTER_SITE_BACKUP=ftp://ftp2.fr.netbsd.org/pub/NetBSD/packages/distfiles/
MASTER_SITE_LOCAL=ftp://ftp2.fr.netbsd.org/pub/NetBSD/packages/distfiles/LOCAL_P
ORTS/

2.4. Installation des packages

Pour fabriquer et installer un package, par exemple xfce4, placez-vous dans le répertoire correspondant dans pkgsrc puis lancez sa compilation comme ceci:

cd /usr/pkgsrc/meta-pkgs/xfce4 && bmake package

Il est à noter que 'bmake package' peut produire des erreurs lors du packaging. Il est possible d'installer un logiciel sans le packager avec 'bmake update'.

3. Conclusion

3.1. Avantanges
Pkgsrc peut être considéré comme un complément à Debian, si on souhaite utiliser des packages non disponibles dans la distribution de base, ou si on souhaite obtenir un fort niveau de personnalisation pour certains d'entre eux sans avoir à les recompiler à la main.

Dans la plupart des cas, des paquets de Pkgsrc-current sont mis à jour plus fréquemment que ceux de Debian.

3.2. Inconvénients

Souvent, Pkgsrc installe des librairies en double par rapport au système de base, ce qui équivaut à une perte de place et de mémoire. Ceci dit, cela lui permet de garantir une certaine cohérence par rapport à la variété de systèmes supportés.

De plus, Pkgsrc est principalement utilisé sous NetBSD, et donc moins testé sous Linux. Un certain nombre de paquets ne se compilent pas correctement, ce qui peut vite se révéler frustrant ; il est cependant possible de corriger l'arborescence de Pkgsrc à la main, si on connaît bien le fonctionnement des Makefiles.

4. Références

Libellés : , ,


Commentaires:
pas de trackback, par de chocolat.
Ça déchire grave ou encore, ça le fait.
Merci monsieur google de m'avoir fait découvrire monsieur Phiva.
 
salut forth, merci pour le commentaire positif, visiblement pas de trackbacks sur blogspot, mais des backlinks.
n'étant pas spécialiste du blog je ne connais pas encore la différence entre les deux :)
 
tres intiresno, merci
 
Enregistrer un commentaire



<< Home

This page is powered by Blogger. Isn't yours?