# [Portage] Trouver dépendances inversées (resolu)

## sebB

Salut, 

Je cherche désespérément à trouver quels paquets dépendent d'une version spécifique d'un autre paquet.

Par exemple, je cherche tous les paquets de mon système qui dépendent et ont été compilés avec x11-libs/gtk+-2.24.31-r1

Sur mon système j'ai bien les 2 versions 2.24.31-r1 et 3.22.16

Si je fais un equery d =x11-libs/gtk+-2.24.31-r1, j'obtiens un résultat qui ne me convient pas puisque des paquets dépendants de gtk3 apparaissent.

```
app-accessibility/caribou-0.4.21 (x11-libs/gtk+:2)

app-admin/system-config-printer-1.4.8 (x11-libs/gtk+:3[introspection])

app-crypt/pinentry-0.9.7-r1 (gtk ? x11-libs/gtk+:2)

app-i18n/ibus-1.5.12 (!gtk ? x11-libs/gtk+:2)

                     (gtk ? x11-libs/gtk+:3)

                     (gtk2 ? x11-libs/gtk+:2)

                     (gtk ? x11-libs/gtk+:3[introspection])

app-office/libreoffice-5.2.7.2 (>=x11-libs/gtk+-2.24:2)

app-text/ghostscript-gpl-9.21 (gtk ? x11-libs/gtk+:3)

                              (gtk ? x11-libs/gtk+:2)

app-text/gtkspell-3.0.7 (x11-libs/gtk+:3[introspection?])

dev-libs/appstream-glib-0.6.13 (x11-libs/gtk+:3)

dev-libs/gjs-1.46.0 (gtk ? x11-libs/gtk+:3)

dev-libs/keybinder-0.3.1-r300 (x11-libs/gtk+:3)

dev-python/pygobject-3.22.0 (test ? x11-libs/gtk+:3[introspection])

dev-qt/qtgui-5.7.1-r1 (gtk ? x11-libs/gtk+:3)

gnome-extra/polkit-gnome-0.105-r1 (x11-libs/gtk+:3)

media-gfx/gimp-2.8.22 (>=x11-libs/gtk+-2.24.10:2)

media-libs/libcanberra-0.30-r5 (gtk ? >=x11-libs/gtk+-2.20.0:2[abi_x86_32(-)?, abi_x86_64(-)?, abi_x86_x32(-)?, abi_mips_n32(-)?, abi_mips_n64(-)?, abi_mips_o32(-)?, abi_ppc_32(-)?, abi_ppc_64(-)?, abi_s390_32(-)?, abi_s390_64(-)?])

                               (gtk3 ? x11-libs/gtk+:3[X, abi_x86_32(-)?, abi_x86_64(-)?, abi_x86_x32(-)?, abi_mips_n32(-)?, abi_mips_n64(-)?, abi_mips_o32(-)?, abi_ppc_32(-)?, abi_ppc_64(-)?, abi_s390_32(-)?, abi_s390_64(-)?])

media-sound/pulseaudio-10.0 (gtk ? x11-libs/gtk+:3)

media-sound/quodlibet-3.8.1-r1 (x11-libs/gtk+[introspection])

net-dialup/ppp-2.4.7-r3 (gtk ? x11-libs/gtk+:2)

net-libs/webkit-gtk-2.18.2 (nsplugin ? >=x11-libs/gtk+-2.24.10:2)

sys-devel/gcc-5.4.0-r3 (awt ? =x11-libs/gtk+-2*)

www-client/firefox-52.4.0 (>=x11-libs/gtk+-2.18:2)

x11-libs/colord-gtk-0.1.26 (x11-libs/gtk+:3[X(+), introspection?])

x11-libs/libnotify-0.7.7 (test ? x11-libs/gtk+:3[abi_x86_32(-)?, abi_x86_64(-)?, abi_x86_x32(-)?, abi_mips_n32(-)?, abi_mips_n64(-)?, abi_mips_o32(-)?, abi_ppc_32(-)?, abi_ppc_64(-)?, abi_s390_32(-)?, abi_s390_64(-)?])

x11-libs/wxGTK-3.0.2.0-r2 (X ? >=x11-libs/gtk+-2.18:2[abi_x86_32(-)?, abi_x86_64(-)?, abi_x86_x32(-)?, abi_mips_n32(-)?, abi_mips_n64(-)?, abi_mips_o32(-)?, abi_ppc_32(-)?, abi_ppc_64(-)?, abi_s390_32(-)?, abi_s390_64(-)?])

                          (aqua ? x11-libs/gtk+:2[aqua=, abi_x86_32(-)?, abi_x86_64(-)?, abi_x86_x32(-)?, abi_mips_n32(-)?, abi_mips_n64(-)?, abi_mips_o32(-)?, abi_ppc_32(-)?, abi_ppc_64(-)?, abi_s390_32(-)?, abi_s390_64(-)?])

x11-misc/redshift-1.11-r1 (gtk ? x11-libs/gtk+:3[introspection])

x11-themes/gtk-engines-adwaita-3.22.3 (>=x11-libs/gtk+-2.24.15:2[abi_x86_32(-)?, abi_x86_64(-)?, abi_x86_x32(-)?, abi_mips_n32(-)?, abi_mips_n64(-)?, abi_mips_o32(-)?, abi_ppc_32(-)?, abi_ppc_64(-)?, abi_s390_32(-)?, abi_s390_64(-)?])

```

Je sais que gtk-engines-adwaita-3.22.3 a été compilé avec gtk2 (un depgraph me le confirme)

En fait je cherche un truc du genre:

"La commande qui va bien" x11-libs/gtk+-2.24.31-r1

-> x11-themes/gtk-engines-adwaita-3.22.3

MerciLast edited by sebB on Thu Nov 23, 2017 9:06 am; edited 1 time in total

----------

## netfab

Salut,

Essaye :

```

$ emerge --depclean =x11-libs/gtk+-2.24.31-r1 -pv

```

----------

## Mr. T.

La réponse est simple. On utilise l'applet qdepends avec et sans version et on supprime les résultats dupliqués (les doubles).

```
qdepends -Q x11-libs/gtk+-2.24.31-r1

qdepends -Q x11-libs/gtk+
```

 *man qdepends wrote:*   

> Currently, qdepends will only query installed packages.  There is no support for querying packages not yet installed (the  equery(1)
> 
> tool can do that).

 

helecho.

----------

## sebB

```
emerge --depclean =x11-libs/gtk+-2.24.31-r1 -pv 
```

Merci netfab, les résultats me semblent plus pertinents.

Après tests, c'est exactement ce qu'il me fallait. je la garde sous le coude!

---------------------------

 *helecho wrote:*   

> La réponse est simple

 

Pas compris pourquoi je devrais enlever le résultat de gtk+2 de gtk+ mais bon... le résultat est effectivement simple

```
$ qdepends -Q x11-libs/gtk+-2.24.31-r1

$
```

----------

## Mr. T.

J'ai fais une erreur dans ma proposition. On sait qu'un logiciel quelconque peut dépendre d'autres logiciels, quelque soit leur version. 

En extrapolant, on peut penser qu'un logiciel  peut potentiellement dépendre de plusieurs versions (mais différentes représentations sont possibles). 

De plus, le gestionnaire de paquets sélectionne vraisemblablement les versions logicielles disponibles les plus récentes. 

Toutefois, je ne connais pas le fonctionnement de qdepends. On peut envisager que qdepends pourrait être implémenté de différentes façons.

```
qdepends -Q x11-libs/gtk+-2.24
```

helecho.

----------

## Mr. T.

 *sebB wrote:*   

> Pas compris pourquoi je devrais enlever le résultat de gtk+2 de gtk+

 

Mes suppositions ne semblent plus pertinentes après réflexion, sont fortuites.

La première supposition est que l'indication explicite ou implicite d'une version logicielle dans un ebuild est déterminante.

Par exemple, une indication explicite pourrait être correspondre à >=x11-libs/gtk+-2.24 et une indication implicite correspondre à x11-libs/gtk+.

La deuxième supposition est que qdepends exploite directement et essentiellement les données des ebuilds.

En conséquent, je considère que l'ensemble obtenu grâce aux deux commandes peut contenir différentes versions de gtk+

mais que l'on peut obtenir indirectement toutes les dépendances inverses relatives à la version 2.24.31-r1.

----------

## sebB

 *helecho wrote:*   

> La manière de procéder (faire des suppositions et des corrections rigoureuses) peut être inefficace. 

 

Je dirais même souvent, pour ne pas dire toujours te concernant.

Allez plus qu'un jour a tenir

----------

## Mr. T.

C'est faux.   :Crying or Very sad: 

[BUG] app-portage/portage-utils: qdepends -Q can't match all suitable atoms

helecho.

----------

## sebB

Peux-tu m'expliquer donc comment ta commande fonctionne?

----------

## Mr. T.

J'avais une préférence pour cette commande mais désormais je ne recommande pas son utilisation étant donné quelle est dysfonctionnelle.

Je ne me doutais pas quelle était dysfonctionnelle : j'ai proposé deux variantes par précaution, à cause de l'incertitude liée à l'implémentation.

----------

## sebB

Merci,

J'avais effectivement mal compris que c'était simple mais dysfonctionnel. D'ou ton faux justifié.

----------

