W systemach Linuksowych oprogramowanie (głównie) dystrybuowane jest w formie pakietów. Pakiety najczęściej są umieszczane na serwerach lustrzanych (taki serwer wybieraliśmy w czasie instalacji systemu).
Każdy system z tej rodziny posiada menedżera pakietów, który potrafi komunikować się z serwerami oraz przeprowadzać instalację i wstępną konfigurację oprogramowania. W rodzinie systemów pochodnych od Red Hata znajdziemy menedżery yum (w większości dystrybucji już wycofany) oraz dnf (nowy menedżer). W systemach pochodzących od Debiana znajdziemy apt, apt-get oraz aptitude.
Skupimy się na apt-get.
Aby nasz system wiedział skąd pobierać pliki pakietów musi mieć o tym informację. Gdzie znajdziemy ten plik? Sprawdźmy:
root@cheshirecat:~# ls -la /etc/apt/sources.list
-rw-r--r-- 1 root root 1765 mar 7 15:15 /etc/apt/sources.list
Jedno spojrzenie na uprawnienia i wiemy, że edycja jest możliwa jedynie przez użytkownika z odpowiednim poziomem uprawnień.
Jak wygląda przykładowy plik? Użyjmy edytora „`nano„` by móc dokonać ewentualnie zmian (jeśli takie planujemy):
deb http://ftp.agh.edu.pl/debian/ bookworm main non-free-firmware
deb-src http://ftp.agh.edu.pl/debian/ bookworm main non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware
deb http://ftp.agh.edu.pl/debian/ bookworm-updates main non-free-firmware
deb-src http://ftp.agh.edu.pl/debian/ bookworm-updates main non-free-firmware
Pierwsza kolumna to typ pakietu, druga to adres serwera, trzecia wersja dystrybucji, a kolejne oznaczają typy repozytoriów.
A jak sprawić by informacja o pakietach była aktualna?
Możemy zaktualizować informacje o wersjach posiadanych pakietów oraz wersjach na serwerze repozytorów przy pomocy polecenia apt-get update:
root@cheshirecat:~# apt-get update
Hit:1 http://ftp.agh.edu.pl/debian bookworm InRelease
Hit:2 http://security.debian.org/debian-security bookworm-security InRelease
Hit:3 http://ftp.agh.edu.pl/debian bookworm-updates InRelease
Reading package lists... Done
root@cheshirecat:~#
System połączy się z serwerami lustrzanymi i zaktualizuje potrzebne informacje.
Następnie możemy użyć polecenia apt-get upgrade. Na oficjalnej Debiana możemy przeczytać:
Upgrade spróbuje delikatnie zaktualizować cały system. Upgrade nigdy nie zainstaluje nowego pakietu ani nie usunie istniejącego pakiety, ani też nie zaktualizuje pakietu do wersji powodującej, że inny pakiet przestanie działać. Można używać tego polecenia codziennie do w miarę bezpiecznych aktualizacji systemu. Upgrade wypisze listę pakietów, których nie potrafił zaktualizować, co zazwyczaj oznacza, że zależą one od nowych pakietów lub są w konflikcie z innymi pakietami. Można wymusić instalację takich pakietów, używając do tego dselect lub apt-get install.
To polecenie na 99,999999% nie zrobi krzywdy naszemu systemowi gdy będziemy go aktualizować. Inaczej jest w przypadku polecenia apt-get dist-upgrade. Zostało one zaprojektowane do aktualizacji CAŁEGO systemu, przede wszystkim pomiędzy wydaniami danej dystrybucji.
Jeśli jesteś początkującym użytkownikiem Linuksów to nigdy, przenigdy nie używaj przełącznika -y oznaczającego zgodę na aktualizację/instalację pakietów bez pytania użytkownika.
Czas zainstalować faktycznie jakieś oprogramowanie. Składnia tego polecenia będzie wyglądać tak:
apt-get install nazwa_pakietu
Możliwa jest instalacja wielu pakietów przy pomocy jednego polecenia:
apt-get install nazwa_pakietu_1 nazwa_pakietu_2 nazwa_pakietu_3 (...) nazwa_pakietu_n
Zainstalujmy pakiet curl:
root@cheshirecat:~# apt-get install curl
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
curl
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/315 kB of archives.
After this operation, 500 kB of additional disk space will be used.
Selecting previously unselected package curl.
(Reading database ... 200300 files and directories currently installed.)
Preparing to unpack .../curl_7.88.1-10+deb12u5_amd64.deb ...
Unpacking curl (7.88.1-10+deb12u5) ...
Setting up curl (7.88.1-10+deb12u5) ...
Processing triggers for man-db (2.11.2-2) ...
root@cheshirecat:~#
A teraz dla odmiany pakiet wget:
root@cheshirecat:~# apt-get install wget
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
wget is already the newest version (1.21.3-1+b2).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
root@cheshirecat:~#
W moim przypaku był on już zainstalowany i apt-get przekazał mi jedynie informację o tym fakcie.
Miłej instalacji softu!