Question liée aux dépendances

Bonsoir à tous , je suis en plein dans la compilation , étant encore nouvelle sous linux , je me suis posée une question en compilant.

Dans certains cas de compilation les dépendances requises existent déjà sur le système mais dans une version inférieur à celle demandé par le programme compiler .

On est alors obliger de faire un aptitude remove pour supprimer cette dépendance et en la remplaçant par une dépendance plus récente pour contenter le programme compiler.Ça c’est la théorie.
Mais en pratique , ils arrivent que les dépendances touchent plusieurs programme du système installer , en les supprimant , on supprime alors d’autre programmes.N’y à t-il aucun autre moyen?

Imaginez un programme qui fonctionne avec la toute derniere version de GTK , je n’imagine même pas les dégâts…
Doit on supprimer GTK et recompiler tout les programme du système l’utilisant? Ou y a t-il une autre alternative?

Je prends GTK mais ça peut être n’importe qu’elle autre dépendances.

NB:On part du principe , que je ne veux pas me contenter d’un aptitude install tout le temps.

Salut,

Personnellement j’utilise /opt pour installer ce qui pose problème ou les versions de test des paquets déjà installés. Ceci permet d’avoir deux versions du même paquet et de ses dépendances.

Tu peux :

  • soit aller chercher une version plus récente dans un autre dépôt (pinning)
  • soit compiler puis empacqueter toi-même la version plus récente (backport)
  • soit installer la version plus récente en plus de la version actuelle (dans un autre dossier, généralement les programmes qui ne sont pas installés via le gestionnaire de paquet utilisent par défaut l’arborescence dans /usr/local, sinon tu peux utiliser /opt, comme dit plus haut)

Dans les cas du pinning ou du backport, apt se charge d’upgrader tout en laissant les autres programmes qui en dépende. Puis tant qu’à faire, tu peux aussi empacqueter le programme que tu souhaites installer.
Dans le cas de l’installation « sale » dans /usr/local, il faut par contre faire en sorte que le ./configure (ou autre) utilise bien la version qu’il faut (cf ./configure --help).

Merci pour vous réponses , il me semble que /opt sois une solution trés intéréssante , ça permet aux autres programmes de tourner avec l’ancienne version.

Si je comprends bien , j’installerai les nouvelles dépendances GTK dans /opt et le programme compiler dans /opt si je voulais utiliser cette méthode ?

En faite ma question est , comment forcer l’installation alors dans /opt ?
Je débute alors ne m’en voulez pas trop pour mes questions peut être idiote pour vous… :blush:

Merci à vous :wink:

Re,

$configure --prefix=/opt suffit très souvent :slightly_smiling:

ok j’ai bien trouver la commande merci! :smt007

Dans mon fichiers sources à compiler je me rends compte que bien souvent il y a les bibliothéques sources du programme à compiler.A quoi servent elles?Je ne vois pas de ./configure , et aucun moyen apparent de configurer le makefile…

(je parle dans le cas de l’installation de pidgin et de sa bibliothèque libpurple )

Dur dur la compilation… :smt005

Dans l’archive, tu dois avoir un fichier README ou INSTALL qui explique la marche à suivre. Si tu n’as pas de ./configure mais seulement un Makefile, tu devras probablement éditer directement le Makefile avant de compiler.

Pourquoi pidgin ? Il existe un paquet.

[quote=“kna”]Dans l’archive, tu dois avoir un fichier README ou INSTALL qui explique la marche à suivre. Si tu n’as pas de ./configure mais seulement un Makefile, tu devras probablement éditer directement le Makefile avant de compiler.

Pourquoi pidgin ? Il existe un paquet.[/quote]

Je voulais utiliser pidgin car il est multiprotocol et toujours pour m’entraîner je voulais le compiler.
Je vais essayer ça demain en regardant le read me.

J’ai donc bien lu le read me , il préconise une installation basique ,
./configure , make , make install.

Une fois fait , je me retrouve avec ce message d’erreur lier sans doute à une dépendance manquante :

checking for GSTINTERFACES... no
checking for FARSIGHT... no
configure: error:
Dependencies for voice/video were not met.
Install the necessary gstreamer and farsight packages first.
Or use --disable-vv if you do not need voice/video support.

J’ai pourtant visiblement installer tout les paquetages en rapport avec farsight , tel que libfarsigth… Peut être cherche t-il au mauvaise endroit?

Salut,

[quote]Install the necessary gstreamer and farsight packages first.
Or use –disable-vv if you do not need voice/video support.[/quote]

[quote=“ggoodluck47”]Salut,

[quote]Install the necessary gstreamer and farsight packages first.
Or use –disable-vv if you do not need voice/video support.[/quote][/quote]

j’ai pourtant installer les dépendance requises…
Tout ce qui correspondait à farsight à été installer…

[quote=“LinuxienneLike”][quote=“ggoodluck47”]Salut,

[quote]Install the necessary gstreamer and farsight packages first.
Or use –disable-vv if you do not need voice/video support.[/quote][/quote]

j’ai pourtant installer les dépendance requises…
Tout ce qui correspondait à farsight à été installer…[/quote]

Bon j’ai désactiver cette option car elle ne me sert a rien à l’heur actuel , je n’ai pas choisi pidgin pour le support cam.Donc j’ai désactiver.

Après le make install , pidgin ne trouvais pas libpurble , il cherchait dans usr/lib.
En cherchant sur la toile j’ai trouver la solution à ce problème , j’ai fais :

# cd /usr/lib
# ln -s /usr/local/lib/libpurple.so

Le programme fonctionne malgré cette option en moins.Comme j’ai compilé pour apprendre avant tout , je serai très heureuse de comprendre ce qui à pu poser problème au niveau de gstreamer , si quelqu’un a une idée?

EDIT: je crois avoir installer toute les dépendances requises mais je ne sais pas comment savoir ou le programme va chercher ses bibliothèque? Comment le savoir ?

[quote]Install the necessary gstreamer and farsight packages first.
Or use –disable-vv if you do not need voice/video support.[/quote]

Je renouvelle ma question un peu différemment , suite à ce que je cite plus haut ,j’ai installer , du moins je le pense la bibliothéques et les nécéssaire gstreamer , comment connaitre le nom que le programme attends de trouver comme bibliothéque et où ? (l’endroit on peut encore le deviner mais le nom? )

Je ne sais pas si je suis trés claire…Dans le makefile ou un fichier du même type on peut le retrouver?En théorie on devrait pouvoir retrouver toutes ces informations dans le code source de la source peut être non?

On va me prendre pour une tarer ici si c’est pas déjà fait ! :smt005

Salut,

Simplement fachéééééeeeee avec le participe passé :smiley:

Cette commande est incomplète, elle devrait comporter en deuxième argument le nom du lien dans /usr/lib :slightly_smiling:

[quote=“ggoodluck47”]Salut,

Simplement fachéééééeeeee avec le participe passé :smiley:

Cette commande est incomplète, elle devrait comporter en deuxième argument le nom du lien dans /usr/lib :slightly_smiling:[/quote]

Oui sous la précipitation j’ai retranscrit la commande un peu vite , il faut en effet rajouter l’argument libpurple.so tout en étant logguer au préalable dans usr/lib.

Pour le participe passé oui tu as raisons j’ai du faire quelques fautes… :blush:

Sinon , un peu d’aide pour connaître le nom de la bibliothèque que le programme cherche durant la compilation?

Tu as bien installé les paquets avec le suffixe -dev correspondants à tes dépendances ?

Si t’installes des libs dans /usr/local/lib (ou autre), pas besoin de faire des liens dans /usr/lib. Il suffit de rajouter le dossier à la variable LD_LIBRARY_PATH :

Les programmes chercheront alors les libs dans /usr/local/lib en plus de /usr/lib et /lib.

[quote=“LinuxienneLike”]
tout en étant logguer au préalable dans usr/lib.

Pour le participe passé oui tu as raisons j’ai du faire quelques fautes… :blush: [/quote]

:smt003

[quote=“kna”]Tu as bien installé les paquets avec le suffixe -dev correspondants à tes dépendances ?

Si t’installes des libs dans /usr/local/lib (ou autre), pas besoin de faire des liens dans /usr/lib. Il suffit de rajouter le dossier à la variable LD_LIBRARY_PATH :

Les programmes chercheront alors les libs dans /usr/local/lib en plus de /usr/lib et /lib.[/quote]

Oui j’ai bien installé les paquets en -dev pourtant.
Ou doit je rentrer cette ligne stp?

Dans ~/.bashrc par exemple.