Nous sommes le Jeu 19 Juin, 2025 23:36
Supprimer les cookies

Page 1 sur 21, 2 SuivantCompilation d'un code source

Au quotidien encore quelques soucis ?

Lun 28 Mai, 2007 22:17

Bonjour à tous. J'ai besoin d'installer un logiciel, Rkward en l'occurrence, mais le paquet disponible pour Kubuntu ne correspond pas à la version la plus récente et cette dernière semble ne pas fonctionner sur ma machine. Je me tourne donc vers la compilation du code source. Sur le site, ils précisent qu'il suffit de télécharger le code source et de faire ./configure, make puis make install. Ceci dit, une fois que j'ai récupéré le code source sous forme d'archive, qu'est-ce que j'en fait ? Je suppose qu'il faut décompresser le fichier, mais où ? A moins évidemment que cela n'ait aucune importance. SVP, éclairez ma lanterne.
playmobil

Avatar de l’utilisateur
Messages : 575
Géo : Clermont-Ferrand

Lun 28 Mai, 2007 22:46

bonjour

il faut evidement decompresser l'archive (donc ca va créer un répertoire Rkward qui contiendra tout les fichiers sources). Les commandes ./configure, make et make install sont à taper dans ce repertoire (donc en console).

./configure vérifie que tu as bien tout ce qu'il faut d'installé pour compiler et configure 2 3 parametres (étonnant, non ?)
make crée les fichiers binaires dans le répertoire courant (donc jusque la tu peux travailler en mode user)
make install se contente de copier ces binaires dans les répertoires systèmes qui vont bien (sauf si tu as modifié ces répertoire destination avec ./configure ;) ). Donc pour cette dernière étape tu as besoin d'etre root.

D'où la réponse à ta question : tu peux décompresser l'archive où tu veux. Mais si tu dois faire ca souvent, tu peux créer un répertoire src (comme sources) où tu mettras les sources de tout les progs que tu compiles à la main...

petite remarque : plutot que de faire make install, fait checkinstall (programme à installer) : plutot que tu copier sauvagement les fichiers binaires dans tes répertoires système, ca crée un paquet .deb et ca l'installe. L'enorme avantage, c'est qu'un paquet .deb peut se desinstaller proprement...

a+
lugburz
lugburz

Messages : 253

Lun 28 Mai, 2007 23:12

D'abords, merci pour la réponse et les précisions.
Je viens de passer la commande ./configure et celle-ci me donne une sortie qui se finie par:
checking for X...
configure: error: Can't find X libraries. Please check your installation and add the correct paths!


De quoi s'agit-il ? est-ce grave docteur ?

Sinon, pour checkinstall, je suis assez séduit par le concept, mais où sera situé le paquet .deb créé ? Comment faire pour gérer ce dernier depuis Adept ?
playmobil

Avatar de l’utilisateur
Messages : 575
Géo : Clermont-Ferrand

Lun 28 Mai, 2007 23:30

Non, c'est pas grave, pas de quoi t'affoler. C'est juste que pour faire cette petite manipulation, il te faut ton couteau-suisse : gcc et ... make ! ;)

Donc, pour appeler gcc et ses potes à la rescousse :

Code: Tout sélectionner
sudo apt-get install gcc make build-essential linux-headers-`uname -r`

remplace le uname -r par la version de ton noyau. Plusieurs possibilités :
- dans ton terminal tu tapes :
Code: Tout sélectionner
uname -r

- ou plus simplement (et plus fainéant), tu installes à part le linux-header et avec la touche 'TAB' de ton clavier tu viens auto-compléter la suite après linux-header TAB.
Code: Tout sélectionner
sudo apt-get install linux-header «TOUCHE TAB»


Normalement, ça devrait être tout bon,

Tolo.
Veni, Vidi, Libri - Diffuseurs de Licences Libres
http://VeniVidiLibri.org
Tolosano

Messages : 1940
Géo : Toulouse

Mar 29 Mai, 2007 00:04

@ Tolosano. Je ne suis pas certain de bien comprendre. Faut-il que je fasse appel à gcc avant ou après ./configure ?
Voici en tout cas ce que me retourne la commande :
Code: Tout sélectionner
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture de l'information d'état... Fait
gcc est déjà la plus récente version disponible.
make est déjà la plus récente version disponible.
build-essential est déjà la plus récente version disponible.
linux-headers-2.6.20-16-generic est déjà la plus récente version disponible.
Les paquets suivants ont été automatiquement installés mais ne sont plus nécessaires :
  zlib-bin
Utiliser "apt-get autoremove" pour les supprimer
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.


Puis ce que j'obtiens avec make :
Code: Tout sélectionner
make: *** Pas de cibles spécifiées et aucun makefile n'a été trouvé. Arrêt.
playmobil

Avatar de l’utilisateur
Messages : 575
Géo : Clermont-Ferrand

Mar 29 Mai, 2007 00:14

Oups, désolé, that's my fault ... j'ai lu trop vite ton message d'avertissement :?

Donc, tu as bien tous les outils nécessaires à la compilation d'installé, le «petit» problème que tu rencontres c'est «simplement» qu'en compilant toi-même les sources, tu ne disposes plus de l'automatisation des installations annexes nécessaires au programme à installer : les dépendances ne sont pas gérées et des librairies te font défaut pour la bonne exécution de la compilation.

Je n'ai pas de solution miracles pour ça. Il se peut qu'en installant cette librairie, le confighure bloque sur une nouvelle dépendance non satisfaite, et derrière encore une autre.

Bref, en ce qui me concerne, j'éviterai de donner des conseils, n'étant pas spécialiste de la compilation. Mais tu peux déjà essayer d'installer ces librairies. Le mieux pour faire tes recherches de librairies et de dépendances c'est de passer par le site de paquets d'ubuntu.

Tolo.
Veni, Vidi, Libri - Diffuseurs de Licences Libres
http://VeniVidiLibri.org
Tolosano

Messages : 1940
Géo : Toulouse

Mar 29 Mai, 2007 08:46

bonjour,

a priori, ce qu'il te manque c'est les paquets de developpement de X :
C'est le meme principe que pour le kernel : pour faire tourner un paquet binaire sur ta distrib, le paquet linux-image suffit ; si tu veux compiler quelque chose en lien avec le noyau (un module par exemple) tu as besoin en plus des entêtes (headers) du noyau, soit le paquet linux-headers.
Pour les lib X, je sais pas exactement à quel paquet ca correspond, mais il sera surement de la forme trucmuche-dev (presque tous les paquets avec les headers pour la compilation sont de cette forme). Par exemple il existe un paquet libx11-dev, mais je ne garantis pas que c'est celui que tu cherches.

Pour checkinstall : sauf probleme particulier, il installe tout seul le paquet apres l'avoir créé. Et donc le programme apparait dans la liste des paquets installés de Adept comme n'importe quel autre. Ce qui te permettra de la supprimer. Par contre, pour le réinstaller, tu ne pourras pas passer par Adept car il ne connait que les dépots distants. Tu pourras passer par 'dpkg -i' en ligne de commande (et peut etre qu'il existe un gui pout dpkg, mais je ne m'en suis jamais soucié)

a+
lugburz

edit : "aucun makefile n'a été trouvé", ca veut dire que l'étape ./configure ne s'est pas déroulée correctement jusqu'au bout. Tant que tu n'arrives pas à faire ./configure sans aucun message d'erreur, c'est pas la peine d'essayer de faire make....
lugburz

Messages : 253

Mar 29 Mai, 2007 12:28

Bon, afin de trouver les dépendances qui me manquent, j'ai fait:
Code: Tout sélectionner
sudo apt-cache depends rkward

Mais après vérification, toutes les librairies indiquées sont déjà installées. :?
playmobil

Avatar de l’utilisateur
Messages : 575
Géo : Clermont-Ferrand

Mar 29 Mai, 2007 12:33

playmobil a écrit:Bon, afin de trouver les dépendances qui me manquent, j'ai fait:
Code: Tout sélectionner
sudo apt-cache depends rkward

Mais après vérification, toutes les librairies indiquées sont déjà installées. :?
Non ! Cette commande te donne les dépendances pour que le programmes fonctionne, pas pour qu'il soit compilé. Et de plus cela donne les dépendances d'une version précédente, ce n'est donc plus forcement valable.

Généralement les paquets manquants pour la compilation sont les *-dev, comme écrit précédement.
Attentyon, ponaytte maychante !
Téthis

Avatar de l’utilisateur
Messages : 3895
Géo : De passage chez les cathares

Mar 29 Mai, 2007 13:09

Ok, j'ai trouvé les dépendances manquantes et réussi à conclure ./configure. Tout semble bien aller avec make, mais je ne parviens pas à installer le paquet créé avec checkinstall. Voici le log du processus:
Code: Tout sélectionner
(Lecture de la base de données... 148665 fichiers et répertoires déjà installés.
)
Dépaquetage de rkward (à partir de .../rkward_0.4.7a-1_i386.deb) ...
dpkg : erreur de traitement de /home/florent/Programmes/rkward-0.4.7a/rkward_0.4
.7a-1_i386.deb (--install) :
 tentative de remplacement de « /usr/share/apps/katepart/syntax/r.xml », qui app
artient aussi au paquet kdelibs-data
dpkg-deb: sous-processus paste tué par le signal (Relais brisé (pipe))
Des erreurs ont été rencontrées pendant l'exécution :
 /home/florent/Programmes/rkward-0.4.7a/rkward_0.4.7a-1_i386.deb
/var/tmp/iiNLbBbrNiqYMjiFocXWk/dpkginstall.log (END)             

Une solution ?
playmobil

Avatar de l’utilisateur
Messages : 575
Géo : Clermont-Ferrand

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit