Insatllation sources........

Fermé
neolistic Messages postés 93 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 10 juillet 2007 - 25 juil. 2005 à 17:13
 Thierry - 5 juil. 2010 à 22:46
Bonjour à tous, voila, je pense ne pas avoir assimiler l'insatllation de logiciels ou librairies à partir des sources!!!
un exemple: j'ai voulu installer un jeu par la source qui demandait la librairie libxml++1.0, donc je vais sur le site, je télécharge le fichier .tar.bz2 de la soure, je le decompresse avec tar -jxvf nom.tar.bz2 , je vais dans le dossier, je fais "./configure" pui "make" puis "make install" OK! et maintenant je refait le ./configure du jeu qui m'a dit qu'il manquait la librairie mais il me remet le meme message!!! je comprend rien!!! comment ca marche???
Au fait, je suis sur Mandrake LE 2005

MERCI!!

7 réponses

marc[i1] Messages postés 2573 Date d'inscription vendredi 1 avril 2005 Statut Contributeur Dernière intervention 6 septembre 2008 382
25 juil. 2005 à 17:19
Salut,

Avec Mandriva, tu as des RPM !!!
donc installe des rpm avant de compiler au hasard ^_^
Surtout que la libxml est dans les CD de la LE 2005 ;)
http://www.mandriva.com/products/limited-edition/packages?p=media-main2-libxml1-1.8.17-8mdk.i586.rpm.html&R_=club_standard_x86_4-cd

dans une console :
$ su -
password
# urpmi libxml1
# exit
$

Voilà :)
0
neolistic Messages postés 93 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 10 juillet 2007 6
25 juil. 2005 à 18:51
oui, j'ai bien vu que l'installation des rpm marchait tres bien mais je voudrait savoir pourquoi ca ne marche pas quand j'insatlle les sources
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
25 juil. 2005 à 20:00
A priori tu as un fichier INSTALL qui explique tout.
Généralement ca se résume à ça :
su -
Password:
cd repertoire_des_src
./configure
make
make install

Si tu donnes plus de précision on pourra sans doute t'aider plus (genre le nom du paquetage, où et comment tu l'as récupéré).

Consulte aussi le site ou tu l'as téléchargé, c'est souvent expliqué...

Bonne chance
0
neolistic Messages postés 93 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 10 juillet 2007 6
29 juil. 2005 à 12:19
et bien par exemple, je n'arrive pas à installer db.1.85 :

http://downloads.sleepycat.com/db.1.85.tar.gz (md5)
ftp://ftp.sleepycat.com/releases/db.1.85.tar.gz (md5)

je rapelle que je suis sous Mandriva LE2005 (Mandrake 10.2).
Je suis pas tres doué en anglais mais j'ai suivi les instructions de /PORT/README :

This is the area for building the libdb library. There are a number
of porting directories, for various architecture/OS combinations. Pick
the one that's closest to yours and try "make".

donc je suis allé dans "linux" parce que c'est le seul qui me dis quelque chose et j'ai fait "make" et ca me donne:

[root@localhost linux]# make
cc -c -D__DBINTERFACE_PRIVATE -O -I. -Iinclude -I../../hash ../../hash/hash.c
In file included from ../../hash/hash.c:55:
../../hash/hash.h:106: error: field `__errno_location' declared as a function
../../hash/hash.c: In function `flush_meta':
../../hash/hash.c:508: error: syntax error before '(' token
../../hash/hash.c: In function `hash_get':
../../hash/hash.c:539: error: syntax error before '(' token
../../hash/hash.c: In function `hash_put':
../../hash/hash.c:556: error: syntax error before '(' token
../../hash/hash.c:560: error: syntax error before '(' token
../../hash/hash.c: In function `hash_delete':
../../hash/hash.c:577: error: syntax error before '(' token
../../hash/hash.c:581: error: syntax error before '(' token
../../hash/hash.c: In function `hash_seq':
../../hash/hash.c:732: error: syntax error before '(' token
make: *** [hash.o] Erreur 1

donc j'essaie la suite du README:

For the rest of this
file, I'll use "MACH" as a fake architecture/OS name.

To PORT to a new system, create the following subdirectories and
symbolic links.

mkdir MACH (for example: mkdir sunos.4.0)
cd MACH
cp ../Makefile .
chmod 664 Makefile
ln -s ../clib .
mkdir include
ln -s include sys
cd include
ln -s ../../include/*.h .
rm compat.h
cp ../../include/compat.h .
chmod 664 compat.h
cd ..

The basic idea is that you now have a local area that you can modify.
In particular, you have local copies of the Makefile and the include
file compat.h. Read through the Makefile and compat.h and make whatever
changes are appropriate to your system. If there's an architecture
that's close to yours, you probably should diff the Makefile and
compat.h in that tree against the standard ones and see what changes
were necessary, as they're probably necessary for you as well. Then,
enter "make" and see what happens!

Donc je fais tout ca sauf que je n'ai absolument aucune idée de quoi modifier dans le Makefile et le compat.h donc je fais make dans le nouveau répertoire et ca me donne:

cc -c -D__DBINTERFACE_PRIVATE -O -I. -Iinclude -I../../hash ../../hash/hash.c
In file included from /usr/include/sys/types.h:133,
from /usr/include/sys/param.h:42,
from ../../hash/hash.c:41:
/usr/include/time.h:76: error: syntax error before "typedef"
/usr/include/time.h:79: error: syntax error before "__USING_NAMESPACE_STD"
/usr/include/time.h: In function `__USING_NAMESPACE_STD':
/usr/include/time.h:92: error: storage class specified for parameter `clockid_t'
/usr/include/time.h:104: error: storage class specified for parameter `timer_t'
In file included from /usr/include/sys/param.h:42,
from ../../hash/hash.c:41:
/usr/include/sys/types.h:151: error: storage class specified for parameter `ulong'
/usr/include/sys/types.h:152: error: storage class specified for parameter `ushort'
/usr/include/sys/types.h:153: error: storage class specified for parameter `uint'
/usr/include/sys/types.h:191: error: storage class specified for parameter `int8_t'
/usr/include/sys/types.h:192: error: storage class specified for parameter `int16_t'
/usr/include/sys/types.h:193: error: storage class specified for parameter `int32_t'
/usr/include/sys/types.h:194: error: storage class specified for parameter `int64_t'
/usr/include/sys/types.h:197: error: storage class specified for parameter `u_int8_t'
/usr/include/sys/types.h:198: error: storage class specified for parameter `u_int16_t'
/usr/include/sys/types.h:199: error: storage class specified for parameter `u_int32_t'
/usr/include/sys/types.h:200: error: storage class specified for parameter `u_int64_t'
/usr/include/sys/types.h:202: error: storage class specified for parameter `register_t'
In file included from /usr/include/sys/select.h:34,
from /usr/include/sys/types.h:216,
from /usr/include/sys/param.h:42,
from ../../hash/hash.c:41:
/usr/include/bits/sigset.h:23: error: storage class specified for parameter `__sig_atomic_t'
/usr/include/bits/sigset.h:31: error: storage class specified for parameter `__sigset_t'
In file included from /usr/include/sys/types.h:216,
from /usr/include/sys/param.h:42,
from ../../hash/hash.c:41:
/usr/include/sys/select.h:38: error: storage class specified for parameter `__sigset_t'
/usr/include/sys/select.h:38: error: conflicting types for '__sigset_t'
/usr/include/bits/sigset.h:31: error: previous definition of '__sigset_t' was here
/usr/include/sys/select.h:38: error: syntax error before "sigset_t"
In file included from /usr/include/sys/types.h:216,
from /usr/include/sys/param.h:42,
from ../../hash/hash.c:41:
/usr/include/sys/select.h:49: error: storage class specified for parameter `suseconds_t'
/usr/include/sys/select.h:55: error: storage class specified for parameter `__fd_mask'
/usr/include/sys/select.h:75: error: syntax error before "__fd_mask"
/usr/include/sys/select.h:85: error: storage class specified for parameter `__fd_mask'
/usr/include/sys/select.h:85: error: conflicting types for '__fd_mask'
/usr/include/sys/select.h:55: error: previous definition of '__fd_mask' was here
/usr/include/sys/select.h:85: error: syntax error before "fd_mask"
/usr/include/sys/select.h:109: error: syntax error before "fd_set"
/usr/include/sys/select.h:112: error: storage class specified for parameter `select'
In file included from /usr/include/sys/param.h:42,
from ../../hash/hash.c:41:
/usr/include/sys/types.h:235: error: storage class specified for parameter `fsblkcnt_t'
/usr/include/sys/types.h:239: error: storage class specified for parameter `fsfilcnt_t'
In file included from /usr/include/sys/types.h:266,
from /usr/include/sys/param.h:42,
from ../../hash/hash.c:41:
/usr/include/bits/pthreadtypes.h:35: error: storage class specified for parameter `_pthread_descr'
/usr/include/bits/pthreadtypes.h:52: error: storage class specified for parameter `pthread_attr_t'
/usr/include/bits/pthreadtypes.h:58: error: syntax error before "__extension__"
/usr/include/bits/pthreadtypes.h:66: error: syntax error before "_pthread_descr"
/usr/include/bits/pthreadtypes.h:68: error: `__pthread_cond_align_t' undeclared(first use in this function)
/usr/include/bits/pthreadtypes.h:68: error: (Each undeclared identifier is reported only once
/usr/include/bits/pthreadtypes.h:68: error: for each function it appears in.)
/usr/include/bits/pthreadtypes.h:68: confused by earlier errors, bailing out
make: *** [hash.o] Erreur 1


Désolé d'avoir autant à vous faire lire mais vous pourriez m'éclairer, s'il vous plaît??
Merci!
0
Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009 295
29 juil. 2005 à 13:59
make: *** [hash.o] Erreur 1 


il me semble que dès ici tu peux t'arreter.....
je suis pas spécialiste en programmation, donc je ne saurais pas te dire ce qui merde, mais ce qui est sur c'est que ca n'a pas été au bout de la compilation.....

Phiphi
0
neolistic Messages postés 93 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 10 juillet 2007 6
29 juil. 2005 à 15:36
Oui, la compilation s'arrete ici, c'est justement ce à quoi je veux remédier, comment résoudre le probleme pour continuer la compilation?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
29 juil. 2005 à 15:51
Salut Neolistic,

La version de Berkeley DB que tu essayes de compiler est très ancienne... est-ce volontaire ?

Il s'agit apparemment de la version 1.85 qui est la dernière release des versions 1 de Berkeley DB. Tu aurais moins de problèmes avec une version récente : http://www.sleepycat.com/download/db/

Si tu tiens à compiler ce vieux code (mais fonctionne-t-il vraiment sur un système récent...), il faut :

1. faire cd PORT/linux

2. Récupérer le patch proposé sur le site pour modifier le Makefile de Linux http://www.sleepycat.com/update/1.85/patch.185.html

wget "http://www.sleepycat.com/update/1.85/patch.1.1"

3. patcher le Makefile avec

patch Makefile patch.1.1

4. là.. lorsque tu tentes de compiler en faisant un "make" tu as les mêmes erreurs que celles que tu rapportes. La première erreur indique qu'à la ligne 106 du fichier "../../hash/hash.h", on tente de déclarer un champ "errno" alors qu'il s'agit d'une fonction. Du coup, à chaque fois que dans ../../hash/hash.c on tente d'accéder au champ "errno" de cette structure, celà génère une erreur de syntaxe

5. J'ai pu compiler en faisant les modifications suivantes :

ligne 106 de "../../hash/hash.h", tu remplaces "errno" par "myerrno"

lignes 508, 539, 556, 560, 577, 581 et 732 de "../../hash/hash.c", tu remplaces "hashp->errno" par "hashp->myerrno"

lignes 183 et 193 de ../../hash/ndbm.c, tu remplaces "hp->errno" par "hp->myerrno"

un "make" passe alors sans erreurs sur une Fedora Core 2, avec gcc 3.3.3, à l'exception d'un seul warning.


Dal
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
29 juil. 2005 à 18:47
Note bien que les difficultés liées à la compilation de cette librairie sont dues à son ancienneté.

Sur des sources récentes prévues pour être portables sous Linux, la modification du code source n'est normalement pas requise, et la génération du "Makefile" passe par un script "configure" et par une procédure du type de celle qui est mentionnée par Mamiemando.

Celà est possible grâce aux GNU autotools, qui font des merveilles pour faciliter la portabilité du code.

Voilà un peu de matière pour en savoir plus : http://sources.redhat.com/autobook/


Dal
0
neolistic Messages postés 93 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 10 juillet 2007 6
29 juil. 2005 à 22:17
ok, merci j'essairai ca demain, pour la version, l'histoire c'est que je voulais installer un jeu qui me demandais la gnome-libs qui me demandait db 1.85 ou db 2.x compatible 1.86 (ou qlq chose comme ca)

mais si ca se trouve la gnome-libs n'est meme pas la bonne et je me prend la tete pour des clous... j'ai pas trouvé le moyen d'être sur de savoir quel package télécharger

A+
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
2 août 2005 à 09:53
Salut neolistic,

je voulais installer un jeu qui me demandais la gnome-libs qui me demandait db 1.85 ou db 2.x compatible 1.86

Sauf si le jeu que tu veux installer date d'il y a 8-10 ans, il est probable que le package que tu as "trouvé" et qui dépend de db 1.85 ne soit pas le bon.

Lorsque tu installes un logiciel qui a des dépendances, la documentation de ce logiciel t'indique en général quelle version de la dépendance est demandée... tu n'installes pas au hasard.

Lorsque tu le peux, tu installes la version de cette dépendance qui est livrée avec ta distribution, ou fournie par l'éditeur de ta distribution. Tu auras moins de chances d'installer des éléments inadaptés (et de rendre ton système instable).

Tant que tu le peux aussi, utilise des rpm contenant ces éléments pré-compilés.

Ces précautions te permettront aussi de faciliter la mise à jour de ton système.


Dal
0
Ok c'est un vieille discussion mais comme je suis tombé dessus en ayant le même problème, ça peut servir à d'autres...

le makefile de Berkeley DB 1.85 contient des options incompatibles aujourd'hui ( -I. ), il faut changer la ligne suivante:
CL= ${CC} -c -D__DBINTERFACE_PRIVATE ${OORG} -I. -Iinclude

par:

CL= ${CC} -c -D__DBINTERFACE_PRIVATE ${OORG} -Iinclude -I../../include

et à la fin du Makefile, remplacer les lignes par:
mktemp.o:
${CC} -c -O -Iinclude clib/mktemp.c
snprintf.o:
${CC} -c -O -Iinclude clib/snprintf.c


Thierry
0