Używam obrazu dokera jako podstawy dla mojego własnego rozwoju, który dodaje repozytorium backportów jessie do swojego pliku Docker i używa go do zainstalowania zależności. Ten obraz używa następującego polecenia, aby dodać repozytorium:
echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list
Problem polega na tym, że pobieranie pakietów z repozytorium backports kończy się teraz niepowodzeniem i pojawia się następujący błąd (poprzednio działał):
W: Failed to fetch
http://ftp.debian.org/debian/dists/jessie-backports/main/binary-amd64/Packages
404 Not Found
W: Failed to fetch
http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages
404 Not Found
Spojrzałem na ten serwer, a tych ścieżek rzeczywiście tam nie ma.
Próbowałem dowiedzieć się na stronie backports Debiana, czy to konkretne repozytorium powinno być nadal dostępne, i nie znalazłem żadnych oznak, że to było przestarzałe lub coś w tym rodzaju.
Czy to tymczasowy problem z repozytorium, czy też repozytorium jessie-backports nie jest już dostępne? A jeśli to nie jest tymczasowy problem, jakie opcje muszę użyć tego lub równoważnego repozytorium bez aktualizacji do nowszej stabilnej wersji Debiana?
źródło
Odpowiedzi:
Wheezy i Jessie zostały niedawno usunięte z sieci kopii dystrybucyjnych , więc jeśli chcesz kontynuować pobieranie backportów Jessie, musisz
archive.debian.org
zamiast tego użyć :(Sprawdzanie poprawności należy wyłączyć, ponieważ repozytorium nie jest już aktualizowane. Jessie
apt
nie obsługujecheck-valid-until
flagi, szczegółowe informacje znajdują się w odpowiedzi Inostii i podsumowaniu konfiguracji w dalszej części tej odpowiedzi).jessie-updates
Repozytorium został usunięty: wszystkie aktualizacje zostały połączone z głównym repozytorium i nie będzie żadnych dalszych aktualizacje niezwiązane z zabezpieczeniami. Więc wszelkie odniesienia dojessie-updates
wsources.list
lubsources.list.d
pliki muszą zostać usunięte. Aktualizacje zabezpieczeń będą nadal udostępniane , w architekturach obsługiwanych przez LTS, w repozytorium zabezpieczeń do 30 czerwca 2020 r.Ponieważ budujesz obraz kontenera, zdecydowanie zalecam oparcie go na Debian 9 (Stretch). Aby pozostać na Debian 8 (Jessie), twoje repozytoria powinny wyglądać tak
(bez
jessie-updates
repozytorium).Musisz także wyłączyć sprawdzanie ważności w
/etc/apt/apt.conf
(które będzie obowiązywać dla wszystkich repozytoriów):źródło
jessie-updates
już nie istnieje, więc powinieneś je całkowicie usunąć, a aktualizacje zabezpieczeń Jessie są nadal włączonesecurity.debian.org
.security.debian.org
, a nie za pośrednictwem backportów lub aktualizacji. Nie będzie więcej stabilnych aktualizacji innych niż LTS, więcjessie-updates
nie jest już przydatny w głównej sieci kopii dystrybucyjnych i nie będzie już więcej backportów, więc to samo dotyczyjessie-backports
.apt
polecenia wydają się również wymagać-o Acquire::Check-Valid-Until=false
(na unix.stackexchange.com/a/45973/186565 ), aby uniknąć błędu wygaśnięcia.apt.conf
powinno działać (zobacz moją aktualizację).Po wypróbowaniu rozwiązań sugerowanych przez @inostia i @Stephen Kitt wciąż otrzymywałem następujący błąd:
Doszedłem do wniosku, że można to rozwiązać, usuwając linię
deb http://deb.debian.org/debian jessie-updates main
z/etc/apt/sources.list
.Skończyłem z następującym fragmentem kodu w moim pliku Docker:
źródło
sed
polecenia, którased -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
Zdarzyło mi się to, że udostępniłem Vagrant box, który używał Debiana „Jessie”.
Po odpowiedzi Stephena Kittta przejście na archive.debian.org działało dla mnie, ale musiałem to dodać
/etc/apt/sources.list.d/jessie-backports.list
, zamiast do/etc/apt/sources.list
.Dodałem następujący wiersz do
provision.sh
:Wtedy też wystąpił błąd bezpieczeństwa
apt-get update
.W związku z tym, jak obejść problem „Plik Release wygasł” na lokalnym serwerze lustrzanym , naprawiono ten błąd:
Alternatywnie, aby trwale wyłączyć kontrole, dodaj to do
provision.sh
:Następnie możesz uruchomić wszystkie
apt
polecenia bez-o
flagi.źródło
Dla osób używających NodeJS ze starszymi podstawami obrazu dokera. Miałem kilka zamrożonych obrazów, które miały te starsze źródła do kompilacji dodatkowych bibliotek.
Kontekst: jeśli chciałeś zainstalować Pythona podczas kompilacji okna dokowanego, napotkałeś ten problem podczas kompilacji obrazu (w ciągu ostatnich 24 godzin), ponieważ nie udało mu się uzyskać zależności źródłowych podczas kompilacji okna dokowanego.
Wypróbowałem rekomendacje ścieżki archiwum w tym poście, ale nie mogłem przejść dalej niż 404. (również pochodzący z lokalizacji archive.debian.org na dzień dzisiejszy)
Rozwiązanie: Skończyłem z przejściem do najnowszej wersji kontenera węzła (która ma już wstępnie zainstalowane biblioteki Python Lib) i zaktualizowanie niektórych bibliotek Lib w pakiecie json (które teraz obejmują również biblioteki binarne, które kiedyś chciały Pythyona) sprawiły, że problem stał się przestarzały .
Ostatecznie aktualizacja obrazu podstawowego stosu kontenerów (węzeł: najnowszy) wydaje się być najprostszą ścieżką do rozwiązania.
Uważaj na nieaktualne stosy obrazów z uwzględnionymi zależnościami binarnymi, prawdopodobnie zaktualizowanie podstawowej warstwy systemu operacyjnego zajmie trochę czasu.
źródło
-stretch
obrazów:node:<version>-stretch