Meniu

libstdc++ - erori si remedii in Gentoo

Acest document prezinta erorile (mai ales intalnite de cei care fac instalarea din stage 3) legate de libstdc++.la - acest tutorial este o traducere a libstdc++.la: No such file or directory - errors and tips de pe http://forums.gentoo.org/ din sectiunea Documentation, Tips & Tricks

Ma gandeam ca as putea contribui cu un post util pentru ca, se pare ca din niste motive ciudate, exista niste probleme care nu vor disparea si poate in felul asta se va rezolva problema aparuta. Bineinteles, cititi inainte si FAQ-ul lui kallemej deoarece descrie toti pasii (de fapt, ambii ) necesari rezolvarii problemei. Nu imi place sa revin asupra acestei probleme, dar cred ca ceea ce lipseste celuilalt thread este vizibilitatea si, introducand cateva cuvinte cheie in acest post, sper sa il pot face mai usor de gasit decat celelalte.

Acestia sunt pasii pentru cea mai simpla solutie, asa ca sa-i dam drumul - Cum poate arata eroarea in cauza:

grep: /usr/lib/gcc/i686-pc-linux-gnu/3.4.3/libstdc++.la: No such file or directory -> /usr/${ERROR_ROOT_DIRECTORY}/${CHOST}/${GCC_VERSION}/libstdc++.la

Comanda ce urmeaza sa fie aratata reprezinta versiunea 'generalizata' a ei, ea indicand sintaxa comenzii ce urmeaza a fi rulate ca root

fix_libtool_files.sh ${GCC_VERSION}

Daca mai exista probleme (cel mai probabil datorate unei alte arhitecturi, asa ca mesajul de eroare va aparea cu i386-pc-linux-gnu in loc de i686-pc-linux-gnu) si ati citit sfatul lui kallemej despre rezolvarea problemei cu arhitectura (vedeti FAQ-ul de mai sus), asigurati-va ca nu ati stricat/modificat variabilele CHOST si CFLAGS alegand combinatii necorespunzatoare pentru -march sau -mcpu. Asigurati-va, de asemenea, ca ati ales tarball-ul stage-ului corespunzator si care sa se potriveasca cu arhitectura. Vedeti manualul de instalare pentru mai multe detalii despre configurarea corecta.

Alte solutii posibile:

1) Incercati sa stergeti ~x86 (sau poate ~amd64 ? ) daca aveti asa ceva in fisierul /etc/make.conf in dreptul variabilei ACCEPT_KEYWORDS.
2) Aici gasiti un raport al unui bug pe care s-ar putea sa il aveti daca ati dat emerge la ultimul gcc 3.4.3 (versiunea curenta: 3.4.3.20050110): http://bugs.gentoo.org/show_bug.cgi?id=84324
3) Daca aveti o problema legata de versiune care tot reapare (de ex. 3.4.3.3.4.3...etc) dupa ce rulati fix_libtool_files.sh, cautati aici sugestii despre cum sa remediati problema: http://forums.gentoo.org/viewtopic-t-279136.html
4) Daca tot nu ati reusit sa rezolvati problema, postati feedback/dati paste (in threadul specificat mai jos) cu rezultatul de la emerge --info, din ce stage ati facut instalarea si arhitectura
5) Ultima solutie: daca nu reusiti nicicum, faceti un symlink al directorului problema catre directorul cu gcc ca mai jos:
ln -sf /usr/lib/gcc/${CHOST} /usr/${ERROR_ROOT_DIRECTORY}/${CHOST}/${GCC_VERSION}
Doar inlocuiti valorile asa cum apar dupa eroare de compilare. Nu incurajez folosirea acestei solutii decat dupa epuizarea tuturor celorlalte deoarece echivaleaza cu folosirea analgezicelor care nu rezolva problema, doar o amana temporar.

Nota: va trebui sa restartati emerge-ul (emerge --resume merge bine in acest caz).

De asemenea, unii au semnalat ca au vazut versiuni MULT mai lungi decat "3.4.3" (nume de profile gcc intregi etc.), asa ca s-ar putea sa fie necesara folosirea a ceva de genul "gcc-XXXXXXXXXXX" in loc de "3.4.3" pentru variabila '${GCC_VERSION}'.

Mai mult, daca sunteti unul dintre cei care au o problema cu modificarea variabilei CHOST (de exemplu, erori i386-pc-linux-gnu cand folositi un profil (de compilator) i686-pc-linux-gnu), atunci vedeti solutia lui dirtyepic care poate rezolva problema (sau nu). Mai multe detalii: http://forums.gentoo.org/viewtopic-t-321340.html

Sfaturi pentru mentenanta toolchain-ului (pachetele care permit compilarea celorlalte pachete din sistem) : Asa cum am mentionat anterior, am foarte putine probleme cu chestia asta si mie imi merge destul de stabil cu pachetele care le am (gcc 3.4.3, ultimul glibc, precum si unele pachete unstable), avand in vedere ca reconstruiesc toolchainul cu bootstrap, apoi system si in final rebuild world.

Deci eu sugerez ca de fiecare data cand va reinnoiti gcc-ul este sa faceti ceea ce s-a spus mai sus sau, cum sugereaza kallemej in FAQ-ul sau, dar folositi versiunea anterioara de gcc cu fix_libtool_files.sh si/sau folositi versiunea curenta daca faceti upgrade de la 3.4.3 la 3.4.3-r1 sau ceva asemanator, in felul urmator:

fix_libtool_files.sh 3.4.3

Desi pare nesemnificativ, acel -r1 poate crea probleme la compilarea unor pachete daca lucrurile are hardcoded necorespunzator.

De asemenea, daca upgradati glibc, va sugerez sa rulati

/usr/portage/scripts/bootstrap.sh && emerge -e system && emerge -e world

deoarece scade probabilitatea aparitiei unor incompatibilitati care tin de upgrade-ul glibc. Puteti folosi toolchainul favorit in locul celei de-a doua comenzi, deoarece multi au descoperit diverse script-uri care ii vor ajuta sa automatizeze procesul. (vedeti acest thread despre un script numit tcupdate). Stiu ca e oarecum redundant, dar se pare ca functioneaza pentru unii cand alte solutii esueaza.

Bafta si poate compilarile se vor realiza fara probleme de acum incolo

emerge-uri pe care le-am vazut afectate de aceasta problema (scrieti-mi un mesaj privat daca aveti probleme si cu altele pentru a le putea adauga in lista):

Amarok
avifile
beep-media-player
gcc (emerge --newuse -uD world) # this is due to some flags changing in gcc
gedit
Gnome
GTK
imagemagick
imlib
KDE
PHP
xine-lib

FlorinM

Utilizator Linux - Solus OS, pasionat de calatorii.
  • | 2708 articole

Nici un comentariu inca. Fii primul!
  • powered by Verysign