D Weblog System, 28 octobre 2009, illovæ
— 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, avecsbopkg
, 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