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

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

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

Message par seb_62 » 12 novembre 2017, 14:01

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.

Avatar de l’utilisateur
Thomas
Administrateur
Messages : 117
Inscription : 08 janvier 2017, 07:14

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

Message par Thomas » 12 novembre 2017, 15:25

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.
Thomas Bourdon

Didier Spaier
Messages : 42
Inscription : 29 janvier 2017, 21:07

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

Message par Didier Spaier » 12 novembre 2017, 21:08

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 : 12
Inscription : 16 mars 2017, 14:14

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

Message par seb_62 » 14 novembre 2017, 15:10

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 : 117
Inscription : 08 janvier 2017, 07:14

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

Message par Thomas » 14 novembre 2017, 15:26

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:10
Blague à 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 !
Thomas Bourdon

seb_62
Messages : 12
Inscription : 16 mars 2017, 14:14

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

Message par seb_62 » 14 novembre 2017, 17:22

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 : 12
Inscription : 16 mars 2017, 14:14

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

Message par seb_62 » 14 novembre 2017, 17:25

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 : 42
Inscription : 29 janvier 2017, 21:07

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

Message par Didier Spaier » 14 novembre 2017, 17:42

seb_62 a écrit :
14 novembre 2017, 17:22
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 !
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 : 45
Inscription : 22 février 2017, 19:07

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

Message par Seb » 16 novembre 2017, 19:14

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()).

Répondre