[Résolu] Mise à jour d'une dépendance d'un slackbuild

Forum d'aide générale sur Slackware
seb_62
Messages : 18
Inscription : 16 mars 2017, 14:14

[Résolu] Mise à jour d'une dépendance d'un slackbuild

Message par seb_62 »

Bonjour,

La question est dans le sujet… mais je ne suis pas sûr que ce soit très clair !
En utilisant sbopkg pour gérer les slackbuilds, il y a une possibilité d’identifier et de mettre en œuvre les mises à jour.
Mais on peut potentiellement tout casser, si un autre slackbuild ne bénéficiant pas d’une mise à jour dépend de celui mis à jour ; il y a probablement lieu de le recompiler aussi… encore faut-il en avoir conscience!
Comment donc retrouver les dépendants d'un slackbuild ?
J'avais commencé de tenir une carte heuristique listant tous les slackbuilds que j'installais avec leurs dépendances, mais c'est un peu fastidieux.

Merci de vos avis.

Cordialement,
Sébastien N.
Dernière modification par seb_62 le 18 janvier 2018, 09:23, modifié 1 fois.
Avatar de l’utilisateur
Thomas
Administrateur
Messages : 430
Inscription : 08 janvier 2017, 07:14
Localisation : Anizy-le-Grand
Contact :

Re: Mise à jour d'une dépendance d'un slackbuild

Message par Thomas »

Salut,

N'utilisant pas sbopkg, je ne sais pas si on peut connaître cette info avec cet outil. Pour ma part, lorsque je compile une MAJ d'une lib, je regarde si la version du fichier libtruc.so est la même qu'avant. Si c'est la même version c'est que l'api est (normalement) resté la même donc il n'y a pas besoin de recompiler les paquets qui en dépendent. Sinon j'arrive tout simplement à me souvenir pour quel paquet j'avais installé la lib en question et le recompile s'il ne fonctionne plus.
La commande "ldd" peut t'être d'un grand secours.
Didier Spaier
Messages : 128
Inscription : 29 janvier 2017, 21:07

Re: Mise à jour d'une dépendance d'un slackbuild

Message par Didier Spaier »

Salut,
seb_62 a écrit : 12 novembre 2017, 14:01 Comment donc retrouver les dépendants d'un slackbuild ?
To crées une queue pour chaque paquet que tu installes.

Exemple:

Code : Tout sélectionner

sqg -p gnucash
Ensuite tu "greppes" les queues pour trouver les dépendants.

Exemple

Code : Tout sélectionner

(cd /var/lib/sbopkg/queues; grep -r libwebp|sed "s/:.*//;s/.sqf//")
gnucash
Bon, maintenant je vais enlever sbopkg dont je ne me sers pas ;)

PS Tu n'as pas forcément besoin de reconstruire tous les dépendants, la nouvelle version de la dépendance peut ou non avoir une interface binaire modifiée.

D'autre part, dans une période récente il semble que pas mal de SlackBuilds soient mis à jour juste parce qu'une nouvelle version de l'archive source est disponible. Personnellement je n'en vois pas l'intérêt, et je ne mets à jour mes quelques SlackBuilds @ SBo que pour combler une faille de sécurité ou fournir une amélioration majeure et dans le dernier cas uniquement pour les paquets "feuilles" (dont aucun autre paquet ne dépend).

EDIT commande corrigée (j'avais écrit spkg au lieu de sqg).
Dernière modification par Didier Spaier le 14 novembre 2017, 17:44, modifié 1 fois.
seb_62
Messages : 18
Inscription : 16 mars 2017, 14:14

Re: Mise à jour d'une dépendance d'un slackbuild

Message par seb_62 »

Bonjour,

Merci beaucoup de vos réponses, elles me montrent que j'ai encore beaucoup à apprendre !

Thomas, qu'entends-tu par "api" ? (j'ai trouvé "alcoolisation ponctuelle importante" dans wikipedia, mais ça, c'est ce à quoi conduit la gestion de trop de slackbuilds :D ). Blague à part, je ne trouve pas de ficher lib*.so dans SBO (consulté les dépendances de gnucash).

Didier, je vais tâcher de vérifier que j'ai tout bien compris et de mettre en œuvre (mon niveau en bash est très limité) je te dirai si je bloque.

Cordialement,
Sébastien N.
Avatar de l’utilisateur
Thomas
Administrateur
Messages : 430
Inscription : 08 janvier 2017, 07:14
Localisation : Anizy-le-Grand
Contact :

Re: Mise à jour d'une dépendance d'un slackbuild

Message par Thomas »

Salut,
seb_62 a écrit : 14 novembre 2017, 15:10 Thomas, qu'entends-tu par "api" ? (j'ai trouvé "alcoolisation ponctuelle importante" dans wikipedia, mais ça, c'est ce à quoi conduit la gestion de trop de slackbuilds :D ).
Une API permet à différentes application de communiquer entres elles. Par exemple un lecteur de musique est capable de lire des fichiers MP3, FLAC, OGG… en utilisant les lib externes au lecteur installées sur l'OS (lame, flac, libogg…). Si la MAJ d'une lib contient une évolution de l'interface que le lecteur de musique ne saura utiliser, il faudra donc recompiler ce lecteur pour qu'il prenne en compte la MAJ de la lib avec cette nouvelle interface.
seb_62 a écrit : 14 novembre 2017, 15:10Blague à part, je ne trouve pas de ficher lib*.so dans SBO (consulté les dépendances de gnucash).
J'ai moi-même installé gnucash (sur le PC de mon père) et, à ma connaissance, la seule dépendance, et pas des moindres, qui peut poser souci si tu la mets à jour est webkitgtk.

Bon courage !
seb_62
Messages : 18
Inscription : 16 mars 2017, 14:14

Re: Mise à jour d'une dépendance d'un slackbuild

Message par seb_62 »

Didier Spaier a écrit : 12 novembre 2017, 21:08
To crées une queue pour chaque paquet que tu installes.

Exemple:

Code : Tout sélectionner

spkg -p gnucash
Après vérification, la commande est en fait sqg -p gnucash.
Didier Spaier a écrit : Ensuite tu "greppes" les queues pour trouver les dépendants.

Exemple

Code : Tout sélectionner

(cd /var/lib/sbopkg/queues; grep -r libwebp|sed "s/:.*//;s/.sqf//")
gnucash
Je confirme, ça fonctionne ; ça a un caractère un peu magique car je ne connais pas la syntaxe de la commande sed (qui a l'air bien compliquée), mais ça donne envie d'apprendre !

Un grand merci.

Cordialement,
Sébastien N.
seb_62
Messages : 18
Inscription : 16 mars 2017, 14:14

Re: Mise à jour d'une dépendance d'un slackbuild

Message par seb_62 »

Thomas a écrit : 14 novembre 2017, 15:26
Une API permet à différentes application de communiquer entres elles. Par exemple un lecteur de musique est capable de lire des fichiers MP3, FLAC, OGG… en utilisant les lib externes au lecteur installées sur l'OS (lame, flac, libogg…). Si la MAJ d'une lib contient une évolution de l'interface que le lecteur de musique ne saura utiliser, il faudra donc recompiler ce lecteur pour qu'il prenne en compte la MAJ de la lib avec cette nouvelle interface.
Merci beaucoup !

Cordialement,
Sébastien N.
Didier Spaier
Messages : 128
Inscription : 29 janvier 2017, 21:07

Re: Mise à jour d'une dépendance d'un slackbuild

Message par Didier Spaier »

seb_62 a écrit : 14 novembre 2017, 17:22Je confirme, ça fonctionne ; ça a un caractère un peu magique car je ne connais pas la syntaxe de la commande sed (qui a l'air bien compliquée), mais ça donne envie d'apprendre !
Tout est là: http://pubs.opengroup.org/onlinepubs/96 ... s/sed.html

Ensuite tu pourras écrire des scripts comme convtags:
https://github.com/DidierSpaier/convtags

PS merci pour "sed s/spkg/sqg/", c'est corrigé.
Seb
Messages : 188
Inscription : 22 février 2017, 19:07

Re: Mise à jour d'une dépendance d'un slackbuild

Message par Seb »

Didier, définitivement, tu es un grand malade (je me suis égaré dans convtags). :D

Cela dit, pour débuter, je conseillerais plutôt awk que sed. Les regex sont les mêmes, mais awk est plus proche des langages usuels (structures de contrôle if/while/for, alors qu'avec sed il faut jouer des branchements) et plus puissant (tableaux/hashes, variables et possibilité de faire des compteurs). La vraie force de sed me semble tenir dans sa concision, et surtout ses parenthèses capturantes (LA grosse galère en awk, où il faut faire ça à coups de match()/substr()/sub()).
seb_62
Messages : 18
Inscription : 16 mars 2017, 14:14

Re: Mise à jour d'une dépendance d'un slackbuild

Message par seb_62 »

Bonjour,

Pour information : j'ai découvert l'application sboui (disponible en tant que slackbuild sous SBo) qui gère les dépendances inverses : problème résolu !

Cordialement,
Sébastien
Répondre