Do czego służy apt-get --fix-missing i kiedy jest przydatny?

37

Ze strony podręcznika:

-m, --ignore-missing, --fix-missing
  Ignore missing packages; if packages cannot be retrieved or fail the integrity 
  check after retrieval (corrupted package files), hold back those packages and 
  handle the result. 

  Use of this option together with -f may produce an error in some situations. If a 
  package is selected for installation (particularly if it is mentioned on the 
  command line) and it could not be downloaded then it will be silently held back. 

 Configuration Item: APT::Get::Fix-Missing.

Jest to mylące:

  1. Jak „zignoruj ​​brak” i „napraw brak” może być synonimem tej samej opcji?
  2. Co w tym kontekście oznacza „powstrzymywanie”?
  3. Co oznacza „obsłużyć wynik”?

A w jakiej sytuacji jest to przydatne? Podczas próby zainstalowania pakietu spoza indeksu apt pojawia się następujący komunikat:

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Czy dwie sugestie ( apt-get update, apt-get install --fix-missing...) są w ogóle równoważne?

Steve Bennett
źródło
Tak, to dziwne. Zawsze myślałem, że --fix-missingto synonim -f. Jednak zachowanie powinno być takie samo jak Synaptic: spróbuj zaktualizować tylko pobrane pakiety.
Danatela

Odpowiedzi:

34

Ok, w kolejności:

  • (1) -m ignoruje brakujące pakiety lub naprawia brakujące pakiety (w przeciwieństwie do -f uszkodzonych pakietów). Te opcje są synonimami tej samej opcji. (Ponieważ naprawienie go ignoruje stąd, wymaga własnej dziwności :-))
  • (2-3) Podczas instalacji / aktualizacji z apt-get upgradelub z apt-get install somepackage, zwykle apt próbuje zaktualizować zależności. Oznacza to, że może się okazać, że niektóre pakiety potrzebują nowych lub zaktualizowanych wersji istniejących pakietów i tak dalej w kaskadzie zależności. Jeśli brakuje niektórych z tych pakietów lub nie powiedzie się kontrola integralności, wydaje się, że zawiesza ten pakiet i chce, abyś zajął się wynikiem, stosując metodę obsługi wymaganego pakietu, jeśli to możliwe. Często przestaje instalować ten pakiet.
  • (4) Wraz z apt-get updatepobraniem potrzebnych elementów do przebudowania listy zależności.
    Następnie możesz spróbować apt-get install --fix-missingponownie, mając nadzieję, że zaktualizowana lista sama rozwiąże problem.
    Czasami może to być bardzo przydatne, na przykład gdy dodajesz źródło pakietów w swoim komputerze /etc/atp/sources.listlub gdy pliki indeksu pakietów są aktualizowane.

Nie wszystkie programy, których można używać w systemie Ubuntu, pochodziły z oficjalnych repozytoriów Ubuntu i są aktualizowane tymi samymi wersjami - jest to rzadkie.

Co więcej, istnieje wiele powodów, dla których instalacja może zostać nagle przerwana (sygnał zabicia, brak zasilania, awaria sterownika graficznego ...) W takich sytuacjach apt-get updatemoże nie działać, więc najpierw musisz naprawić problem z apt-get install --fix-missinglub z niektóre dpkg polecenia.

Możesz zobaczyć apt-get install --fix-missingjako lekką i przyjazną wersję poleceń, takich jak dpkg-reconfigure --alllub dpkg.

Hastur
źródło
36
Zostało to mocno ocenione, ale ja, na przykład, nie rozumiem ani słowa.
LondonRob
-1

Poniższe kroki rozwiążą problem:

  • Zaktualizuj nameserver 8.8.8.8w/etc/resolve.conf
  • Biegać sudo apt-get update
Suresh
źródło