Możliwa duplikat:
Gdzie jest zainstalowany typowy program Linux
Jestem nowy w Linuksie i chcę zapytać trochę więcej o pakietach.
W systemie Windows pobieram .exe
plik i instaluję go. Podczas instalacji określam ścieżkę, w której chcę przechowywać tę aplikację. W tym folderze mam wszystkie pliki wymagane dla aplikacji.
Jednak gdy instaluję pakiet w systemie Linux za pomocą yum
lub apt-get
, nie wiem, gdzie pakiet jest zainstalowany i gdzie są przechowywane wymagane pliki dla tej aplikacji. Widziałem, że większość konfiguracji znajduje się w /etc
katalogu. Ale dlaczego Linux przechowuje wymagane pliki dla aplikacji w różnych katalogach?
Czy ktoś może mi powiedzieć, w jaki sposób pakiety są instalowane oraz gdzie i jak są przechowywane? A jeśli moje rozumienie zarządzania pakietami jest błędne, proszę mnie poprawić.
rpm
, możesz użyć,rpm -q --whatprovides
aby znaleźć nazwę pakietu dla określonego pliku, a następnierpm -q -a
dowiedzieć się, jakie pliki zainstalował pakiet.apt-get
, jeśli pakiet jest zainstalowany, użyjdpkg -L PKGNAME
, jeśli nie jest używanyapt-file list
.Odpowiedzi:
Wiele programów (pliki binarne / scripts) kończy się w
/bin
lub/usr/bin
z innymi częściami w różnych katalogach konfiguracyjnych (często w / poniżejetc
), jak już zaznaczył.Dla każdego konkretnego polecenia możesz sprawdzić whereis
i poda informacje o tym, gdzie można znaleźć to polecenie. Można również spróbować które
Również ta grafika i objaśnienia / przykłady mogą być pomocne.
źródło
/etc/
, ale posiadanie jednej centralnej lokalizacji dla plików konfiguracyjnych bardzo ułatwia ich tworzenie kopii zapasowych. (Wyobraź sobie tworzenie kopii zapasowych plików konfiguracyjnych systemu w systemie Windows, gdzie są one rozproszone po całym systemie plików i rejestrze ...)W systemie Windows, szczególnie w starszych wersjach, programy do przechowywania plików konfiguracyjnych i nietrwałych danych często znajdowały się w ich
C:\Program Files
katalogu. Wynika to ze sposobu, w jaki programy były zwykle instalowane i uruchamiane w systemie DOS dla jednego użytkownika, nie podłączonego do sieci i bez uprawnień dostępu do plików.Z punktu widzenia bezpieczeństwa jest to zły pomysł. Miejsca, w których funkcjonuje kod wykonywalny, powinny być oddzielone od modyfikowalnych danych. W ten sposób łatwiej jest zastosować odpowiednie uprawnienia do plików, aby zapobiec modyfikacji zainstalowanych plików binarnych przez nieautoryzowanych użytkowników. Podobnie katalogi bibliotek, które mogą być aktualizowane osobno od głównych plików wykonywalnych, również powinny znajdować się w osobnym katalogu.
Wraz z pojawieniem się irytujących systemów Vista i UAC ta tradycja w końcu zaczyna poważnie tracić przyczepność.
UNIX i Linux, będąc znacznie wcześniejszym systemem dla wielu użytkowników, miały tendencję do oddzielania katalogów wykonywalnych od innych katalogów znacznie wcześniej, ponieważ konieczne było uniemożliwienie użytkownikom innym niż root modyfikowania zainstalowanych plików binarnych. Jest to również powód,
/usr
a nawet/sbin
czasem oddzielne partycje - szczególnie świadomy bezpieczeństwa administrator może montować te partycje tylko do odczytu i ponownie montować je w trybie odczytu / zapisu, gdy trzeba zainstalować / odinstalować.Pakiety są zwykle instalowane z menedżera pakietów. Istnieją różne menedżery pakietów, takie jak
aptitude
(Debian i dystrybucje pochodne),yum
(Redhat i dystrybucje pochodne),pacman
(zapomnij, która to dystrybucja to ...) i inne.Menedżer pakietów pozwala przeglądać repozytoria, pobierać, instalować, wyszukiwać i usuwać oprogramowanie, podobnie jak wyrafinowany (i bezpłatny) „sklep z aplikacjami”. Przyjmuje odpowiedzialność za dbanie o zależności i śledzenie tego, co jest obecnie zainstalowane.
Zwykle menedżer pakietów zezwala również na te same operacje na pakiecie, który pobrałeś ręcznie poza repozytoriami. Narzędzia są również dostępne, jeśli chcesz tworzyć własne na podstawie oprogramowania, które sam stworzyłeś lub skompilowałeś.
Ponieważ sam pakiet NIE jest plikiem wykonywalnym, nie musisz uruchamiać niezaufanego pliku wykonywalnego, którego tak naprawdę nie wiesz, co on robi. (Windows wreszcie pojawia się z aktualizacjami, dystrybuując
.msu
zamiast zamiast.exe
- ale.msi
już od jakiegoś czasu ...)źródło
Możesz uzyskać listę plików
yum
instalowanych przez dany pakiet, wykonując:Następnie możesz uruchomić go w następujący sposób:
(Oczywiście zamień „yum-utils” w tym drugim na nazwę pakietu, którego listę plików chcesz zobaczyć.)
Dla
apt-get
, można użyć:źródło
Zwykle poniżej
/usr/bin
, choć zależy to od konkretnej instalowanej aplikacji lub biblioteki.źródło
W systemie Linux / Unix większość programów zwykle nie kończy się w jednym katalogu, ale różne jego części (pliki wykonywalne, pliki konfiguracyjne, pliki dziennika, dokumentacja, inne zasoby) są rozproszone w systemie plików - zwykle poprzez symlinkowanie. Artykuł w Wikipedii opisuje bardziej szczegółowo standardową strukturę katalogów w normalnej hierarchii systemu plików, pokazując różne katalogi i to, czego można się w nich znaleźć.
źródło
/opt
Katalog jest zarezerwowany dla systemu Windows, takich jak instalacjach, w których każdy ma swój własny pakiet drzewo katalogów. Nikt go nie używa. Nie jestem pewien dlaczego; może się zdarzyć, że dodawanie/opt/PACKAGE/bin
do niego przy$PATH
każdej instalacji pakietu jest zbyt denerwujące.źródło
/opt
wydaje się być najczęściej używany przez komercyjne / niewolne pakiety oprogramowania, takie jak MATLAB./opt
ale także LibreOffice 3.5, który zainstalowałem bezpośrednio z tego miejsca .Oprogramowanie w systemie Linux różni się nieco w paradygmacie od systemu Windows lub Mac. W nich plik wykonywalny i wszystkie jego pliki pomocnicze są instalowane w jednym folderze: Windows zwykle je trzyma
c:\Program Files\program name
, Apple w/Applications/program.app
. Pod Linuksem istnieje bardziej ... wspólna struktura. Pliki binarne są na ogół włączone/usr/bin
, konfiguracja ogólnosystemowa jest/etc
włączona, konfiguracja specyficzna dla użytkownika jest zwykle na~/.program
. Biblioteki są włączone, często/usr/lib
obsługują pliki (np. Dzieła sztuki)/usr/share/program
itp. Istnieje nawet standard sugerujący, gdzie należy się udać.Programy są zazwyczaj instalowane przez menedżerów pakietów,
rpm
orazdpkg
; są one automatycznie wyszukiwane i wyszukiwane (w tym zarządzanie zależnościami) odpowiednio przezyum
iaptitude
/apt-get
. Na bardziej technicznym poziomie, pakiety to proste skompresowane pliki (uważam, że rpm i deb to oba.tar.gz
). Archiwa te zawierają kopię lustrzaną elementów systemu plików z katalogu głównego, do którego trafiają pliki (np. Plik, w którym ma zostać zainstalowany,/usr/bin/program
będzie znajdował się wusr/bin/program
odpowiednim folderze w pakiecie.Aby znaleźć informacje o konkretnym pakiecie, użyj menedżera pakietów dla swojego systemu, jak wyjaśnili inni tutaj.
źródło
Hier podręcznika może zapewnić pewne spostrzeżenia
źródło