Chcę zainstalować program w systemie Linux i uruchomić go jako demona. (Team Speak 3 w tym przypadku, ale pytanie ma charakter ogólny). Nie ma pakietu, tylko binarne pliki binarne. Gdzie w strukturze katalogów powinienem umieścić taki program zgodnie z konwencją?
W Internecie odkryłem, że / opt jest dla „opcjonalnych aplikacji dodatków”, podczas gdy / usr jest dla „programów użytkownika”. Znalazłem jeden samouczek sugerujący / opt, podczas gdy drugi sugerował / usr.
Który z nich jest „bardziej poprawny”?
/usr/local
) LUB jak stworzyć dla niego własny pakiet.Odpowiedzi:
„Poprawniejsze” zależy od twojej dystrybucji. Powinieneś sprawdzić wytyczne dystrybucji, gdzie umieścić oprogramowanie, które nie jest zarządzane przez menedżera pakietów (często
/usr/local
) LUB jak stworzyć dla niego własny pakiet.Jak powiedziałeś, TeamSpeak po prostu umieścił wszystko w jednym folderze (i reorganizacja może nie być łatwa), tak
/opt/
jest prawdopodobnie najlepszy.(Ale na przykład w Archlinuxie menedżer pakietów może tam zainstalować, więc nadal chciałbym zainstalować PKGBUILD
/opt
.)Również dystrybucje zwykle starają się postępować zgodnie ze standardem hierarchii systemu plików , więc tutaj należy szukać bardziej ogólnej konwencji.
źródło
Jeśli będziesz kompilować własne oprogramowanie, ostatecznie kontrolujesz lokalizację instalacji. Zgodnie z konwencją oprogramowanie kompilowane i instalowane ręcznie (nie za pomocą menedżera pakietów, np. Apt, yum, pacman) jest instalowane w
/usr/local
. Niektóre pakiety (programy) utworzą wewnątrz podkatalog, w/usr/local
którym będą przechowywane wszystkie odpowiednie pliki, takie jak/usr/local/openssl
. Inne pakiety zainstalują niezbędne pliki w istniejących katalogach, takich jak/usr/local/sbin
i/usr/local/etc
. Są to po prostu domyślne lokalizacje, które można zmienić podczas kompilacji.Podczas kompilowania oprogramowania lokalizację instalacji można określić, korzystając z
--prefix=
opcji podczas działania./configure
. Zdecydowanie zaleca się sprawdzenie wszystkich dostępnych opcji pakietu poprzez uruchomienie$ ./configure --help | less
. Ponadto przeglądanie dokumentów INSTALL i README dostarczonych z pakietem jest dobrym pomysłem. Zazwyczaj zawierają instrukcje instalacji i informacje o zależnościach specyficzne dla pakietu.Należy również zauważyć, że chociaż możesz przechowywać oprogramowanie w dowolnym miejscu, zgodnie z FHS , kod źródłowy dla oprogramowania zainstalowanego lokalnie powinien być przechowywany w obszarze
/usr/local/src
Standaryzacja, w którym przechowujesz drzewa źródłowe, pozwoli ci łatwo zlokalizować drzewo, jeśli chcesz skopiować zapas plik konfiguracyjny lub binarny. Mimo że niektóre pakiety go używają, kodu źródłowego nie należy przechowywać,/usr/src
ponieważ jest on przeznaczony dla oprogramowania systemowego, takiego jak jądro.Wreszcie musisz upewnić się, że miejsce instalacji jest uwzględnione w twoim
$PATH
. Jeśli zdecydujesz się zainstalować pakiet,/opt
ale nie ma go w$PATH
powłoce, nie znajdziesz plików wykonywalnych i będziesz musiał użyć bezwzględnej ścieżki, aby wywołać swoje programy. Oto kilka świetnych dyskusji z AU na temat konfiguracji twojego$PATH
Dodatkowe czytanie:
man hier
źródło
Linux Standard Base , a standard hierarchii systemu plików są prawdopodobnie standardy, gdzie i jak należy zainstalować oprogramowanie w systemie Linux i sugeruje umieszczenie oprogramowania, które nie są zawarte w dystrybucji albo w
/opt
lub/usr/local/
czy raczej w nim podkatalogi (/opt/<package> /opt/<provider> /usr/local/bin
).Najlepszą praktyką jest konwertowanie pobieranego oprogramowania na instalowalny pakiet oprogramowania natywny dla Twojej dystrybucji, na przykład formaty dpkg lub rpm. Ułatwi to raportowanie, aktualizację i czyste usuwanie oprogramowania.
źródło
/opt
i/usr/local/
były dwiema dostępnymi opcjami, ale potrzebował konkretnych informacji, z których jednej z nich skorzystać. To może być prawidłowa odpowiedź, jeśli zamiast tego twierdzi, że dwie lokalizacje są wymienne (chociaż kwestionowałbym, że w takim przypadku byłaby to prawidłowa odpowiedź).Pliki binarne przechodzą do
bin
folderu według wspólnych konwencji. To, jak zorganizujesz strukturę pakietu, zależy od ciebie. Mogę pomyśleć,/opt/<prog_name>/
czy jest to tylko lista plików binarnych.źródło
Miałem to samo pytanie podczas instalowania Eclipse za pomocą instalatora Eclipse.
Zauważyłem, że Gimp, Perl i Vim są zainstalowane w
/usr/share
folderze i postanowiłem je tam zainstalować.źródło
Istnieją dwa sposoby instalowania programów w zależności od sposobu ich pakowania.
Przez menedżera oprogramowania (apt, synaptic, Gdebi itp.) - program ma postać pakietu, zwykle .deb lub rpm. Menedżerowie oprogramowania w większości przypadków obsługują zależności i zwykle instalują pliki binarne
/usr/bin
, pliki konfiguracyjne/etc
i tak dalej. Zwykle mogą też utworzyć plik konfiguracyjny programu w domu~/.foo
. Jeśli możesz edytować ten plik, możesz w ten sposób łatwo zmienić ustawienia swojej sesji. Po usunięciu pakietu menedżer znajdzie wszystkie pliki i usunie je czysto (zapisał wszystkie lokalizacje w specjalnym pliku tekstowym). Ale może zachować niektóre pliki konfiguracyjne, na przykład ten w folderze domowym.Pobierasz program (zwykle skompresowany) w postaci wstępnie skompilowanych plików binarnych dla swojej architektury. Plik wykonywalny programu znajduje się zwykle w jednym folderze obok innych plików (dynamicznie linkowanych bibliotek itp.) Cały ten folder można skopiować, z uprawnieniami administratora, do
/opt
lub/usr/bin
i, jeśli pozwalają na to uprawnienia, może być używany przez dowolnego użytkownika. Sam umieszczam foldery z plikami binarnymi w moim folderze domowym~/bin
. Teraz powinieneś być w stanie uruchomić program, wywołując jego plik bin.źródło