Repozytoria Ubuntu w Debianie: jak dodawać, rozumieć i bezpiecznie usuwać źródła pakietów

ByTomasz Sanecki

Repozytoria Ubuntu w Debianie: jak dodawać, rozumieć i bezpiecznie usuwać źródła pakietów

Każda dystrybucja Linuksa posiada własne oficjalne repozytoria pakietów, które zawierają pakiety zaprojektowane specjalnie dla danej dystrybucji.

Instalowanie oprogramowania z repozytoriów pakietów jest jednym z najbezpieczniejszych i najłatwiejszych sposobów zarządzania oprogramowaniem w systemie Linux.

Istnieje wiele repozytoriów pakietów Linux, zarówno oficjalnych, jak i innych firm.

Jak działa dodawanie repozytoriów i dlaczego bywa potrzebne

Istnieją repozytoria pakietów innych firm, które mogą zawierać pakiety, których nie ma w oficjalnych repozytoriach lub nowsze wersje pakietów niż te w oficjalnych repozytoriach.

Korzystając z repozytoriów pakietów innych firm, należy zachować ostrożność i sprawdzić, kto zarządza repozytorium i jak bardzo jest ono zaufane.

Oficjalne repozytoria dystrybucji Linuksa zapewniają dostęp do dużej ilości oprogramowania, które może być instalowane i aktualizowane przy użyciu standardowych narzędzi do zarządzania pakietami.

Po zaktualizowaniu listy dostępnych pakietów przez menedżera pakietów można użyć polecenia sudo apt-get install lub sudo apt install, aby zainstalować żądany pakiet.

Aby zaktualizować zainstalowane pakiety, użyj polecenia "sudo apt-get upgrade" lub "sudo apt upgrade".

Aby znaleźć konkretny pakiet w repozytorium, użyj polecenia sudo apt-cache search lub sudo apt search.

Jeśli chcesz usunąć zainstalowany pakiet, użyj polecenia sudo apt-get remove lub sudo apt remove.

Są to podstawowe polecenia do pracy z oficjalnymi repozytoriami dystrybucji Linuksa.

Polecenie Zastosowanie
sudo apt install Instalacja pakietu
sudo apt upgrade Aktualizacja zainstalowanych pakietów
sudo apt search Wyszukiwanie pakietu
sudo apt remove Usuwanie pakietu

Repozytoria Ubuntu w Debianie i problem zgodności

Ważne: wiele umów PPA Launchpad nie jest obsługiwanych przez Debiana, ponieważ pakiety zawierają zależności specyficzne dla Ubuntu.

Inne umowy PPA działają na Debianie.

Od Debiana 7 można używać add-apt-repository aby dodać Launchpad PPA.

Jeśli jednak PPA zostanie dodany w ten sposób, plik źródłowy PPA będzie używał aktualnej wersji Debiana (na przykład »wheezy»).

Jeśli uruchomimy aktualizację apt-get, zobaczymy błąd 404, ponieważ w repozytoriach Launchpad PPA nie ma pakietów dla Debiana Wheezy.

Wszystkie są pakietami zbudowanymi dla różnych wersji Ubuntu.

Jak to rozwiązać?

Aby to działało poprawnie, po użyciu polecenia "ppa add-apt-repository ppa: tu / ppa" musisz edytować plik źródłowy PPA znajdujący się w folderze /etc/apt/sources.list .d / i zamień wersję Debiana (na przykład „wheezy”) na wersję Ubuntu.

Oto przykład.

Powiedzmy, że dodajemy webupd8team / java ppa w Debianie Wheezy za pomocą „add-apt-repository: webupd8team / java”.

W rezultacie plik /etc/apt/sources.list.d/webupd8team-java-wheezy.list musiał zostać utworzony.

Pozostaje tylko zmienić „wheezy” na nazwę kodową dystrybucji Ubuntu, której chcemy używać.

W tym przypadku możemy na przykład skorzystać z Trusty, czyli najnowszej wersji LTS Ubuntu.

Sztuczka polega na tym, aby wybrać wersję Ubuntu „odpowiednika” wersji Debiana, której używamy na stronie PPA.

Struktura repozytoriów APT

Jak znaleźć i ocenić repozytorium PPA

Przede wszystkim musimy zrozumieć, jak w Debianie zarządzane są repozytoria . ) oznacza typ pliku znalezionego w repozytorium. dla Debiana lub opartych na nim dystrybucji.

Pierwszą rzeczą, którą musimy zrobić, jest znalezienie strony repozytorium PPA w Launchpad.

Na stronie repozytorium PPA znajduje się zielony link z napisem „Szczegóły techniczne tego PPA ”.

Dodatkowo, możemy zobaczyć menu rozwijane z listą dystrybucji obsługiwanych przez tę aplikację.

W idealnym przypadku znajdziesz najnowszą wersję aplikacji dla wszystkich dystrybucji, ale w niektórych przypadkach każda dystrybucja ma inną wersję pakietu, zazwyczaj starsze wersje dla starszych dystrybucji.

W tych szczegółach technicznych możemy również znaleźć numer klucza publicznego, którego użyjemy do cyfrowego podpisania repozytorium.

Znając wszystkie te bardzo ważne informacje, dochodzimy do części, której wszyscy się spodziewaliśmy, przede wszystkim musimy otworzyć plik /etc/apt/sources.list, aby dodać nowe repozytorium.

Dlaczego problematyczne repozytoria są poważnym problemem

Zarządzanie repozytoriami oprogramowania to jedna z najbardziej fundamentalnych odpowiedzialności każdego administratora systemu Linux.

Niezależnie od tego, czy uruchamiasz serwer produkcyjny czy osobistą stację roboczą, jedno wadliwe repozytorium może spowodować przerwane instalacje pakietów, nierozwiązywalne konflikty zależności i poważne luki bezpieczeństwa.

Problematyczne repozytoria mogą powodować:

  • Błędy aktualizacji i instalacji - Uszkodzone lub niedostępne adresy URL repozytoriów generują trwałe błędy za każdym razem, gdy apt się uruchamia, co utrudnia rutynową konserwację i czyni ją zawodną.
  • Konflikty zależności - Niezgodne wersje pakietów z repozytoriów stron trzecich mogą kolidować z pakietami oficjalnymi, pozostawiając system w częściowo uszkodzonym stanie.
  • Luki bezpieczeństwa - Repozytoria hostujące przestarzałe lub niezweryfikowane pakiety narażają system na znane exploity i złośliwe oprogramowanie.
  • Błędy aktualizacji - Problematyczne repozytorium może całkowicie zablokować główne uaktualnienia systemu operacyjnego, takie jak przejście z Ubuntu 22.04 na 24.04.
  • Błędy kluczy GPG - Wygasłe lub brakujące klucze podpisujące powodują, że apt odrzuca metadane repozytoriów, generując błędy NO_PUBKEY, które zatrzymują operacje na pakietach.

Terminowe zidentyfikowanie i usunięcie tych repozytoriów nie jest opcjonalne - jest to kluczowa część odpowiedzialnej administracji systemem Linux.

Jeśli zarządzasz środowiskiem VPS Hosting lub Dedicated Server, higiena repozytoriów jest szczególnie krytyczna, ponieważ konflikty pakietów na maszynie produkcyjnej mogą spowodować przestoje i problemy z integralnością danych.

Jak zidentyfikować problematyczne repozytorium

Zanim cokolwiek usuniesz, musisz wskazać, które repozytorium powoduje problem.

W: Some index files failed to download. They have been ignored, or old ones used instead.

Lub błędów związanych z GPG:

W: An error occurred during the signature verification. and the previous index files will be used.

Zostaniesz poproszony o przeładowanie pamięci podręcznej pakietów - kliknij Reload.

Ta metoda jest idealna dla mniej doświadczonych użytkowników lub do szybkiego audytu wszystkich aktualnie włączonych repozytoriów w jednym miejscu.

Jednak może nie wyświetlać wszystkich plików repozytorium, szczególnie tych dodanych ręcznie do /etc/apt/sources.list.d/, dlatego zawsze sprawdzaj krzyżowo metodami wiersza poleceń poniżej.

Metoda 3: Ręczne usunięcie poprzez pliki konfiguracyjne

Dla zaawansowanych użytkowników i środowisk serwerowych - szczególnie headless VPS lub Dedicated Server bez graficznego pulpitu - bezpośrednia manipulacja plikami konfiguracyjnych repozytoriów daje Ci najdokładniejszą kontrolę.

Krok 1: Utwórz kopię zapasową listy źródeł

Zawsze utwórz kopię zapasową przed edycją krytycznych plików systemowych:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

Krok 2: Edytuj główną listę źródeł

Otwórz główny plik konfiguracyjny repozytorium w edytorze tekstu:

sudo nano /etc/apt/sources.list

Zlokalizuj linię odnoszącą się do problematycznego repozytorium.

Krok 3: Sprawdź katalog sources.list.d

ls /etc/apt/sources.list.d/*.sources

Usuń je w ten sam sposób, jeśli dotyczy:

sudo rm /etc/apt/sources.list.d/problematic-repo.sources

Krok 4: Usuń konkretny plik repozytorium

Po zidentyfikowaniu problematycznego pliku .list, usuń go:

sudo rm /etc/apt/sources.list.d/problematic-repo.list

W nowszych wersjach Ubuntu (22.04+) repozytoria mogą używać plików .sources w formacie DEB822 zamiast plików .list. Sprawdź również te pliki:

Krok 5: Usuń osierocone klucze GPG

Jeśli repozytorium miało powiązany klucz podpisywania GPG, usuń go, aby utrzymać czystość pęku kluczy.

Najpierw wyświetl listę wszystkich przechowywanych kluczy:

sudo apt-key list

Lub dla nowszego katalogu pęku kluczy:

ls /etc/apt/trusted.gpg.d/

Usuń odpowiedni plik klucza:

sudo rm /etc/apt/trusted.gpg.d/problematic-repo.gpg

Krok 6: Odśwież metadane pakietów

sudo apt update

Sprawdź, czy komunikaty o błędach związane z usuniętym repozytorium całkowicie zniknęły.

Konserwacja po usunięciu: czyszczenie systemu

Po usunięciu problematycznego repozytorium dobrą praktyką jest przeprowadzenie pełnego czyszczenia systemu w celu rozwiązania wszelkich pozostałych problemów spowodowanych przez złe pakiety, które mogło ono wprowadzić.

Wyczyść pamięć podręczną pakietów

Usuń wszystkie pliki pakietów z pamięci podręcznej, aby wyeliminować uszkodzone lub przestarzałe pobierania:

sudo apt clean

Usuń niepotrzebne pakiety

Odinstaluj pakiety, które zostały zainstalowane jako zależności oprogramowania z usuniętego repozytorium i nie są już potrzebne:

sudo apt autoremove

Napraw uszkodzone zależności

Jeśli problematyczne repozytorium pozostawiło uszkodzone zależności pakietów, spróbuj automatycznej naprawy:

sudo apt install -f

Flaga -f (skrót od --fix-broken) instruuje apt do rozwiązania i poprawienia wszelkich uszkodzonych łańcuchów zależności.

Pełna kontrola aktualizacji

Uruchom pełną aktualizację, aby upewnić się, że system jest spójny i aktualny z pozostałymi repozytoriami:

sudo apt full-upgrade

Rozwiązywanie problemów, jeśli błędy się utrzymują

Jeśli nadal widzisz błędy po wykonaniu powyższych kroków, rozważ te dodatkowe działania rozwiązywania problemów:

Problem Rozwiązanie
Adres URL repozytorium nadal pojawia się w błędach Uruchom grep -r "repo-url" /etc/apt/ aby znaleźć ukryte odwołania
Błąd GPG NO_PUBKEY się utrzymuje Usuń klucz z /etc/apt/trusted.gpg.d/
apt update nadal się nie powodzi Przywróć z kopii zapasowej: sudo cp /etc/apt/sources.list.bak /etc/apt/sources.list
Uszkodzone pakiety pozostają Uruchom sudo dpkg --configure -a a następnie sudo apt install -f
Konfliktujące wersje pakietów Użyj sudo apt-cache policy package-name aby sprawdzić źródła wersji

Przeszukaj wszystkie pliki konfiguracyjne w poszukiwaniu pozostałych wpisów

Użyj grep aby rekurencyjnie skanować wszystkie pliki konfiguracyjne APT w poszukiwaniu wszelkich pozostałych odwołań do usuniętego repozytorium:

grep -r "problematic-repo-url" /etc/apt/

To wyłapie wszelkie wpisy, które mogłeś pominąć w podkatalogach lub niestandardowych plikach konfiguracyjnych.

Najlepsze praktyki zarządzania repozytoriami

Niezależnie od tego, czy zarządzasz jednym VPS czy flotą serwerów dedykowanych, przestrzeganie tych najlepszych praktyk zapobiegnie problemom związanym z repozytoriami, zanim się pojawią:

  • Dodawaj repozytoria tylko z zaufanych źródeł - Trzymaj się oficjalnych repozytoriów dystrybucji i dobrze utrzymywanych PPA od renomowanych deweloperów.
  • Dokumentuj każde dodane repozytorium - Prowadź rejestr tego, dlaczego każde repozytorium zostało dodane i jakie pakiety dostarcza.
  • Regularnie audytuj swoją listę repozytoriów - Uruchom sudo apt update i przejrzyj dane wyjściowe okresowo w poszukiwaniu ostrzeżeń lub błędów.
  • Zawsze twórz kopię zapasową plików konfiguracyjnych przed wprowadzeniem zmian - To zajmuje sekundy i może zaoszczędzić godziny rozwiązywania problemów.
  • Używaj pinowania wersji - Jeśli potrzebujesz określonej wersji pakietu z repozytorium trzeciej strony, użyj pinowania APT, aby zapobiec niezamierzonym aktualizacjom.
  • Utrzymuj klucze GPG na bieżąco - Wygasłe klucze podpisujące to częste źródło błędów repozytoriów; monitoruj je i odnawiaj proaktywnie.

Jeśli hostujesz aplikacje internetowe, bazy danych lub usługi na swoim serwerze Linux, utrzymanie czystego i niezawodnego systemu zarządzania pakietami jest bezpośrednio związane z czasem dostępności i bezpieczeństwem.

Plany Shared Web Hosting AlexHost zawierają wstępnie skonfigurowane, stabilne środowiska, podczas gdy nasze opcje VPS z cPanel dają Ci pełną kontrolę nad Twoim stosem oprogramowania z wygodą graficznego interfejsu zarządzania.

How to Setup Local APT Repository Server On Ubuntu 24.04 Using apt-mirror

tags: #repozytoria #ubuntu #w #debianie

Popularne posty:

About the author

Tomasz Sanecki administrator

Informatyk z zawodu i zamiłowania. Od 2007r właściciel firmy Perfect Systems. Specjalista do spraw bezpieczeństwa IT, serwisu urządzeń elektronicznych, sieci komputerowych. Prywatnie mąż i ojciec dwójki dzieci. Pasjonat nowoczesnych technologii, motocykli oraz włoskiego espresso.