Cheat sheet

Mga apt command: pag-install, pag-update at pagbura ng package sa Ubuntu at Debian

Na-update: · Skillaria.Top

Ang apt ang package manager ng Ubuntu at Debian: ang sudo apt update ay nagre-refresh ng listahan ng mga package, ang sudo apt upgrade ay nag-i-install ng mga update, ang sudo apt install pangalan ay nag-i-install ng package, ang sudo apt remove ay nagbubura nito (ang purge ay kasama ang config), at ang apt autoremove ay nagtatanggal ng hindi na kailangang dependency. Nakakatulong sa paghahanap ang apt search at apt show, at inaayos ng sudo apt --fix-broken install ang sirang dependency.

Ang apt ang standard na package manager sa Ubuntu, Debian, at mga derivative nito (Linux Mint, Pop!_OS). Nagda-download ito ng mga programa mula sa repository, awtomatikong kinukuha ang mga dependency, at ina-update ang system gamit ang isang command. Sa ibaba ang lahat ng apt command na kailangan sa pang-araw-araw na gawain, nakapangkat ayon sa gawain, kasama ang mga karaniwang error at ang kanilang solusyon.

Paano gumagana ang apt

Ang package ay archive na .deb na naglalaman ng programa, metadata, at listahan ng mga dependency. Ang repository ay mga server kung saan nakalagay ang mga package; nakasulat ang mga address nila sa /etc/apt/sources.list at sa direktoryong /etc/apt/sources.list.d/. Nagtatago ang apt ng lokal na kopya ng listahan ng mga available na package at dito tumitingin kapag nag-i-install, kaya kailangan itong i-update nang regular.

Sa ilalim, tinatawag ng apt ang mababang antas na dpkg, na nag-e-extract at nagre-register ng mga package, pero hindi nito kayang lutasin ang mga dependency. Ang apt-get at apt-cache ay lumang interface na may parehong functionality: matatag ang output, mainam para sa mga script. Ang apt naman ay mas bagong wrapper para sa tao: may progress bar, may kulay, at mas maiikli ang mga command.

Halos lahat ng command na nagbabago ng system ay nangangailangan ng karapatan ng administrator, kaya pinapatakbo ang mga ito gamit ang sudo. Ang paghahanap at pagtingin ng impormasyon ay gumagana rin nang wala nito.

Cheat sheet: mga pangunahing apt command

CommandAno ang ginagawa
sudo apt updatei-update ang listahan ng mga package mula sa repository
sudo apt upgradei-install ang mga update nang hindi nagbubura ng package
sudo apt full-upgradei-update kasama ang pagbura o pagpalit ng package kapag kailangan
sudo apt install packagei-install ang package kasama ang mga dependency
sudo apt reinstall packagemuling i-install ang package
sudo apt remove packageburahin ang package, itira ang mga config
sudo apt purge packageburahin ang package kasama ang system config nito
sudo apt autoremoveburahin ang mga dependency na hindi na kailangan
apt search salitamaghanap ng package ayon sa pangalan at deskripsyon
apt show packagedeskripsyon, bersyon, dependency, laki
apt list --installedlistahan ng mga naka-install na package
apt list --upgradableano ang puwedeng i-update
apt policy packagenaka-install at available na bersyon, mga pinagmulan
sudo apt cleanlinisin ang cache ng mga na-download na .deb
sudo apt --fix-broken installayusin ang sirang dependency

apt update at apt upgrade: paano i-update ang system

Dalawang magkaibang operasyon ang mga ito, at madalas silang napagkakamalan. Hindi nag-i-install ng kahit ano ang apt update: nagda-download lang ito ng bagong listahan ng mga package. Ang apt upgrade naman ay nag-i-install na ng bagong bersyon ng mga naka-install na programa, batay sa listahang iyon.

$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
...
12 packages can be upgraded. Run 'apt list --upgradable' to see them.

$ apt list --upgradable
$ sudo apt upgrade

Ang karaniwang kombinasyon para sa server, sa iisang linya, na awtomatikong sumasang-ayon:

sudo apt update && sudo apt upgrade -y

Ano ang pagkakaiba ng upgrade at full-upgrade

Ang apt upgrade ay maaaring mag-install ng mga bagong dependency, pero hindi kailanman nagbubura ng naka-install nang package. Kapag ang update ay nangangailangan ng pagbura ng isang bagay (halimbawa, sa pagpapalit ng bersyon ng kernel o library), ipinagpapaliban ang mga package na iyon — lalabas ang linyang The following packages have been kept back sa output. Ang apt full-upgrade (katumbas ng apt-get dist-upgrade) ay pinapayagan ang pagbura at tinatapos ang update. Bago ito, basahing mabuti kung ano ang balak burahin ng apt.

I-update ang isang package lamang

sudo apt install --only-upgrade nginx

Kapag hindi pa naka-install ang package, hindi ito iinstall ng command na may --only-upgrade — proteksyon ito laban sa hindi sinasadyang pag-install.

apt install: pag-install ng package

sudo apt install nginx                 # isang package
sudo apt install git curl htop         # ilan nang sabay
sudo apt install -y docker.io          # walang tanong na Y/n
sudo apt install nginx=1.24.0-2ubuntu7 # partikular na bersyon
sudo apt install --no-install-recommends ffmpeg  # walang inirerekomendang package
sudo apt install ./google-chrome-stable_current_amd64.deb  # lokal na .deb

Bago mag-install, ipinapakita ng apt kung aling mga package ang idadagdag at ilang espasyo ang kukunin, at humihingi ng kumpirmasyon. Ang flag na -y ay awtomatikong sumasagot ng "oo" — maginhawa sa mga script at Dockerfile, pero sa interactive na gawain mas mainam basahin muna ang listahan.

Bilang default, nag-i-install ang apt hindi lamang ng mga kinakailangang dependency (Depends), kundi pati ng mga inirerekomenda (Recommends). Sa mga server at container, malaki ang nababawas sa laki kapag ginamit ang --no-install-recommends.

Pag-install ng .deb file: apt o dpkg -i

Mas mainam i-install ang na-download na .deb gamit ang apt install ./file.deb — kailangan ang ./ o buong path, kung hindi, hahanapin ng apt ang package na may ganoong pangalan sa repository. Hindi tulad ng dpkg -i, awtomatikong dinadownload ng apt ang mga nawawalang dependency. Kung na-install mo na ang package gamit ang dpkg at nakakuha ng error sa dependency, aayusin ito ng sudo apt --fix-broken install.

sudo dpkg -i package.deb
sudo apt --fix-broken install

apt remove, purge at autoremove: pagbura ng package

CommandProgramaConfig sa /etcMga dependency
apt removenabuburanananatilinananatili
apt purgenabuburanabuburanananatili
apt autoremove——nabubura ang hindi na kailangan
sudo apt remove nginx
sudo apt purge nginx            # kasama rin ang config
sudo apt autoremove             # mga natirang dependency
sudo apt autoremove --purge     # mga natirang dependency kasama ang kanilang config

Angkop ang remove kung balak mong ibalik ang programa at gusto mong itira ang mga setting nito. Ang purge naman ay para sa ganap na muling pag-install mula sa simula. Tandaan: hindi binubura ng alinmang command ang mga file sa home directory ng user (halimbawa, ang ~/.config).

Para makita ang mga package na nabura na pero may naiwang config, ang status nila ay rc:

dpkg -l | grep '^rc'

Paghahanap ng package at impormasyon tungkol sa kanila

apt search postgresql          # paghahanap ayon sa pangalan at deskripsyon
apt search --names-only '^php8' # ayon sa pangalan lamang, may regular expression
apt show htop                  # bersyon, laki, dependency, deskripsyon
apt policy docker.io           # anong bersyon ang available at saan galing
apt list --installed | grep python3
apt-cache depends curl         # ano ang kailangan ng package
apt-cache rdepends libssl3     # sino ang nangangailangan ng package

Aling package ang may-ari ng isang file

$ dpkg -S /usr/bin/curl
curl: /usr/bin/curl

$ dpkg -L curl        # anong mga file ang inilagay ng package

Kung wala pang command sa system, sasabihin ng Ubuntu kung aling package ang kailangan kapag sinubukan mo itong patakbuhin (mensaheng Command 'tree' not found, but can be installed with: sudo apt install tree). Para maghanap ng file sa mga hindi pa naka-install na package, may utility na apt-file: apt-file search bin/dig pagkatapos ng sudo apt-file update.

Pag-lock ng bersyon: apt-mark hold

Minsan hindi dapat i-update ang isang package — halimbawa, ang bersyon ng DBMS o kernel sa production ay binabago lamang nang manu-mano. Para dito, "kino-freeze" ang package:

sudo apt-mark hold postgresql-16
apt-mark showhold
sudo apt-mark unhold postgresql-16

Isa pang kapaki-pakinabang na pares ang apt-mark manual at apt-mark auto. Ang mga package na na-install bilang dependency ay minarkahang awtomatiko at maaaring mabura ng autoremove kapag hindi na kailangan. Pinoprotektahan ng markang manual ang package mula rito.

Mga repository: paano magdagdag at saan nakalagay

Nasa /etc/apt/sources.list at sa mga file na /etc/apt/sources.list.d/*.list ang listahan ng mga pinagmulan. Sa Ubuntu 24.04 at Debian 12+, mas madalas nang ginagamit ang deb822 format na may extension na .sources (halimbawa, /etc/apt/sources.list.d/ubuntu.sources).

Third-party na repository na may key

Ang modernong paraan ay itago ang key ng repository nang hiwalay at itali ito sa pamamagitan ng signed-by. Luma na ang command na apt-key at tinanggal na sa mga bagong bersyon.

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install docker-ce

PPA sa Ubuntu

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo add-apt-repository --remove ppa:deadsnakes/ppa

Ang PPA ay personal na repository sa Launchpad. Ikabit lamang ang mga pinagkakatiwalaan mo: ang mga package mula rito ay ini-install na may karapatan ng root.

Cache at espasyo sa disk

Nananatili sa /var/cache/apt/archives/ ang mga na-download na package. Sa maliliit na disk at sa Docker image, mainam itong linisin.

du -sh /var/cache/apt/archives
sudo apt clean          # burahin ang buong cache ng .deb
sudo apt autoclean      # burahin lamang ang mga lumang bersyon

Sa Dockerfile, karaniwang isinusulat ang pag-install sa iisang layer at agad na tinatanggal ang mga listahan ng package:

RUN apt-get update \
 && apt-get install -y --no-install-recommends curl ca-certificates \
 && rm -rf /var/lib/apt/lists/*

Sa mga script, ginagamit ang apt-get sa halip na apt: hindi matatag ang interface ng apt, at tahasan itong nagbababala (WARNING: apt does not have a stable CLI interface). Para hindi magtanong ang installer, dinadagdagan ito ng DEBIAN_FRONTEND=noninteractive.

Mga karaniwang error ng apt at kung paano ayusin

Could not get lock /var/lib/dpkg/lock-frontend

May ibang proseso nang gumagamit ng mga package: may pangalawang terminal na may apt, ang "Software Center", o ang awtomatikong pag-update na unattended-upgrades. Maghintay ng ilang minuto at tingnan kung sino ang may hawak ng lock:

ps aux | grep -E 'apt|dpkg'

Huwag burahin nang manu-mano ang lock file habang buhay pa ang proseso: maaaring maiwan sa hindi magkakatugmang estado ang system kapag naputol ang pag-install. Kung talagang nag-hang o napatay ang proseso, pagkatapos nitong matapos, patakbuhin ang sudo dpkg --configure -a.

Unable to locate package

Hindi nakita ng apt ang package. Kadalasan, hindi mo pa nagawa ang sudo apt update sa bagong system, nagkamali ka sa pangalan, o nasa naka-off na component ang package (universe sa Ubuntu). Ang component ay ina-enable gamit ang sudo add-apt-repository universe.

Unmet dependencies / held broken packages

Hindi nagtutugma ang mga dependency — kadalasan pagkatapos ng manual na pag-install ng .deb o paghahalo ng mga repository ng magkakaibang bersyon ng distribution.

sudo apt --fix-broken install
sudo dpkg --configure -a
apt policy problemang-package

dpkg was interrupted

Naputol ang pag-install (nagsara ang terminal, nawalan ng kuryente). Malinaw ang mensahe kung ano ang gagawin: sudo dpkg --configure -a.

NO_PUBKEY sa apt update

Walang key ang third-party na repository o luma na ang signing key nito. I-download ang pinakabagong key mula sa website ng proyekto papunta sa /etc/apt/keyrings/ at itala ito sa signed-by, gaya ng halimbawa sa Docker sa itaas.

Awtomatikong security update

Sa Ubuntu Server, default na naka-install ang package na unattended-upgrades, na awtomatikong nag-i-install ng mga security update. Para suriin at i-enable ito:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
cat /var/log/unattended-upgrades/unattended-upgrades.log

Kung kailangan ng reboot pagkatapos ng update, makikita sa file na /var/run/reboot-required: kapag umiiral ito, na-update ang kernel o ang mahahalagang library.

Buod

Ang mga batayang apt command ay sumusunod sa maikling siklo: update bago ang anumang aksyon, install para mag-install, upgrade para mag-update, remove o purge para magbura, at autoremove para maglinis. Para sa bersyon, may apt policy at apt-mark hold; para sa sirang sistema, may --fix-broken install at dpkg --configure -a; at sa mga script, gamitin ang apt-get. Ang pamamahala ng package ay ipinapaliwanag din nang praktikal sa kursong Linux.

Mga madalas itanong

Ano ang pagkakaiba ng apt at apt-get?

Parehong interface ang mga ito sa iisang package system. Mas maginhawa ang apt sa terminal (may progress, kulay, at maiikling command), habang may matatag na output ang apt-get at inirerekomenda ito para sa mga script at Dockerfile.

Kailangan bang patakbuhin ang apt update bago ang bawat pag-install?

Mainam kung matagal nang hindi na-update ang listahan: kung hindi, maaaring hindi makita ng apt ang package o subukang i-download ang bersyong wala na sa mirror, at magbibigay ito ng error na 404.

Paano makita ang kasaysayan ng pag-install at pagbura gamit ang apt?

Nakasulat ito sa /var/log/apt/history.log (ang mga lumang tala ay nasa mga archive na history.log.N.gz), at ang detalyadong log ng dpkg ay nasa /var/log/dpkg.log.

Paano i-rollback ang package sa dating bersyon?

Tingnan ang available na bersyon gamit ang apt policy package, i-install ang kailangang bersyon gamit ang sudo apt install package=bersyon, at saka i-lock ito gamit ang apt-mark hold para hindi ito maibalik ng susunod na update.

Puwede bang gamitin ang apt sa CentOS o Fedora?

Hindi, iba ang format ng package doon (rpm) at may sarili silang manager na dnf at yum. Gumagana ang apt sa Debian, Ubuntu, at mga distribution na galing sa mga ito.

Pag-aralan ito sa video

Detalyadong tinatalakay ang paksang ito, may praktis, sa kursong “Linux: с нуля до уверенного администрирования”.

Pumunta sa kurso