Gym
lesson

APT paket menadžer

APT (Advanced Package Tool) je alat za upravljanje paketima na Debian i Ubuntu sistemima. Koristi .deb format i komunicira sa repozitorijumima da bi instalirao, ažurirao i uklanjao softver.

Sve apt komande koje menjaju sistem zahtevaju sudo — instalacija i brisanje paketa menjaju sistemske fajlove.

Ažuriranje liste paketa

Pre nego što instaliraš ili nadogradiš bilo šta, osveži listu dostupnih paketa iz repozitorijuma:

sudo apt update

Ova komanda ne instalira ništa — samo preuzima najnovije informacije o tome koji paketi postoje i koje su njihove verzije. Uvek je pokreni pre instalacije.

Get:1 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1,396 kB]
...
Fetched 18.4 MB in 5s (3,680 kB/s)
Reading package lists... Done

Nadogradnja instaliranih paketa

sudo apt upgrade

Nadograđuje sve instalirane pakete na najnovije dostupne verzije. APT preuzima i instalira nove verzije, ali ne briše stare pakete ni ne dodaje nove zavisnosti koje nisu već instalirane.

Za agresivniju nadogradnju koja može dodavati i uklanjati pakete:

sudo apt full-upgrade

Dobra praksa: Pokretanje sudo apt update && sudo apt upgrade redovno (jednom nedeljno ili pre instalacije novog softvera) drži sistem bezbednim i aktuelnim.

Instalacija paketa

sudo apt install ime-paketa

Instalira paket i sve njegove zavisnosti. APT prikazuje šta će biti instalirano i koliko prostora će zauzeti, a zatim traži potvrdu.

Primer: instalacija curl

sudo apt install curl
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
  curl libcurl4
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 194 kB of archives.
After this operation, 456 kB of additional disk space will be used.
Do you want to continue? [Y/n]

Pritisni Enter ili ukucaj y za potvrdu.

Instalacija više paketa odjednom

sudo apt install git vim curl wget

Instalacija bez interaktivnog pitanja

sudo apt install -y ime-paketa

Zastavica -y automatski odgovara "yes" — korisno u skriptama.

Uklanjanje paketa

apt remove — ukloni program

sudo apt remove ime-paketa

Uklanja paket, ali ostavlja konfiguracione fajlove. Korisno ako planiraš da ponovo instaliraš — konfiguracija će biti sačuvana.

apt purge — potpuno uklanjanje

sudo apt purge ime-paketa

Uklanja paket i sve konfiguracione fajlove koji mu pripadaju. Koristi kada zaista više ne trebaš program i hoćeš čist sistem.

apt autoremove — ukloni siroče zavisnosti

sudo apt autoremove

Uklanja pakete koji su bili instalirani kao zavisnosti, ali više nisu potrebni jer je glavni paket uklonjen. Pokretaj povremeno za čišćenje sistema.

Pretraga paketa

apt search upit

Pretražuje nazive i opise paketa. Ne zahteva sudo.

apt search text-editor
Sorting... Done
Full Text Search... Done
vim/jammy 2:8.2.3995-1ubuntu2 amd64
  Vi IMproved - enhanced vi editor

nano/jammy 6.2-1 amd64
  small, friendly text editor inspired by Pico

Informacije o paketu

apt show ime-paketa

Prikazuje detaljne informacije: verziju, veličinu, zavisnosti, opis, maintainer-a.

apt show nginx
Package: nginx
Version: 1.18.0-6ubuntu14
Depends: nginx-core (<< 1.18.0-6ubuntu14.1) | nginx-full | nginx-light | nginx-extras
Description: small, powerful, scalable web/proxy server
  Nginx ("engine X") is a high-performance web and reverse proxy server...

Lista instaliranih paketa

apt list --installed

Prikazuje sve instalirane pakete sa verzijama. Lista je obično dugačka — koristi grep za filtriranje:

apt list --installed | grep python

dpkg — nivo ispod APT-a

dpkg je alat nižeg nivoa na kome APT počiva. Direktno radi sa .deb fajlovima, bez kontakta sa repozitorijumima.

Lista instaliranih paketa sa dpkg

dpkg -l

Prikazuje sve instalirane pakete u formatu:

||/ Name           Version         Architecture Description
ii  bash           5.1-6ubuntu1    amd64        GNU Bourne Again SHell
ii  curl           7.81.0-1        amd64        command line tool for ...

Slova ispred znače: ii = instalirano, rc = uklonjeno ali konfiguracija ostala, un = nije instalirano.

Filtriraj po imenu:

dpkg -l | grep curl

Ručna instalacija .deb fajla

Ponekad proizvođač softvera distribuira .deb fajl direktno (na primer, VS Code, Chrome). Instaliraj ga sa:

sudo dpkg -i ime-paketa.deb

Ako dpkg prijavi greške zbog zavisnosti, popravi ih odmah sa:

sudo apt install -f

Zastavica -f (fix-broken) pronalazi i instalira sve nedostajuće zavisnosti.

Konfiguracija repozitorijuma: /etc/apt/sources.list

APT čita listu repozitorijuma iz fajla /etc/apt/sources.list i direktorijuma /etc/apt/sources.list.d/.

Pogledaj sadržaj:

cat /etc/apt/sources.list

Tipičan red izgleda ovako:

deb http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse

Delovi:

  • deb — binarni paketi (postoji i deb-src za izvorni kod)
  • URL — adresa repozitorijuma
  • jammy — naziv distribucije (Ubuntu 22.04 Jammy Jellyfish)
  • main restricted universe multiverse — sekcije repozitorijuma:
    • main — Ubuntu zvanično održava i podržava (slobodni softver)
    • restricted — drajveri i firmware koji nisu open source
    • universe — održava zajednica (slobodni softver)
    • multiverse — softver sa licencnim ograničenjima

Oprez: Direktno editovanje sources.list je napredna operacija. Pogrešan unos može pokvariti sistem za ažuriranja.

Čišćenje preuzetih paketa iz keša

APT čuva preuzete .deb fajlove u /var/cache/apt/archives/. Oslobodi prostor sa:

sudo apt clean       # Briše sve keširane pakete
sudo apt autoclean   # Briše samo zastarele keširane pakete

apt vs apt-get — koju da koristim?

apt je noviji, korisnički prijatniji wrapper oko apt-get. Za interaktivnu upotrebu koristi apt. U skriptama je apt-get stabilniji izmedju verzija.

Rezime komandi

Komanda Opis
sudo apt update Osveži listu dostupnih paketa
sudo apt upgrade Nadogradi instalirane pakete
sudo apt install <ime> Instaliraj paket
sudo apt remove <ime> Ukloni paket (zadrži konfiguraciju)
sudo apt purge <ime> Ukloni paket i konfiguraciju
sudo apt autoremove Ukloni nepotrebne zavisnosti
apt search <upit> Pretraži dostupne pakete
apt show <ime> Prikaži informacije o paketu
apt list --installed Lista instaliranih paketa
dpkg -l Lista paketa (dpkg format)
sudo dpkg -i fajl.deb Instaliraj lokalni .deb fajl
sudo apt install -f Popravi pokvarene zavisnosti