0Pricing
Linux Server Deployment & SSH Mastery · Lekcja

Zarządzanie repozytoriami oprogramowania

Dodawaj repozytoria zewnętrzne, poznawaj źródła pakietów i rozwiązuj konflikty zależności podczas złożonych instalacji oprogramowania.

Zarządzanie repozytoriami oprogramowania to bezpłatna lekcja Linux Server Deployment & SSH Mastery na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Linux Server Deployment & SSH Mastery, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.

Czym są repozytoria oprogramowania?

Podczas instalowania oprogramowania w systemie Linux system nie pobiera go z przypadkowego miejsca. Korzysta z repozytoriów oprogramowania.

Repozytorium (lub „repo”) to centralna lokalizacja, w której przechowuje się pakiety oprogramowania i zarządza nimi. Można je porównać do sklepu z aplikacjami dla serwera Linux!

  • Niezawodność: pakiety są zazwyczaj testowane pod kątem zgodności z używaną dystrybucją Linuksa.
  • Aktualizacje: repozytoria ułatwiają utrzymywanie oprogramowania w aktualnym stanie.
  • Zależności: zajmują się instalowaniem całego niezbędnego oprogramowania pomocniczego (zależności).

Oficjalne i zewnętrzne źródła

Repozytoria zazwyczaj dzielą się na dwie kategorie:

  • Oficjalne repozytoria: są utrzymywane przez twórców dystrybucji Linuksa (np. Ubuntu, CentOS). Zawierają stabilne i dokładnie przetestowane oprogramowanie. Pochodzi z nich większość popularnych narzędzi.
  • Repozytoria zewnętrzne: są utrzymywane przez niezależnych programistów lub organizacje, a nie przez twórców dystrybucji. Mogą oferować nowsze wersje oprogramowania, specjalistyczne narzędzia lub wydania beta.

Repozytoria zewnętrzne mogą być przydatne, ale zawsze należy zachować ostrożność. Aby uniknąć zagrożeń bezpieczeństwa, należy dodawać wyłącznie repozytoria z zaufanych źródeł.

Dodawanie repozytoriów za pomocą APT (Debian/Ubuntu)

W systemach opartych na Debianie i Ubuntu oprogramowaniem zarządza Advanced Package Tool (APT). Repozytoria są wymienione w plikach znajdujących się w katalogu /etc/apt/, głównie w pliku /etc/apt/sources.list oraz w plikach w katalogu /etc/apt/sources.list.d/.

W przypadku repozytoriów zewnętrznych często używa się polecenia add-apt-repository, zwłaszcza dla Personal Package Archives (PPA).

Po dodaniu nowego repozytorium należy zawsze uruchomić sudo apt update, aby pobrać z niego najnowsze informacje o pakietach.

Repozytorium APT: przykład dodawania PPA

Sprawdźmy, jak dodać popularne PPA. W tym przykładzie dodamy PPA udostępniające nowszą wersję Neovim, edytora tekstu. Następnie zaktualizujemy listę pakietów.

# Add the Neovim stable PPA
sudo add-apt-repository -y ppa:neovim-ppa/stable

# Update your package list to include the new repo's packages
sudo apt update

echo "Neovim PPA added and package lists updated!"

Dodawanie repozytoriów za pomocą YUM/DNF (RHEL/CentOS)

W systemach Red Hat, CentOS lub Fedora pakietami zarządza yum (lub jego następca, dnf). Systemy te używają plików .repo do definiowania repozytoriów.

Pliki te zwykle znajdują się w katalogu /etc/yum.repos.d/. Każdy plik .repo definiuje co najmniej jedno repozytorium i zawiera takie informacje jak jego nazwa, podstawowy adres URL oraz dane klucza GPG.

Po utworzeniu lub zmodyfikowaniu pliku .repo może być konieczne uruchomienie sudo dnf clean all (lub yum clean all), a następnie sudo dnf update (lub yum update) w celu odświeżenia metadanych pakietów.

Repozytorium YUM/DNF: tworzenie pliku .repo

Oto przykład tworzenia pliku .repo dla Google Chrome, którego nie ma w oficjalnych repozytoriach RHEL/CentOS. Użyjemy tee, aby zapisać plik z uprawnieniami sudo.

# Create a .repo file for Google Chrome
echo "[google-chrome]" | sudo tee /etc/yum.repos.d/google-chrome.repo
echo "name=Google Chrome" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "enabled=1" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "gpgcheck=1" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "gpgkey=https://dl.google.com/linux/linux_signing_key.pub" | sudo tee -a /etc/yum.repos.d/google-chrome.repo

echo "Google Chrome repository file created!"

Weryfikowanie pakietów za pomocą kluczy GPG

Podczas dodawania repozytoriów zewnętrznych bardzo ważne jest także zaimportowanie ich kluczy GPG (GNU Privacy Guard). Klucze te służą do kryptograficznego sprawdzania autentyczności pakietów.

Dzięki temu można upewnić się, że pobrane pakiety nie zostały zmodyfikowane i rzeczywiście pochodzą z deklarowanego źródła, co chroni system przed złośliwym oprogramowaniem.

  • APT: klucze są często obsługiwane przez add-apt-repository lub importowane ręcznie za pomocą apt-key add.
  • YUM/DNF: klucze są określane w pliku .repo za pomocą gpgkey= i importowane poleceniem rpm --import.
wget -qO - https://example.com/KEY.gpg | sudo apt-key add -
# Or for YUM/DNF:
sudo rpm --import https://example.com/KEY.gpg

Rozwiązywanie konfliktów zależności

Czasami różne repozytoria mogą oferować różne wersje tego samego pakietu lub pakiety zawierające sprzeczne zależności. Może to prowadzić do konfliktów zależności.

Menedżer pakietów zwykle ostrzeże Państwa o takich konfliktach i może zaproponować rozwiązania. Do typowych narzędzi diagnostycznych należą:

  • APT: apt policy <package-name> wyświetla dostępne wersje z różnych repozytoriów.
  • YUM/DNF: dnf deplist <package-name> wyświetla zależności i dostawców.

Najlepiej korzystać z oficjalnych repozytoriów, chyba że istnieje konkretny powód, aby użyć wersji zewnętrznej, i rozumieją Państwo związane z tym zagrożenia.

apt policy firefox
# Or for YUM/DNF:
dnf deplist firefox

Ustalanie priorytetów repozytoriów

Jeśli kilka repozytoriów udostępnia ten sam pakiet, można wskazać menedżerowi pakietów, które z nich ma preferować. Nazywa się to ustalaniem priorytetów repozytoriów.

  • APT: należy użyć mechanizmu „pinning”, tworząc pliki w katalogu /etc/apt/preferences.d/. Pakietom z określonych źródeł przypisuje się wartość „Pin-Priority”. Wyższe wartości priorytetu (powyżej 500) oznaczają preferencję.
  • YUM/DNF: wtyczka yum-plugin-priorities (lub wbudowana funkcja DNF) umożliwia ustawienie wartości priority= w plikach .repo (mniejsza liczba oznacza wyższy priorytet).

Pozwala to bezpiecznie korzystać z połączenia stabilnych i nowszych repozytoriów.

# Example for APT pinning:
# File: /etc/apt/preferences.d/my-app
Package: my-app
Pin: origin "example.com"
Pin-Priority: 900

Test: zarządzanie repozytoriami

Sprawdźmy Państwa wiedzę na temat zarządzania repozytoriami oprogramowania.

Podsumowanie: Biegłość w zarządzaniu repozytoriami

Gratulacje! Nauczyli się Państwo zarządzać repozytoriami oprogramowania — to ważna umiejętność każdego administratora Linuksa.

  • Rozumieją już Państwo różnicę między repozytoriami oficjalnymi i zewnętrznymi.
  • Potrafią Państwo dodawać repozytoria za pomocą add-apt-repository (Debian/Ubuntu) oraz przez tworzenie plików .repo (RHEL/CentOS).
  • Znają Państwo znaczenie kluczy GPG przy weryfikowaniu autentyczności pakietów.
  • Poznali już Państwo sposoby rozwiązywania konfliktów zależności i ustalania priorytetów repozytoriów.

Proszę zawsze pamiętać o bezpieczeństwie i dodawać wyłącznie repozytoria z zaufanych źródeł!

Często zadawane pytania

Czy lekcja „Zarządzanie repozytoriami oprogramowania” jest bezpłatna?

Tak — pełny tekst „Zarządzanie repozytoriami oprogramowania” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Linux Server Deployment & SSH Mastery, przejdź na CoddyKit PRO. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.

Co nauczysz się w „Zarządzanie repozytoriami oprogramowania”?

Dodawaj repozytoria zewnętrzne, poznawaj źródła pakietów i rozwiązuj konflikty zależności podczas złożonych instalacji oprogramowania. Ćwiczysz Linux Server Deployment & SSH Mastery z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Linux Server Deployment & SSH Mastery?

Nie wymagamy żadnego doświadczenia. Linux Server Deployment & SSH Mastery w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Zarządzanie repozytoriami oprogramowania”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Linux Server Deployment & SSH Mastery?

Tak. Każda lekcja Linux Server Deployment & SSH Mastery zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Menedżery pakietów APT i YUM
  2. Instalowanie i aktualizowanie oprogramowania
  3. Zarządzanie repozytoriami oprogramowania
  4. Budowanie ze źródeł oraz używanie Snap i Flatpak
← Powrót do Linux Server Deployment & SSH Mastery