Puncte:0

Instalați bibliotecile de sistem 20.04 în 21.10

drapel ve

Mă confrunt cu o problemă ciudată. Dezvolt aplicații Qt/C++. Până ieri, mașina mea de dezvoltare și cele țintă rulau Ubuntu 20.04.

Ieri a trebuit să-mi actualizez mașina de dezvoltare la 21.10 pentru a rula un anumit software. Din păcate, acest lucru a rupt compatibilitatea executabilelor mele:

./MyProject: /lib/x86_64-linux-gnu/libc.so.6: versiunea `GLIBC_2.34' nu a fost găsită (solicitată de ./MyProject)
./MyProject: /lib/x86_64-linux-gnu/libc.so.6: versiunea `GLIBC_2.32' nu a fost găsită (solicitată de ./MyProject)
./MyProject: /lib/x86_64-linux-gnu/libstdc++.so.6: versiunea `GLIBCXX_3.4.29' nu a fost găsită (necesar de ./MyProject)

Nu pot:

  • actualizați mașina țintă
  • downgrade mașina mea de dezvoltare
  • folosesc o mașină virtuală (de fapt, aș putea, dar încerc cu fermitate să o evit)

așa că mă întreb dacă pot să instalez bibliotecile de sistem din 20.04 în 21.10 și să-i spun QtCreator să folosească acest sau acel set de librerii, ca pentru versiunile Qt.

ChanganAuto avatar
drapel us
*Frankensystems* nu sunt niciodată o idee bună...
David avatar
drapel cn
Nu dacă te aștepți să funcționeze. E timpul să folosești VM.
drapel ve
@David de ani de zile am folosit VM-uri, dar m-am săturat de ele... Vreau să folosesc instrumente care rulează în sistemul meu... Deci amândoi spuneți că este imposibil să rulați o aplicație pentru aceeași arhitectură, aceeași distribuție, dar doar o versiune anterioară/următoare?
mchid avatar
drapel bo
Există modalități prin care aplicația dvs. folosește o bibliotecă alternativă, astfel încât să nu distrugă sistemul, lăsând intacte bibliotecile implicite și apelând pur și simplu bibliotecile necesare atunci când rulați executabilul. [Acest răspuns pare să fie sigur](https://stackoverflow.com/a/47115598/3393576). **Nu** doriți să înlocuiți fișierele glibc actuale și, de asemenea, **nu** `exportați` în întregul vostru sistem.
mchid avatar
drapel bo
Doriți ca sistemul dvs. să ruleze bibliotecile glibc implicite, dar numai executabilul să folosească bibliotecile alternative.
Puncte:3
drapel cn

Actualizarea unei singure aplicații din bandă nu este niciodată o idee bună, mai ales în ceea ce privește glibc.

Pentru instrumente de construcție Cel mai bun modalitatea de a rezolva această problemă este utilizarea unui container Docker.

Retrogradarea este o opțiune, dar necesită o instalare curată, iar actualizarea la 21.10 nu este recomandată, deoarece 20.04 este distribuția reală bine acceptată și 21.10 este oricum aproape de EoL.

drapel ve
Vorbesti despre chestiile astea? https://www.docker.com/resources/what-container
Nicolas Formichella avatar
drapel cn
Da @Mark, docker este una dintre *modurile de urmat* pentru construirea lanțurilor de instrumente, deoarece puteți rula orice Ubuntu de la 14.04 (nerecomandat) până la beta de 22.04 LTS fără să vă atingeți sistemul
drapel ve
Dacă am înțeles bine, aceasta este doar pentru implementare. Nu pot depana, totuși.
Nicolas Formichella avatar
drapel cn
Da, exact @Mark, este pentru construirea lanțurilor de instrumente
Puncte:1
drapel zw

Țintirea eliberării provizorii este impracticabilă.
Pentru a ușura fluxul de lucru, trebuie să utilizați versiunea de asistență pe termen lung atât pe mașinile de dezvoltare, cât și pe mașinile client.

În prezent, cel mai recent LTS este 20.04 LTS, după cum știți deja.

De asemenea, puteți aștepta aprilie 2022 și apoi vizați ambele mașini pe 22.04 LTS. Acest lucru va permite utilizarea fără cusur a aplicației dvs. până în 2027.

drapel ve
Acesta ar fi cel mai potrivit pentru nevoile mele actuale. Oricum, am învățat cum funcționează Linux la greu.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.