Puncte:0

Unde se instalează software-ul pe Linux? Care este diferența dintre /opt și /usr?

drapel us

Aș dori să clarific filozofia de instalare a aplicației software și a bibliotecilor și cele mai bune practici în Linux.Din înțelegerea mea din Filesystem Hierarchy Standard (FHS), software-ul nou trebuie instalat în /opt și asta face managerul de pachete. Dar, managerul de pachete instalează și aplicații software în directorul /use/local sau doar software de bibliotecă? De exemplu, am instalat biblioteca Eigen c++, care este o bibliotecă bazată pe fișiere antet, folosind:

sudo apt install libeigen3-dev

Am găsit fișiere Eigen în /usr/include. Dar, după citirea documentelor CMake, când dezvolt biblioteci C++, ar trebui să-mi configurez CMake să le instaleze în /usr/local (Aceasta este valoarea implicită pentru CMAKE_INSTALL_PREFIX)? Acest lucru ridică întrebarea, de ce a fost instalat Eigen în /usr/include în loc de /usr/local/include? Nu sunt directoarele /usr/bit /usr/include pentru aplicații de sistem precum comenzile ls și cat?

Mai mult, care este diferența dintre bibliotecile salvate în /usr/local și /usr/share?

Multumesc anticipat pentru ajutor. Sper să înțeleg clar cele mai bune practici în instalarea aplicațiilor și a software-ului de bibliotecă în Linux.

Rob avatar
drapel in
Rob
Cred cu umilință că nu există un singur răspuns la întrebare, așa că de ex. dacă spui $ whereis firefox >răspunsul va arăta cam așa: firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/share/man/man1/firefox.1.gz și astfel simplificați lucrurile pe care le faci: $ care firefox și rezultatul va fi: /usr/bin/firefox . Deci înjunghierea ta este OK, dar nu definitivă. Pachetele ar trebui să aibă întotdeauna propriile intrări specifice și ar trebui să fie păstrate singure ;-) Nu există nicio lege care să prescrie ce folder și așa mai departe.
waltinator avatar
drapel it
Citiți `man hier`.
user535733 avatar
drapel cn
„*software-ul nou trebuie să fie instalat în /opt*” este inexact. /opt este doar una dintre numeroasele locații posibile care sunt compatibile cu FHS.
Puncte:6
drapel cn

/opta/ este utilizat pentru aplicații terță parte care oferă o minge de gudron de extras. În general, software-ul este complet configurat cu permisiunile corecte și primiți o instrucțiune pentru a copia un serviciu în sistem pentru a-l activa. Mysql, Apache, Jasperserver oferă toate instalări alternative.

/opta/ nu este niciodată folosit de sistemul în sine pentru a evita conflictele.

Când software-ul este instalat în /opta/ ai tendința de a-l instala cu un număr de versiune în numele directorului, astfel încât să poți instala mai mult de 1 versiune și să folosești un link simbolic pentru cea activă. În acest fel, puteți instala Mysql v8 pe un sistem care încă folosește v5, testați aplicația înainte de a vă angaja la următoarea versiune Ubuntu.

/usr/ face parte dintr-un Linux implicit și este folosit pentru a stoca părți ale unei instalări prin managerul de pachete al sistemului respectiv. Pentru a evita duplicatele (ceva cu care Windows era afectat în versiunile mai vechi) software-ul Linux în directoare, un grup mare de creatori au convenit. Un alt avantaj este că software-ul poate fi mai mic, deoarece nu trebuie să furnizați biblioteci împreună cu software-ul dvs.

Ahmad Abuaish avatar
drapel us
Bună @Rinzwind, Multumesc mult pentru raspunsul detaliat. Răspunsul dumneavoastră m-a ajutat să înțeleg scopul lui `/opt`. De asemenea, am săpat mai mult în FHS și am înțeles utilizarea corectă a lui `/usr/local`. Software-ul care este instalat local ar trebui să fie instalat în `/usr/local`, iar software-ul instalat de managerul de pachete va fi instalat în `/usr`. Deci, în CMakeLists-le mele, trebuie să folosesc `/usr/local/lib` și `/usr/local/include` ca destinație. Mulțumesc din nou, @Rinzwind, pentru răspunsul tău detaliat.

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.