
Repozytorium to w zasadzie serwer WWW zawierający pakiety (oprogramowanie). Menedżer pakietów pobiera te pakiety z repozytoriów.
Skąd menedżer pakietów apt zna adresy repozytoriów? Odpowiedzią jest plik sources.list.
Co robi source.list?
Zasadniczo jest to plik tekstowy zawierający szczegóły repozytorium. Każda linia bez komentarza reprezentuje osobne repozytorium.
Linie mają jednak określony format:
archive-type repository-url distribution component
Rzućmy okiem na jedną z rzeczywistych linii:
deb http://archive.ubuntu.com/ubuntu impish main restricted
Typ archiwum to deb , co oznacza, że otrzymasz prekompilowane pakiety .deb. Innym typem archiwum jest deb-src, które dostarcza rzeczywisty kod źródłowy, ale zazwyczaj jest ono komentowane (nie jest używane przez system), ponieważ zwykły użytkownik nie potrzebuje kodu źródłowego aplikacji. Plik deb umożliwia zainstalowanie pakietu.
Adres URL repozytorium to http://archive.ubuntu.com/ubuntu . W rzeczywistości możesz odwiedzić ten adres URL i zobaczyć różne dostępne foldery (które zawierają szczegóły pakietu).
Dystrybucja
W rzeczywistym repozytorium jest reprezentowane jako dists . To dlatego, że istnieje kilka kategorii repozytoriów, takich jak impish-security (dla pakietów bezpieczeństwa), impish-backports (dla pakietów z backportem) itp. Dlatego nie jest to tylko nazwa dystrybucji.
Możesz więc przejść do tego adresu URL http://archive.ubuntu.com/ubuntu/dists/ i zobaczyć, że impish (nazwa kodowa dla Ubuntu 21.10) jest jednym z dostępnych folderów wśród wielu innych opcji.
Komponent jest jednym z pięciu typów domyślnych repozytoriów Ubuntu .
W rzeczywistości możesz połączyć więcej niż jeden (jeśli jest dostępny) w tej samej linii. Zamiast pisać dwie linijki w ten sposób:
deb http://archive.ubuntu.com/ubuntu impish main
deb http://archive.ubuntu.com/ubuntu impish restricted
Piszesz dwa z nich razem w ten sposób:
deb http://archive.ubuntu.com/ubuntu impish main restricted
Oznacza to, że gdy masz szczegóły repozytorium, takie jak „deb http://archive.ubuntu.com/ubuntu impish main” w pliku sources.list, pobiera on szczegóły pakietów oprogramowania przechowywane pod adresem http://archive.ubuntu.com/ubuntu/ dists/impish/main/
Nazwa kodowa dystrybucji
Teraz wyobraź sobie, że ktoś używa starej, nieobsługiwanej wersji Ubuntu, takiej jak Ubuntu 20.10 o nazwie kodowej Groovy Gorilla.
Plik sources.list będzie zawierał adres URL repozytorium, taki jak deb http://archive.ubuntu.com/ubuntu groovy main
. A potem staje się to problematyczne, ponieważ jeśli odwiedzisz http://archive.ubuntu.com/ubuntu/dists
URL, nie znajdziesz tutaj folderu groovy. Ponieważ Ubuntu 20.10 nie jest już obsługiwane, jego folder został usunięty.
W rezultacie Ubuntu wyświetli błąd, taki jak „ nie znaleziono pliku wydania ” lub „błąd 404 nie znaleziono repozytorium”.
source.list i katalog sources.list.d
Jeśli spojrzysz na katalog /etc/apt, zauważysz katalog o nazwie sources.list.d.
Pomysł polega na tym, że główny plik sources.list jest przeznaczony dla oficjalnych repozytoriów Ubuntu, a dla wszelkich zewnętrznych repozytoriów i PPA dodajesz plik .list (ze szczegółami repozytorium) w tym katalogu sources.list.d.
Ułatwia to zarządzanie repozytoriami, ponieważ nie ma problemu z domyślnymi repozytoriami. Zewnętrzne repozytoria można łatwo wyłączyć (dodając # przed repozytorium) lub usunąć (poprzez usunięcie odpowiedniego pliku .list).
Możesz użyć graficznego narzędzia Software & Updates do tego samego celu, jeśli używasz Ubuntu. Wpisy w zakładce „Oprogramowanie Ubuntu” pochodzą z pliku sources.list, a wpisy w zakładce „Inne oprogramowanie” pochodzą z plików w katalogu sources.list.d.