Puncte:1

Compilarea unui program din sursă

drapel cn

Am o întrebare de bază referitoare la pachete și posibilitatea de a construi un program în Ubuntu. Ca să fie concret: eu folosesc Ubuntu 18.04.6 LTS.Să spunem că vreau să construiesc Okular din sursă pentru a avea cele mai recente caracteristici [ okular din sursă ]. Există câteva întrebări legate de acest subiect, vezi Î1, Q2, dar ceea ce aș dori să știu este: când încep să descarc dependențele necesare (de exemplu, am nevoie cmake_3.18.4-2_amd64.deb, iar acest lucru are nevoie libarchive13_3.4.3-2+b1_amd64.deb și așa mai departe...) cum pot verifica dacă, la un moment dat, am nevoie de un nucleu mai nou? Pentru că acesta ar fi finalul final, nu (deoarece în acest moment ar trebui să instalez direct un sistem de operare niciodată)? Nu sunt sigur în ce măsură apt face treaba asta. Face aptieșirea lui

 ...
     cmake : Depinde: libarchive13 (>= 3.3.3) dar 3.2.2-3.1ubuntu0.7 urmează să fie instalat
     Depinde: libgcc-s1 (>= 3.0) dar nu este instalabil
     Depinde: libjsoncpp24 (>= 1.9.4) dar nu este instalabil
     Depinde: libstdc++6 (>= 9) dar urmează să fie instalat 8.4.0-1ubuntu1~18.04

 ...

înseamnă exact asta, și anume că este fără speranță să instalezi toate dependențele necesare pentru a reuși? Nu mă tem de multă muncă, dar aș dori să știu dinainte dacă este o pierdere de timp să construiesc singur pachetul. Care este cea mai bună procedură aici (cu excepția unei actualizări de sistem)?

Pilot6 avatar
drapel cn
De ce descărcați manual pachetele7 Rulați `sudo apt install build-essential` și toate dependențele vor fi instalate. Sau instalați în închiriere `cmake`.
pawel_winzig avatar
drapel cn
@Pilot6: Această ieșire provine de la instalarea `cmake_3.18.4-2_amd64.deb`. Deci, ar trebui să procedez sau este fără speranță?
pawel_winzig avatar
drapel cn
@Pilot6: Și apropo, am instalat `build-essential`...
Pilot6 avatar
drapel cn
`sudo apt install cmake` Apt ar trebui să aibă grijă de dependențe.
pawel_winzig avatar
drapel cn
@Pilot6: Ei bine, desigur, acesta este ceva ce am făcut deja, iată rezultatul: `Următoarele pachete au dependențe neîndeplinite: cmake : Depinde: cmake-data (= 3.10.2-1ubuntu2.18.04.2) dar 3.18.4-2 urmează să fie instalat`
pawel_winzig avatar
drapel cn
Deci, revenind la întrebarea mea: Merită să continuați?
Pilot6 avatar
drapel cn
Probabil că ați descărcat și instalat manual o versiune greșită.
Pilot6 avatar
drapel cn
Eliminați `cmake` și instalați-l din nou.Versiunea 3.18 nu este pentru Ubuntu 18.04.
pawel_winzig avatar
drapel cn
Văd, unde pot verifica dacă este pentru Ubuntu 18.04 sau nu? Într-adevăr, am instalat 3.18 din depozitul Debian
user535733 avatar
drapel cn
Atunci când vă dezvăluiți cu diferite versiuni, este adesea util să folosiți un Container sau VM (sau în Python un venv) pentru a preveni ca toate versiunile ciudate să vă polueze sistemul de bază.
user535733 avatar
drapel cn
Din moment ce ați instalat build-essential, încercați `rmadison`. Exemplu: `rmadison cmake` vă va spune versiunile și versiunile corespunzătoare ale Ubuntu. `rmadison -u debian cmake` vă va spune același lucru pentru Debian.
pawel_winzig avatar
drapel cn
@user535733 `rmadison cmake` îmi spune că cea mai înaltă versiune de `cmake` pe care o pot avea pentru Ubuntu 18.04 este `3.10.2-1ubuntu2.18.04.2`. Deoarece CMake 3.16 sau o versiune ulterioară este necesară pentru versiunea Okular, nu există nicio modalitate de a o instala, nu?
user535733 avatar
drapel cn
Există aproape întotdeauna o cale. Dar îți spune că drumul anume nu va fi ușor. Până când ați actualizat dependențele, veți rula, în esență, 21.04 sau 21.10... și ajungerea acolo ar putea fi foarte urâtă. Poate că nu asta e calea pe care o vrei. Majoritatea documentației pentru construirea presupune că doriți un software actualizat, ceea ce înseamnă că aveți nevoie de dependențe actualizate.
pawel_winzig avatar
drapel cn
@user535733 Dar acesta este exact ideea. Ce îmi spune „calea nu va fi ușoară”? Poate eșua sau pur și simplu instalează o mulțime de dependențe? Această neclaritate este cea care este inutilă.
user535733 avatar
drapel cn
Este neclar pentru că nu am testat ceea ce faci. Ești în afara drumului marcat. Părerea mea este că îți vei distruge sistemul încercând să instalezi un software de ultimă generație într-un sistem vechi de 3 ani bazat pe Debian. Nu veți putea reconcilia toate conflictele de dependență pe care le veți crea. Cu toate acestea, nu am testat asta. S-ar putea să greșesc.
pawel_winzig avatar
drapel cn
@user535733 Întreb acest lucru deoarece mă gândesc la următorul scenariu: Să spunem că rulați un cluster pe Debian 10 unde nu este atât de simplu să actualizați sistemul de operare (timp de nefuncționare etc.). Când ar trebui să spun: Aici pot risca o compilație de la sursă pentru a obține o versiune mai nouă a unui pachet?
N0rbert avatar
drapel zw
Debian 10 este în afara subiectului aici. Pe Ubuntu, utilizați flatpak așa cum este descris în răspunsul de mai jos.
Puncte:2
drapel zw

Nu puteți compila software foarte nou pe un sistem nu prea vechi din cauza dependențelor. Instalarea manuală a noilor dependențe pe vechiul sistem o va rupe.

Ca alternativă nedăunătoare, puteți folosi Okular 21.08.2 flatpak de la KDE în schimb, pe Ubuntu 18.04 LTS. Instalează-l cu:

sudo add-apt-repository ppa:flatpak/stable
actualizare sudo apt
sudo apt install flatpak

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

flatpak instalează flathub org.kde.okular

Și pentru a începe folosiți

flatpak rulați org.kde.okular

sau găsiți pictograma relevantă în mediul desktop.

pawel_winzig avatar
drapel cn
Deci: flatpak sau snap? Cumva comentariul tău, N0rbert, a fost șters...
pawel_winzig avatar
drapel cn
...și pentru a-l porni: `flatpak run org.kde.okular`
Puncte:-1
drapel cn

KDE a rezolvat deja această problemă cu Okular Snap.

https://snapcraft.io/okular

Snap-ul este izolat din restul sistemului și se va actualiza automat ori de câte ori autorul (KDE) solicită o actualizare.

Snap-ul actual (versiunea 20.12.3) ar trebui să fie pe deplin compatibil cu sistemul dumneavoastră 18.04.

  • Pentru informații suplimentare: snap list okular
  • A instala: sudo snap install okular
  • Este independent de versiunile Ubuntu (sau Debian). Dacă descoperiți că snap-ul este învechit, pur și simplu dați ping direct la KDE -- ei sunt autorul și îl pot actualiza oricând.

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.