Porneia delights

— En ce qui concerne l'installation de Slackware 13.0 j'ai pris dans leur ensemble les sets A AP D L N X, ce qui prend environ 2.1Go d'espace disque (plus d'informations sur les sets dans le Slackware-HOWTO). L'installation s'est déroulée sans entraves. Ne connaissant pas encore assez bien slackware, j'ai installé tous ces sets en entier, cependant, il est possible de partir d'un système plus minimal et d'installer les packages à sa convenance. Vous pouvez le faire depuis le(s) cd(s)/dvd d'installation, mais cette méthode de sélection paquet par paquet peut être fastidieuse.

Une autre technique consiste à installer les sets A AP D L N dans leur totalité puis d'utiliser le script Make Me Slim écrit par Martti Kuparinen et que vous pouvez trouver ici. Son utilisation est très simple, après l'avoir récupéré :

$ chmod +x mms
$ ./mms -h
$ ./mms -y

À l'origine ce script sert donc a avoir le système le plus épuré possible afin d'utiliser pkgsrc. Attention, ce script va désinstaller une grande partie des packages sous slackware, il restera juste assez pour booter, mais rien de plus...

Slackware et pkgsrc

Note : j'ai utilisé pkgsrc sur une slackware épurée, mais sachez que vous pouvez très bien l'utiliser sur n'importe quel système GNU/Linux ; c'est l'intérêt de pkgsrc...

Je ne vais pas détailler ce qu'est pkgsrc ici, mais sachez simplement que cela sert simplement à avoir les programmes de l'userland NetBSD sous GNU/Linux (entre autres). Le tout par la compilation.

L'idée ici est d'avoir un système minimal basé sur slackware et d'utiliser exclusivement pkgsrc pour compiler les programmes tiers dont vous pourriez avoir besoin (depuis ncurses jusqu'à Xorg et des X applications). Oui, cette optique d'avoir un noyau Linux, une base minimale GNU et d'utiliser l'userland NetBSD va faire frémir d'horreur les BSDistes. Généralement, on fait l'inverse : on a un noyau BSD, son userland (plus pratique) et on rajoute les outils GNU...

Mais on peut très bien utilisé pkgsrc simplement pour avoir des applications non disponibles dans les dépôts officiels slackware. C'est à vous de voir. (Note: pkgsrc rêgle lui-même les dépendances).

Avant tout nous allons récupérer pkgsrc à cette adresse et le placer dans /usr/.

Pour avoir un système minimal slackware, je vous renvoie à la partie précédente et l'utilisation du script Make Me Slim. Attention: veuillez récupérer le tar.gz de pkgsrc avant de lancer mms. En effet mms supprime le package wget, vous ne pourrez donc plus le télécharger simplement. Ou alors éditez le script pour rajouter wget à la liste des packages à ne pas enlever.

Nous allons donc détarer pkgsrc puis lancer le bootstrap :

# cd /usr
# tar xzf pkgsrc-200XQX.tar.gz
# cd /usr/pkgsrc/bootstrap/
# ./bootstrap

Tout cela va prendre un peu de temps et de place (un peu moins de 700Mo). Une fois fini, il va vous falloir éditer un peu votre shell en modifiant votre PATH : PATH=$PATH:/usr/pkg/sbin:/usr/pkg/bin. Il faut aussi penser aux man en rajoutant MANPATH=$MANPATH:/usr/pkg/man (tout cela dans votre ~/.profile ou votre ~/.bashrc ou autre...). Occupons nous aussi du PATH des librairies :

# echo /usr/pkg/lib >> /etc/ld.so.conf
# cat /etc/ld.so.conf
/usr/local/lib
/usr/X11R6/lib
/usr/i486-slackware-linux/lib
/usr/pkg/lib

Nous allons maintenant customiser un peu mk.conf. Avant tout on le copie là où il faut :

# cp /usr/pkgsrc/bootstrap/work/mk.conf /usr/pkg/etc/mk.conf

Par défaut, la configuration n'est pas à modifier sauf selon votre convéniance. Cependant, vous pouvez d'ores et déjà rajouté ces deux lignes dans ce fichier avant .endif:

ACCEPTABLE_LICENSES+=vim-license
ALLOW_VULNERABLE_PACKAGES=vim

Enfin on va installer l'audit et digest (bmake est le make de NetBSD pour information) (c'est une bonne idée de mettre download-vulnerability-list dans un crontab histoire de garder cette liste à jour) :

# /usr/pkg/sbin/download-vulnerability-list
# cd /usr/pkgsrc/pkgtools/digest
# bmake

Voilà nous avons donc maintenant un pkgsrc totalement fonctionnel. Vous pouvez déjà compiler openssh (si vous n'avez pas d'installation minimale, pensez à removepkg openssh avant) :

# cd /usr/pkgsrc/security/openssh
# bmake install
# bmake clean clean-depends

Il exist un programme assez intéressant qui va vous permettre de maintenir à jour les programmes installés par pkgsrc et qui se nomme lintpkgsrc :

# cd /usr/pkgsrc/pkgtools/lintpkgsrc
# bmake

edit : si vous comptez utiliser pkgsrc avec un installation "normale" de slackware, vous devriez penser à désactiver la binaire ftp. En effet, pkgsrc utilise sa propre version de ftp et cela pourrait provoquer un disfonctionnement dans la récupération des sources par pkgsrc. Pour cela un simple # chmod 0 /bin/ftp suffit.

Slackware et slackpkg, sbopkg, slackyd

Nous allons maintenant passé en revenu quelques façons de gérer les packages sous slackware. Notons (comme vous le savez peut-être) que slackware ne gère pas les dépendances, vous devez le faire vous-même à la main.

slackpkg :
slackpkg est une méthode pratique pour gérer les packages officiels. Sa configuration se fait au travers du fichier /etc/slackpkg/slackpkg.conf et de /etc/slackpkg/mirrors notamment. Il est normalement livré dans les dépôts officiels de slackware ; si vous avez fait une installation normale, vous devriez l'avoir sur votre machine.

sbopkg :
sbopkg est un outil en ligne de commande qui permet d'avoir accès au dépôt de SlackBuilds.org qui contient une liste non négligeable de packages. sbopkg s'occupera donc pour vous de récupérer les sources, de compiler et d'installer les packages résultant sur votre système.

Certains de ces programmes nécessitent d'avoir des librairies installées pour la compilation. Vous pouvez obtenir toutes les informations nécessaires via la commande # sbopkg -s [packages] pour les dépendances directes du paquet (par exemple, le README de feh nous indique que giblib et imlib2 sont requis et disponibles sur slackbuild.org). Il faudra donc les compiler avant bien sûr. En pratique et si les dépendances se trouvent sur SlackBuild, avec sbopkg, cela se traduit simplement de cette façon :

$ sudo sbopkg -i "giblib imlib2 feh"

slackyd :
slackyd est un outil qui nous vient de la communauté slackware italienne Slacky.eu qui a son propre dépôt de packages ; à nouveau un outil en ligne de commande, qui vous permettra d'installer les packages directement ou de les compiler. slackyd lors de l'installation d'un package vous indique quelles sont les dépendances directes requises et vous propose de les installer automatiquement (soit depuis le dépôt officiel, soit depuis le dépôt slacky.eu, selon le package). Notez que c'est à titre indicatif, pour respecter la philosophie slackware, le script ne vous impose pas du tout d'installer ces dépendances, et fort heureusement.

Vous pouvez récupérer le package de slackyd directement sur le dépôt officiel et l'installer (attention prenez la version qui correspond à votre version de slackware). Pensez à regarder la configuration se trouvant dans /etc/slackyd/slackyd.conf. Je vous conseille d'utiliser un des miroirs pour récupérer les packages, étant donné que le dépôt officiel est plutôt lent... (cf. le fichier de configuration).

Les packages installés via sbopkg et slackyd sont enregistrés sur votre système. Pour les désinstaller, il suffit simplement d'utiliser les outils slackware appropriés, dans notre cas removepkg.

Il existe d'autres façons de gérer les packages sous slackware, et notamment swiret et slapt-get. Je n'ai testé ni l'un ni l'autre. swiret ne paraît plus vraiment utilisé selon ce qu'on m'a dit. Quant à slapt-get sa gestion des dépendances est trop debian-like et ne respecte pas assez la philosophie de slackware pour que je m'y sois penché...

Conclusion et références

On peut tout à fait utiliser en même temps ces quatres méthodes pour installer les paquets / compiler les sources des programmes dont nous avons besoin. sbopkg et slackyd ont plusieurs packages en commun mais chacun a des outils en plus dans lesquels chacun pourra trouver son bonheur. L'intérêt de pkgsrc est, bien sûr, de bénéficier de l'userland de NetBSD et de ces audits. Personnellement, j'aurai tendance à n'utiliser que pkgsrc avec une base minimale mais il faut pour cela une partition assez conséquente et du temps (car oui on compile tout de A à Z et ça prend de la place ; un peu comme une gentoo quoi). Mais avec cette dernière méthode on s'éloigne de la philosophie slackware, mais on bénéficie malgré tout de son installation de base très robuste et standard.

Dans les faits, n'ayant pas une place folle pour mon root, j'ai laissé de côté pkgsrc pour le moment pour me concentrer sur sbopkg et slackyd.

http://www.slacky.eu/wikislack/index.php?title=Pkgsrc_su_slackware
http://kuparinen.org/martti/comp/slackware/slackware.html
http://pbraun.nethence.com/doc/sysutils_linux/slackware.html
http://pbraun.nethence.com/doc/sysutils_linux/slackware-pkgsrc.html


Vous pouvez envoyer par mail vos commentaires et vos remarques à illovae[at]bk[dot]ru.

Slackware : installation et gestion de programmes (1466 mots) de illovæ est diffusé sous la licence WTFPLv2 et Beer-ware (Révision 42).

Vulnerant omnes, ultima necat. Sic transit hominis regnum.
Copyleft © 2009 — illovæ