Salut Papilippe
Je comprends bien tes questions (enfin j'espère) car je me suis souvent posées les mêmes. Comment construire de mes mains une maison brique à brique, sans appeler de maçon, sans commencer par le premier étage en me disant qu'importe le rez-de-chaussée se construira de lui-même, etc, mais en partant tout de même du principe que j'achète les briques et non que je dois les fabriquer.
Je reviens donc ici à la première question, celle des dépendances. Comment les connaître à l'avance pour procéder à la main, paquet par paquet (proche de l'esprit LFS GNU/Linux). Voici donc quelques pistes de bricolage.
A mon avis une bonne partie des réponses se trouve dans le fichier /usr/ports/INDEX-6
Si tu as toujours procédé manuellement, tu ne possèdes pas ce fichier mais peux le construire (c'est longuet):
Code:# cd /usr/ports
# make index
Apparemment les entrées de ce fichier sont constituées de 12 champs séparés par des |. Si tu t'intéresses par exemple à apache-2.2.8 tu peux alors entrer:
Code:% cut -d"|" -f 1-12 INDEX-6 | grep ^apache-2.2.8 | tr -s "|" "\n"
apache-2.2.8
/usr/ports/www/apache22
/usr/local
Version 2.2 of Apache web server with prefork MPM.
/usr/ports/www/apache22/pkg-descr
clement@FreeBSD.org
www ipv6
autoconf-2.61_2 autoconf-wrapper-20071109 expat-2.0.0_1 libiconv-1.11_1 libtool-1.5.24 m4-1.4.9,1 perl-5.8.8_1
expat-2.0.0_1 libiconv-1.11_1 perl-5.8.8_1
http://httpd.apache.org/
perl-5.8.8_1
perl-5.8.8_1
Tu remarques que la réponse est ainsi proche d'un "make search name=apache-2.2.8" et que les B-deps et R-deps apparaissent dans les champs 8 et 9. Donc pour les isoler:
Code:% cut -d"|" -f 1,8,9 INDEX-6 | grep ^apache-2.2.8 | tr -s "|" "\n"
apache-2.2.8
autoconf-2.61_2 autoconf-wrapper-20071109 expat-2.0.0_1 libiconv-1.11_1 libtool-1.5.24 m4-1.4.9,1 perl-5.8.8_1
expat-2.0.0_1 libiconv-1.11_1 perl-5.8.8_1
D'autre part si tu veux voir tous les paquets où apache-2.2.8 apparaît en dépendance cela donne (je ne mets pas la sortie un peu longue):
Code:% cut -d"|" -f 1,8,9 INDEX-6 | grep apache-2.2.8 | tr -s "|" "\n"
Reste donc maintenant à tenter de satisfaire les dépendances. Ici par exemple (enfin si je ne me suis pas trompé car je n'ai pas testé bien sûr) on pourrait essayer de commencer par libtool-1.5.24 qui est requis par libiconv-1.11_1 qui sont requis par gettext-0.16.1_3 requis lui-même par gmake-3.81_2 requis tous deux (entre autres) par autoconf-2.61_2.
On comprend que cela devient vite un travail de titan sans compter que l'on peut faire des erreurs... et même que l'on en fait toujours. Voilà, ceci dit, c'est toujours instructif et amusant d'essayer de faire les choses ainsi au moins en partie (d'autres diront que c'est idiot de ne pas utiliser les outils existant !). j'espère en tout cas que ce long baratin t'aidera un peu dans tes essais.