Apt-get zajmuje dużo czasu na aktualizację \ upgrade

15

W mojej sieci służbowej wszelkie komendy apt-get (lub aptitude) zajmują bardzo dużo czasu, wygląda na to, że administratorzy zablokowali dla niej jakiś port (z nieznanego powodu). Na przykład

sudo apt-get update

Zajmują mi to 2 dni i wszystko, co dostaję - bardzo długa lista odpowiedzi, takich jak

Get: 36 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]
Get: 37 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]
Get: 38 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]
Get: 39 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]
Get: 40 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]

Ta sama sytuacja to próbuję pobrać oprogramowanie

Get:1 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]
Get:2 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]
Get:3 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]
Get:4 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]
Get:5 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]

Czy jest coś, co mogę zrobić, aby zmienić port na apt-get lub coś innego

ShockwaveNN
źródło

Odpowiedzi:

11

Moje serwery ubuntu zawsze były bardzo szybkie w apt-getaktualizacjach i uaktualnieniach. Zazwyczaj linie na ekranie były zbyt szybkie, aby je zobaczyć. Nagle nagle zwolnili do pełzania z dnia na dzień.

Robił to IPv6.

Znalazłem następujące rozwiązanie:

sudo nano /etc/gai.conf

Odkomentuj następujący wiersz:

precedence ::ffff:0:0/96 100

Dla mnie była to linia 54 (upewnij się, że nie odrzucisz tej, która kończy się na 10).

Zapisz i wyjdź.

sudo nano /etc/apt/apt.conf.d/99force-ipv4 # (this is to make a new file)

Dodaj następujący wiersz do nowego pliku:

Aquire::ForceIPv4 false;

Zapisz i wyjdź.

Ryan
źródło
3
Nie jestem fanem tych odpowiedzi, ponieważ nie ma rzeczywistego wyjaśnienia, dlaczego jest to rozwiązanie.
Gray Adams,
1
@GrayAdams Jeśli masz wyjaśnienie, możesz je dodać. Nie mam nic. Chciałbym to zrobić :( Właśnie wiedziałem, co dla mnie działa, więc opublikowałem to, aby inni mogli rozwiązać problem, przynajmniej tymczasowo.
Ryan
3
sudo nano /etc/gai.conf

dodaj / odkomentuj te linie:

reload yes
precedence ::ffff:0:0/96 100
precedence ::/0 10

kiedy zaktualizowałem powyższymi liniami, mój /etc/gai.confproblem został rozwiązany i został użyty ipv4bezpośrednio zamiast ipv6i szybko zainstalowany.

venkatesh
źródło
TAK!!!!! Dziękuję Ci!!! Nie miałem pojęcia, co tu się dzieje. Musiałem czekać 10 minut na każdą instalację apt-get.
Jacko,
1

Sugeruję, aby rozpocząć od zmierzenia typowej przepustowości Internetu / sieci za pomocą jednej z witryn sprawdzających wydajność. Jedną z możliwości jest www.speedtest.net . Możesz także użyć prostej wyszukiwarki Google, aby wyszukać inne witryny, których możesz użyć do przetestowania szybkości połączenia internetowego.

Jeśli testy wykazują, że problem nie jest ograniczeniem połączenia internetowego, następnym krokiem może być spojrzenie na odpowiedzi na to pytanie:
Jak mogę skłonić się do używania lustra blisko mnie lub wybrać szybsze lustro ?

Proponuję zacząć od wypróbowania najpopularniejszej odpowiedzi na to pytanie . Sprowadza się do dodania dwóch linii poniżej na górze /etc/apt/sources.list. Ma to zachęcić proces aktualizacji do automatycznego wybierania kopii dystrybucyjnej o lepszej wydajności.

deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse
  • Uwaga: powyższe linie są przeznaczone do użycia z Ubuntu 12.04 (Precise Pangolin) . W przypadku wcześniejszych wersji zastąp precisew dwóch wierszach powyżej odpowiednią nazwę kodową używanego wydania.

    Lucid(10.04), Maverick(10.10), Natty(11.04), Oneiric(11.10)

Jeśli to podejście nie pomaga lub po prostu nie jest czymś, co chcesz zrobić, możesz również rozważyć zezwolenie Menedżerowi aktualizacji na wybranie „ najszybszego ” lustra. Jest to opisane bardziej szczegółowo w innych odpowiedziach na pytanie, które podałem powyżej.

irracjonalny John
źródło
Mój Internet działa dobrze. Próbowałem wiele mirrorów - ale wynik jest taki sam, nie mogę pobrać niczego ze stron
ShockwaveNN
@ShockwaveNN Jeśli twój Internet działa dobrze, nie powinieneś mieć problemu z pobieraniem z większości serwerów lustrzanych. Nic nie różni się znacząco pod względem Internetu, co dzieje się podczas, powiedzmy, sudo apt-get updatei podczas korzystania z firefoxprzeglądarki. Czy próbowałeś uruchomić komputer z Live CD / USB i sudo apt-get updatesprawdzić, czy jest jakaś różnica? Jeśli tak, oznacza to, że coś jest nie tak z instalacją Ubuntu. Jeśli uzyskasz ten sam wynik, w tej chwili nie mam innych pomysłów.
irracjonalny John
0

Po pierwsze, 2 fakty:
apt-get domyślnie używa http (port 80) w standardowych dystrybucjach Linuksa.

apt-getzazwyczaj pobiera ~ 20 MB danych w celu aktualizacji list. Jeśli właśnie uruchomiłeś apt-get updatei uruchomiłeś go ponownie, pobiera tylko ~ 100 KB danych.
Jeśli więc możesz przeglądać sieć WWW (tj. Strony internetowe za pomocą przeglądarki) i korzystasz ze standardowych dystrybucji (nieprzystosowanych do korzystania z żadnego innego portu), administrator nie blokuje działania tego polecenia.
Problemem może być to, że żądania z twojego komputera na bieżące serwery używane do aktualizacji przez apt-get napotykają pewne problemy (tj. Może to być tylko problem pobierania).
Aby rozwiązać problem, moje sugestie (podczas korzystania z Ubuntu):

Otwórz update-manager-> kliknij ustawienia w lewym dolnym rogu -> kliknij pierwszą kartę oprogramowania ubuntu -> kliknij pole rozwijane obok opcji Pobierz z -> zmień serwer na miejsce bliższe Twojej lokalizacji, wybierając inne w lista. Sprawdź także protokół używany do aktualizacji. Powinien być http dla zwykłych użytkowników. -> Teraz uruchom sudo apt-get update lub użyj menedżera aktualizacji, aby sprawdzić dostępność aktualizacji. Teraz wszystko powinno działać dobrze. Jeśli coś nie działa nawet po tym, skomentuj tutaj.


Ponieważ to ci nie pomaga, wydaje się, że jest to problem polegający na gromadzeniu przestarzałych lub częściowych plików podczas próby aktualizacji.
Sugerowałbym, aby uruchomić te polecenia w terminalu:

sudo mv /var/cache/apt/archives/partial{,bakjune9}
sudo mv /var/lib/apt/lists{,bakjune9}

Te polecenia zmienią nazwy katalogów, w których przechowywane są pliki podczas apt-getpobierania ich podczas aktualizacji i aktualizacji. (Możesz zmienić nazwę z powrotem, jeśli coś pójdzie nie tak. Więc nie ma ryzyka pogorszenia sytuacji niż obecna)
Po tym uruchomieniu:

sudo apt-get update 

Pobierze około 20 MB danych.
Jeśli działa poprawnie, problem został rozwiązany.

Teraz powinieneś być w stanie uruchomić, sudo apt-get upgradeaby zainstalować aktualizacje.
Jeśli nie, skomentuj tutaj.

drake01
źródło
To nie pomogło, zmieniam serwer na inny kraj i sprawdzam, czy protokół to „http”, ale mam ten sam problem. Mogę również przeglądać Internet (z wyjątkiem niektórych witryn, takich jak youtube.com), i mogę przejść do archive.ubuntu.com/ubuntu w mojej przeglądarce i działa dobrze
ShockwaveNN
Dodałem kolejne kroki, które moim zdaniem powinny ci pomóc. Sprawdź, czy to działa.
drake01
Drugi wariant też nie działał. Jestem przekonany, że to jakiś problem z połączeniem, czy są jakieś sposoby na zdiagnozowanie mojego połączenia pod kątem problemów?
ShockwaveNN
Czy dodałeś wiele źródeł oprogramowania innych niż główne repozytoria? Jeśli masz kilkadziesiąt ppa, które są wyłączone lub porzucone lub naprawdę wolne, może to spowolnić aktualizację. Powinien także wyświetlać komunikat o błędzie za każdym razem, gdy nie można się z nim połączyć.
Marc
0

Biegać

sudo apt-get clean

przed uruchomieniem

sudo apt-get update
P4uB0rd4
źródło