|
|
|
|
||||||
| fr.comp.os.bsd Systèmes BSD et dérivés (NetBSD, FreeBSD, ...). |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour,
J'ai lu la doc de M. Talon sur les ports freebsd : très instructif. Je le remercie donc au passage. Ce qui me facilite la transition : le parallèle entre Debian et FreeBSD y est clairement exposé. Pourquoi diable alors faut-il télécharger une tonne de libs rpm (fedora, suse et rh) pour certaines applis plutôt que des libs debian (ce qui me simplifierait grandement la tâche ; d'ailleurs, j'ai tenté d'installer acroread7, ça m'a foutu un bins pas possible, même dans X, j'ai donc tout désinstallé) Pourquoi donc, hein ? -- Fred. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
fred <fredantispam@free.fr> a écrit :
> Bonjour, > > J'ai lu la doc de M. Talon sur les ports freebsd : très instructif. > Je le remercie donc au passage. > > Ce qui me facilite la transition : le parallèle entre Debian et FreeBSD > y est clairement exposé. Ceci dit, j'ai beau avoir lu la doc, lu la partie concernée du handbook, je n'arrive toujours pas à trouver l'équivalent d'un apt-cache search : comment rechercher le nom d'un pkg dans la liste de _tous_ les paquets existants, et pas seulement d'après la liste de ceux installés ? Question subsidiaire tant que j'y suis, y a t'il un équivalent de apt-file -F, à savoir une commande qui permette de rechercher un fichier quelconque dans _tous_ les fichiers présents dans _tous_ les paquets ? Merci d'avance. -- Fred. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Le 28 novembre 2006 à 23:46, fred a écrit :
> Ceci dit, j'ai beau avoir lu la doc, lu la partie concernée du handbook, > je n'arrive toujours pas à trouver l'équivalent d'un apt-cache search : > comment rechercher le nom d'un pkg dans la liste de _tous_ les paquets > existants, et pas seulement d'après la liste de ceux installés ? cd /usr/ports make search key='blah' (penser au | less) make search name='blah' Renseigné dans man 7 ports. > Question subsidiaire tant que j'y suis, y a t'il un équivalent de > apt-file -F, à savoir une commande qui permette de rechercher un fichier > quelconque dans _tous_ les fichiers présents dans _tous_ les paquets ? Si je comprends bien la question, pkg_which (qui vient avec portupgrade, en fait). Fred -- Bien recu Tous les messages Ils disent qu'ils ont compris Qu'il n'y a plus le choix Que l'esprit qui souffle Guidera leurs pas Qu'arrivent les derniers temps où Nous pourrons parler Alors soyons désinvoltes N'ayons l'air de rien (Noir Désir, Tostaky) |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Le 28 novembre 2006 à 13:36, fred a écrit :
> Pourquoi diable alors faut-il télécharger une tonne de libs rpm (fedora, > suse et rh) pour certaines applis plutôt que des libs debian (ce qui me > simplifierait grandement la tâche ; d'ailleurs, j'ai tenté d'installer > acroread7, ça m'a foutu un bins pas possible, même dans X, j'ai donc > tout désinstallé) > > Pourquoi donc, hein ? Parce que tu n'as pas encore proposé le merveilleux patch qui permettrait de faire cela, voyons ! Fred -- De l'os après la chair De l'acide au rabais Jusqu'à en faire pourrir Les derniers noyaux frais Qui recréera la base Qui reconstruira l'pont Qui saura déchirer Le ciment sous les plaines Hosanna, Hosanna Et en route pour la joie (Noir Désir, En route pour la joie) |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
"F. Senault" <fred@lacave.net> a écrit :
> Le 28 novembre 2006 à 23:46, fred a écrit : > >> Ceci dit, j'ai beau avoir lu la doc, lu la partie concernée du handbook, >> je n'arrive toujours pas à trouver l'équivalent d'un apt-cache search : >> comment rechercher le nom d'un pkg dans la liste de _tous_ les paquets >> existants, et pas seulement d'après la liste de ceux installés ? > > cd /usr/ports > make search key='blah' (penser au | less) > make search name='blah' > > Renseigné dans man 7 ports. Ok, je cherchais quelque chose en pkg_* >> Question subsidiaire tant que j'y suis, y a t'il un équivalent de >> apt-file -F, à savoir une commande qui permette de rechercher un fichier >> quelconque dans _tous_ les fichiers présents dans _tous_ les paquets ? > > Si je comprends bien la question, pkg_which (qui vient avec portupgrade, > en fait). Non. pkg_which/pkgdb ne concerne que les pkgs installés. -- Fred. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
"F. Senault" <fred@lacave.net> a écrit :
> Parce que tu n'as pas encore proposé le merveilleux patch qui > permettrait de faire cela, voyons ! ? -- Fred. |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
fred <fredantispam@free.fr> a écrit :
> "F. Senault" <fred@lacave.net> a écrit : > >> Le 28 novembre 2006 à 23:46, fred a écrit : >> >>> Ceci dit, j'ai beau avoir lu la doc, lu la partie concernée du handbook, >>> je n'arrive toujours pas à trouver l'équivalent d'un apt-cache search : >>> comment rechercher le nom d'un pkg dans la liste de _tous_ les paquets >>> existants, et pas seulement d'après la liste de ceux installés ? >> >> cd /usr/ports >> make search key='blah' (penser au | less) >> make search name='blah' Merci. -- Fred. |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
fred <fredantispam@free.fr> wrote:
> fred <fredantispam@free.fr> a écrit : > > > Bonjour, > > > > J'ai lu la doc de M. Talon sur les ports freebsd : très instructif. > > Je le remercie donc au passage. > > > > Ce qui me facilite la transition : le parallèle entre Debian et FreeBSD > > y est clairement exposé. > > Ceci dit, j'ai beau avoir lu la doc, lu la partie concernée du handbook, > je n'arrive toujours pas à trouver l'équivalent d'un apt-cache search : > comment rechercher le nom d'un pkg dans la liste de _tous_ les paquets > existants, et pas seulement d'après la liste de ceux installés ? grep -e'^toto' /usr/ports/INDEX-6 par exemple. Ou awk /^toto/ '{print $1}' /usr/ports/INDEX-6 qui est plus propre. Ou sans le ^ si tu veux chercher toto dans les dépendances. > > Question subsidiaire tant que j'y suis, y a t'il un équivalent de > apt-file -F, à savoir une commande qui permette de rechercher un fichier > quelconque dans _tous_ les fichiers présents dans _tous_ les paquets ? > La liste des fichiers installés par un port est dans la packing-list. Donc là encore un grep bien senti doit te donner ton résultat. En fait il n'y a des outils bien déterminés que pour les paquets installés. Dans ce cas les pkg_tools et portupgrade peuvent te renseigner complètement. mais rien n'est rééllement prévu pour les ports non installés. Déjà l'index qui comprend une partie des renseignements n'est pas systématiquement là. Il ne faut pas oublier que la philosophie de Debian est trés différente. Elle se base sur des paquets précompilés, et le répertoire Debian comprend la liste de tout ce qui se trouve dans ces paquets. Quand tu fais apt-get update, tu fais venir tout ce fourbi, et ça se met dans une base de données sur ta machine. Ca permet à apt-cache de te renseigner. Pour FreeBSD rien de cette infrastructure n'existe. Par contre tu as l'arbre des ports et les renseignements que tu cherches sont dedans, de manière un peu cachée. En particulier le nom du paquet une fois compilé et les dépendances sont très cachèes, tu ne peux pas les trouver sans faire tourner "make" dans le port (en fait make describe), ce qui est trés couteux en temps. Pour le fun je me suis amusé à écrire un programme qui calcule l'INDEX, indépendant de "make index", et bien en dépit de benchmarks dans tous les sens, je n'arrive pas à le rendre aussi rapide que make index. http://www.lpthe.jussieu.fr/~talon/build_index.py Tu dois pouvoir l'adapter aisément pour les usages que tu souhaites. > Merci d'avance. > -- Michel TALON |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
fred :
> pkg_which/pkgdb ne concerne que les pkgs installés. C'est le fichier pkg-plist du port qui (en théorie) décrit les fichiers du port, à coups de find et de grep on peut trouver le fichier. ex: $ find /usr/ports/ -name 'pkg-plist' -exec fgrep -H knode.png {} \; /usr/ports/deskutils/kdepim3/pkg-plist:share/icons/hicolor/128x128/apps/knode.png /usr/ports/deskutils/kdepim3/pkg-plist:share/icons/hicolor/16x16/apps/knode.png [...] -- http://www.lamaiziere.net/logiciels.html |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
In article <87odqrrwmp.fsf@free.fr>, fred <fredantispam@free.fr> wrote:
>Non. >pkg_which/pkgdb ne concerne que les pkgs installés. On a ca dans OpenBSD, ca s'appelle pkg_mklocatedb. Et depuis peu, ca sait fonctionner avec un arbre de ports brut de fonderie, sans avoir le moindre besoin de compiler quoi que ce soit... On a aussi maintenant une base de donnees de tous nos ports. Elle est sujette a modification (vu que je suis une bille en design de bases de donnees, et que j'ai pas du suivre tous les principes), mais elle m'a servi bien des fois ces derniers temps... |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
talon@lpthe.jussieu.fr (Michel Talon) a écrit :
[snip] En fait, je cherchais à savoir si quelquechose ne m'avait pas échappé avant de me (re)lancer dans des scripts à base des bons vieux grep/sed/cut/awk etc. Merci pour ces confirmations, pour lesquelles je ne peux être que d'accord. -- Fred. |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
Patrick Lamaizière <adresse@est.invalid> a écrit :
> fred : > >> pkg_which/pkgdb ne concerne que les pkgs installés. > > C'est le fichier pkg-plist du port qui (en théorie) décrit les fichiers > du port, à coups de find et de grep on peut trouver le fichier. > > ex: > $ find /usr/ports/ -name 'pkg-plist' -exec fgrep -H knode.png {} \; > /usr/ports/deskutils/kdepim3/pkg-plist:share/icons/hicolor/128x128/apps/knode.png > /usr/ports/deskutils/kdepim3/pkg-plist:share/icons/hicolor/16x16/apps/knode.png Ok, je vais donc me relancer « là-dedans ». Je craignais juste que cela ne soit un tantinet long, mais bon, je ferai avec. Je suis en train de me faire un script « global », qui reprend peu ou prou les fonctionnalités que j'ai avec ma etch (et oui, trop habitué à ce « confort » ;-), pour mon freebsd. Merci. -- Fred. |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
Patrick Lamaizière <adresse@est.invalid> a écrit :
> fred : > >> pkg_which/pkgdb ne concerne que les pkgs installés. > > C'est le fichier pkg-plist du port qui (en théorie) décrit les fichiers > du port, à coups de find et de grep on peut trouver le fichier. C'est dans ce cas de figure que virer les ports « inutiles » deviendrait très intéressant... -- Fred. |
|
|
|
#14 |
|
Messages: n/a
Hébergeur: |
Mardi 28 novembre 2006 à 23:54 GMT, Patrick Lamaizière a écrit:
> C'est le fichier pkg-plist du port qui (en théorie) décrit les fichiers > du port, à coups de find et de grep on peut trouver le fichier. > ex: > $ find /usr/ports/ -name 'pkg-plist' -exec fgrep -H knode.png {} \; Il semblerait que find /usr/ports/ -name 'pkg-plist' | xargs grep knode.png soit un peu plus rapide. Attention tout de même: à une époque c'était la mode de générer la plist lors de l'install, et il reste encore quelques ports qui n'ont donc pas de pkg-plist (ou incomplet). Il y en a aussi qui ont plusieurs plist selon les options choisies... find /usr/ports/ -name 'pkg-plist*' | xargs grep knode.png serait donc plus complet. Et de plus, quand la plist est courte, elle est remplacée par les variables PLIST_DIRS et PLIST_FILES! -- Th. Thomas. |
|
|
|
#15 |
|
Messages: n/a
Hébergeur: |
Thierry Thomas <tthomas@mail.dotcom.fr> a écrit :
> Il semblerait que > find /usr/ports/ -name 'pkg-plist' | xargs grep knode.png > soit un peu plus rapide. > > Attention tout de même: à une époque c'était la mode de générer la > plist lors de l'install, et il reste encore quelques ports qui n'ont > donc pas de pkg-plist (ou incomplet). Il y en a aussi qui ont plusieurs > plist selon les options choisies... > > find /usr/ports/ -name 'pkg-plist*' | xargs grep knode.png > serait donc plus complet. C'est noté ;-) Merci. -- Fred. |
|
![]() |
| Outils de la discussion | |
|
|