Różnica między `dpkg -i` a` apt-get install`

16

Ze wszystkich innych pytań i odpowiedzi (takich jak: Jaka jest różnica między dpkg a aptitude / apt-get? ) Rozumiem, że apt-getjest to opakowanie dpkgi zapewnia zarządzanie zależnościami.

Zakładając, że instaluję coś, co nie ma żadnych zależności (lub są również instalowane w tym samym czasie), czy byłaby jakaś różnica między instalacją za pomocą apt-getvsdpkg

Np. (Trochę konkretnych różnic, których szukam)

  • Powiedzmy, że dpkgnie mogę pobrać skądś pkg, muszę pobrać przed rozpoczęciem instalacji, apt-getale zrobię to w moim imieniu.
  • dpkgnie skonfiguruje pkg, skopiuje tylko pliki. apt-getteż się skonfiguruje.

...

Kashyap
źródło

Odpowiedzi:

16

dpkg -iinstaluje *.debpakiety, to znaczy pakiety, które skądś już pobrałeś. Konfiguruje je również, ale nie pobiera / nie instaluje zależności. Musisz skądś pobrać pliki pakietu binarnego ręcznie. Pobranie pakietów z lokalizacji, które nie są repozytoriami, które Twoja dystrybucja domyślnie zawierała / włączyła, może również stanowić zagrożenie, ponieważ pakiety innych firm mogą mieć złośliwy charakter.


apt-get/aptitude install automatycznie uzyskuje dostęp do repozytoriów i indeksów PPA, które włączyłeś, wyszukuje najlepszego kandydata, pobiera go i wszystkie jego zależności oraz instaluje i konfiguruje je automatycznie.

Używając apt-get install -f, możesz automatycznie zainstalować brakujące zależności pakietów, np. Zainstalowane dpkg -i.

Bajt Dowódca
źródło
5
Krótka uwaga tutaj, apt-getmoże zainstalować zależności z pakietów zainstalowanych z dpkg -i. Uruchom, apt-get install -faby to osiągnąć.
noirscape
1
@ Ev1l0rd Prawidłowo, dodałem to do mojej odpowiedzi.
Bajt Dowódca
2
Inną ważną różnicą i przypadkiem użycia apt-getlub aptitudejest to, że pamiętają, czy pakiet został zainstalowany ręcznie (specjalnie zażądany), czy też został zainstalowany w celu spełnienia zależności. W ten sposób, gdy później usuniesz pakiet, będą mogli automatycznie usunąć (lub przynajmniej powiedzieć ci o) pakiety, które zostały „automatycznie zainstalowane i nie są już wymagane”. Jeśli zainstalowałeś każdy pakiet dpkg, musisz pamiętać i ręcznie usunąć nie tylko swój pakiet, ale wszystkie jego zależności (zakładając, że nic innego od nich nie zależy).
Benjamin Staton,
1
@BenjaminStaton Cóż, ponieważ dpkg -inie zależy na zależnościach, wszystko, co jest z nim zainstalowane, jest oczywiście instalowane „ręcznie”.
Bajt Dowódca