J'essayais de compiler la dernière version de 'tar ‘ (version 1.28) à partir des sources. Le ./configure le script s'est terminé avec un message d'erreur tel que "erreur :vous ne devez pas exécuter configure en tant que root “. Comme suggéré dans l'erreur, j'ai quitté 'root ' utilisateur et exécuté le configure script en tant qu'utilisateur non privilégié. L'erreur s'est produite, mais pendant make ", la compilation s'est terminée avec un message d'erreur sous la forme "Erreur naine :version naine trouvée 4", ce lecteur ne gère que les informations de la version 2 ‘. J'ai cherché la solution sur Google, mais rien n'a fonctionné.
Ci-dessous le message d'erreur complet :
# ./configure
La commande ci-dessus s'est déroulée sans aucune erreur. Vous trouverez ci-dessous le message d'erreur pendant "make".
# make :::::::::::::::::::: /usr/bin/ld: Dwarf Error: found dwarf version '4', this reader only handles version 2 information. ../gnu/libgnu.a(argp-fmtstream.o): In function `realpath': argp-fmtstream.c:(.text+0x0): multiple definition of `realpath' rmt.o:rmt.c:(.text+0x5d0): first defined here ../gnu/libgnu.a(argp-fmtstream.o): In function `ptsname_r': argp-fmtstream.c:(.text+0x10): multiple definition of `ptsname_r' rmt.o:rmt.c:(.text+0x5e0): first defined here ../gnu/libgnu.a(argp-fmtstream.o): In function `wctomb': argp-fmtstream.c:(.text+0x20): multiple definition of `wctomb' rmt.o:rmt.c:(.text+0x5f0): first defined here ../gnu/libgnu.a(argp-fmtstream.o): In function `mbstowcs': argp-fmtstream.c:(.text+0x30): multiple definition of `mbstowcs' rmt.o:rmt.c:(.text+0x600): first defined here ::::::::::::::::::::::::::::
Pouvez-vous m'aider à résoudre cette erreur ?
Solution :
Vous pouvez dire au compilateur via CFLAGS ne pas émettre de DWARF4 infos avec '-gdwarf-2 -gstrict-dwarf ‘
Définissez CFLAGS comme ci-dessous :
# export CFLAGS='-gdwarf-2 -gstrict-dwarf'
Nettoyez la version précédente comme ci-dessous :
# make clean
Exécutez à nouveau le script ./configure :
# ./ configure
Fabriquer :
# make
Installer :
# sudo make install
$ /usr/local/bin/tar --version tar (GNU tar) 1.28
Maintenant, le 'tar' est installé avec succès.