Różnice między wieloma folderami lib w Linuksie

14

Jaka jest różnica między wieloma bibliotekami lib w systemie Linux? (/ lib, / usr / lib, / var / lib, / usr / share / lib itp.).

Wiem, że jest obsługiwany automatycznie przez synaptic przy każdej instalacji aplikacji, ale w przypadku, gdy chcę zostać programistą Linuksa, na pewno muszę wiedzieć, gdzie umieścić biblioteki aplikacji w systemie.

Andreas Wong
źródło

Odpowiedzi:

10

Zazwyczaj oprogramowanie zostanie zainstalowane w katalogu /, / / ​​usr lub / usr / local. Nazywa się to „przedrostkiem”. / jest zwykle zarezerwowany dla najbardziej krytycznych programów systemu operacyjnego. / usr / jest zarezerwowany do użytku przez menedżerów pakietów. Dlatego podczas pisania oprogramowania najbardziej grzeczne jest skonfigurowanie go tak, aby prefiks był / usr / local. Następnie można to zmienić, gdy ktoś zapakuje go do dystrybucji.

Zauważ, że nie mówię konkretnie o „lib”. Pod prefiksem istnieje kilka popularnych podkatalogów, z których lib jest tylko jednym z nich. „bin” jest używany dla plików wykonywalnych, „share” dla plików danych, „lib” dla bibliotek współdzielonych i tak dalej. Więc jeśli twój program jest biblioteką, możesz zainstalować go domyślnie do / usr / local / lib. Jeśli jest to normalny program, możesz zainstalować go w katalogu / usr / local / bin z plikami danych w katalogu / usr / local / share. Ważne jest, abyś zrobił to, aby prefiks był wybierany podczas kompilacji. Niektórzy wolą instalować w / usr niż w / usr / local lub odwrotnie.

Matthew Talbert
źródło
Więc chodzi o to, że lokalizacje są raczej wytyczną niż twardym limitem?
Andreas Wong,
1
Jest to wskazówka, ale NALEŻY jej przestrzegać, a wiele aplikacji oczekuje określonych plików w określonych miejscach.
Jim Deville,
@james point zrobione: D
Andreas Wong,
8

Istnieje również standard opisujący hierarchię systemu plików linux / unix. Można go znaleźć na stronie : http://www.pathname.com/fhs/ . Jest to przeznaczone głównie dla programistów dystrybucji, ale nie widzę powodu, dla którego użytkownik / programista nie powinien być tego świadomy.

Ahe
źródło
0

/ bin i / sbin

  • pliki binarne używane do administrowania systemem, a także w trybie pojedynczego użytkownika. Ich pliki bibliotek znajdują się w / lib.

/ usr / bin i / usr / sbin

  • zawierają nieistotne nieistotne pliki binarne używane przez wszystkich użytkowników i pliki binarne używane przez usługi sieciowe i wszystkie. Ich biblioteki są umieszczone w / usr / lib.

/ var / lib

  • zawierają pliki, które zachowują informacje o stanie uruchomionych programów lub wystąpieniach programów. użytkownik nie musi tego zmieniać.

/ usr / share / lib

  • Zawiera niezależne od architektury pliki danych.
RahulKrishnan RA
źródło