dpkg
- dpkg – główny backend systemu zarządzania pakietami Debiana (oraz Ubuntu, Linux Mint, Kali Linux i innych), obsługujący instalację, usuwanie, rozpakowywanie, konfigurację i zapytania dotyczące plików
.deb
. - Działa bezpośrednio na lokalnej bazie
/var/lib/dpkg/
i nie pobiera zależności (od tego są front‑endy, np.apt
,aptitude
). - Przydatny do instalacji pakietów spoza repozytorium, debugowania błędów zależności, tworzenia własnych paczek i skryptów post‑instalacyjnych.
Składnia
Dział zatytułowany „Składnia”dpkg [opcje] plik.deb # operacje na pliku pakietu
dpkg [opcje] <nazwa-pakietu> # operacje na zainstalowanym pakiecie
- Większość czynności wymaga uprawnień administratora (
sudo
). - Flagi rozpoczynające się
-i
,-r
,-P
,-L
wskazują tryb działania; można łączyć z parametrami (np.--force-confnew
).
Parametry
Dział zatytułowany „Parametry”Parametr | Opis |
---|---|
-i, --install <plik.deb> | Instaluje i konfiguruje pakiet z pliku. |
-r, --remove <pakiet> | Usuwa pakiet, pozostawiając pliki konfiguracyjne. |
-P, --purge <pakiet> | Usuwa pakiet wraz z plikami konfiguracyjnymi. |
-L, --listfiles <pakiet> | Wypisuje listę plików należących do zainstalowanego pakietu. |
-l, --list <wzorzec> | Listuje zainstalowane pakiety pasujące do wzorca glob. |
-s, --status <pakiet> | Pokazuje status (installed, half-configured, deinstalled). |
-I, --info <plik.deb> | Wyświetla metadane pakietu znajdującego się w pliku. |
-x, --extract <plik.deb> <katalog> | Rozpakowuje zawartość pakietu bez instalacji. |
--unpack <plik.deb> | Rozpakowuje, ale nie konfiguruje (często do debugu). |
--configure <pakiet> | Wykonuje skrypty postinst na wstępnie rozpakowanym pakiecie. |
-S, --search <plik> | Szuka, który pakiet dostarcza wskazany plik ścieżki. |
--force-* | Ignoruje określone błędy (np. --force-depends ). |
--audit | Wypisuje nieskonfigurowane lub częściowo usunięte pakiety. |
--get-selections | Eksport listy pakietów z ich stanem (do backupu). |
--set-selections | Import listy stanów pakietów (dpkg --set-selections < lista ). |
--merge-avail | Aktualizuje bazę dostępnych pakietów z pakietów Packages . |
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# 1. Instalacja lokalnego pakietu .debsudo dpkg -i google-chrome-stable_current_amd64.deb
# 2. Poprawienie zależności po instalacji .deb (typowy krok)sudo apt-get -f install # apt dobierze brakujące zależności
# 3. Rozpakowanie pakietu do katalogu ./tmpmkdir tmp && dpkg -x sample.deb tmp/
# 4. Sprawdzenie, który pakiet dostarcza /usr/bin/ls dpkg -S /usr/bin/ls #=> coreutils: /usr/bin/ls
# 5. Całkowite usunięcie (purge) wraz z konfiguracjąsudo dpkg -P apache2
- Baza pakietów: Pliki
status
,available
iinfo/*.list
w/var/lib/dpkg/
; uszkodzenie wymaga ręcznej naprawy lub kopii zapasowej. - Lock file: Równoległe instancje
dpkg
/apt
są blokowane przez/var/lib/dpkg/lock-frontend
; nie zabijaj procesu w trakcie instalacji. - Force options: Opcje
--force-*
mogą złamać system zależności – używaj jedynie przy świadomości konsekwencji. - Front‑endy:
apt
,aptitude
isynaptic
korzystają z dpkg, ale oferują rozwiązywanie zależności i repozytoria HTTP/HTTPS. - Kopia listy pakietów:
dpkg --get-selections
+dpkg --set-selections
to prosty sposób klonowania systemu na nową maszynę.
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd / Komunikat | Przyczyna | Rozwiązanie |
---|---|---|
dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' | Przerwana instalacja lub brak zasilania | Uruchom zalecane polecenie, następnie apt-get -f install . |
dependency problems – leaving unconfigured | Brakujące lub niezgodne zależności | Użyj sudo apt-get -f install lub zainstaluj brakujące pakiety. |
dpkg: error processing archive ... (--install): package architecture (i386) does not match system (amd64) | Paczka dla innej architektury | Pobierz wersję odpowiednią dla swojego systemu lub dodaj architekturę (dpkg --add-architecture ). |
Unable to lock the administration directory (/var/lib/dpkg/), is another process using it? | Inny proces apt/dpkg aktywny | Poczekaj aż zakończy, lub zabij bezpiecznie, usuń plik lock (ostateczność). |
Linki i źródła
Dział zatytułowany „Linki i źródła”- man dpkg – oficjalna dokumentacja.
- Debian Handbook – dpkg – szczegółowy opis.
- Debian Wiki – dpkg – FAQ i wskazówki.