Do czego służy dpkg?

21

Moje pytanie jest proste - chcę wiedzieć więcej o dpkg - co to robi?

rɑːdʒɑ
źródło
Zostało to edytowane co najmniej dwukrotnie, aby poprawić przejrzystość - w obecnym stanie warto być otwartym (pod warunkiem, że nie jest duplikatem), ponieważ wygenerowało co najmniej jedną dobrą odpowiedź.
belacqua,
1
powinieneś najpierw odwiedzić: en.wikipedia.org/wiki/Dpkg
Pandya

Odpowiedzi:

17

Jak już powiedziano, dpkgto niskopoziomowe narzędzie systemowe do wyodrębniania, analizowania, rozpakowywania i instalowania lub usuwania plików .deb. Jednak lepiej jest używać Software Centrelub Gdebiinstalować lub usuwać pliki .deb uzyskane z innych źródeł, ponieważ te dwa programy mają rozwiązywanie zależności.

Jednak nie wyjaśniono anatomii aktualizacji przy użyciu dpkgi apt-get. Jeśli, na przykład, wzywamy apt-getdo instalacji cheese, drzewo zależności jest analizowane i pobierane są niezbędne pliki apt-get, które następnie przekazują je w dpkgcelu wyodrębnienia, analizy i instalacji we właściwych lokalizacjach i skonfigurowania ich zgodnie ze znajdującymi się w nich skryptami.

Skrypty odczytywane dpkgwewnątrz każdego pliku .deb są ważne, ponieważ dostarczają programowi informacji dotyczących instalacji, usuwania i konfiguracji pakietów. Stąd, kiedy zaglądasz do /var/log/dpkg.logśrodka, pojawia się wiele szczegółowych informacji na temat „wyzwalaczy” i pakietów przechodzących przez różne etapy rozpakowywania i konfiguracji. Na swoim blogu Raphael Hertzog (który jest kluczowym deweloperem i opiekunem dpkgpakietu Debian ) wyjaśnia więcej o wyzwalaczach dpkg oraz o sposobie dpkgkontroli i konfiguracji pakietów.

Przechodzimy teraz do sedna tego, co dpkgrobi; fachowo obsługuje pakiety Debiana, a nie ich zależności. Za pomocą dpkg-deb, na przykład, możesz wykonywać różne czynności podczas analizy i ręcznego rozpakowywania plików z archiwów .deb; zobacz man dpkg-debdalsze informacje.

Status każdego pakietu jest wymieniony w pozycji /var/lib/dpkg/status, za pomocą której można grepsprawdzić konkretny pakiet. Dpkgmożna również wywołać w celu zmiany konfiguracji określonych pakietów, które zostały skonfigurowane (patrz man dpkg-reconfigure):

sudo dpkg-reconfigure <package>

Lub wykonać konfigurację wszystkich nieskonfigurowanych pakietów, jeśli wystąpił problem z aktualizacją, a konfiguracja niektórych pakietów jest nadal w toku:

sudo dpkg --configure -a

Świetny samouczek, który koncentruje się na dpkgi apt-get, patrz rozdziały 5 i 6 Podręcznika Debiana , który jest najlepszą dostępną dyskusją. Wejdź man dpkgdo terminalu lub przejrzyj strony Ubuntu online, aby zobaczyć wszystkie dostępne opcje, takie jak dpkg -lwyświetlanie listy aktualnie zainstalowanych pakietów.


źródło
4

dpkg to metoda wiersza poleceń do instalacji z .deb lub usuwania już zainstalowanych pakietów. Na przykład, jeśli masz plik .deb w swoim katalogu domowym, uruchomienie dpkg -i yourpackage.debspowoduje zainstalowanie tego pakietu. Uważam to za przydatne przynajmniej dla mnie, ponieważ czasami po kliknięciu pliku .deb ładuje ono Centrum oprogramowania Ubuntu, ale tak naprawdę nigdy go nie instaluje ani nie ma problemów.

nieznany
źródło
4

Jak zawsze, manpolecenie to świetne miejsce na rozpoczęcie.
man dpkgmoże dać ci wszystkie opcje, niemniej:

dpkg jest menedżerem pakietów dla systemów opartych na Debianie. Może instalować, usuwać i budować pakiety, ale w przeciwieństwie do innych systemów zarządzania pakietami, nie może automatycznie pobierać i instalować pakietów oraz ich zależności.

Zasadniczo jest to apt-get bez rozwiązywania zależności i służy do instalowania plików .deb.

Ostrzegam jednak: Odinstalowywanie pakietów przy użyciu dpkg w większości przypadków NIE jest zalecane. Lepiej jest użyć menedżera pakietów, który obsługuje zależności, aby zapewnić spójność systemu.

Na przykład używając dpkg -r zipmożesz usunąć pakiet zip, ale wszystkie pakiety, które od niego zależą, będą nadal instalowane i mogą nie działać poprawnie.

Możesz przeczytać więcej na ten temat w przewodniku serwera i gdzie indziej .

LnxSlck
źródło