சீட் ஷீட்

apt கட்டளைகள்: Ubuntu மற்றும் Debian-இல் தொகுப்புகளை நிறுவுதல், புதுப்பித்தல், நீக்குதல்

புதுப்பிக்கப்பட்டது: · Skillaria.Top

apt என்பது Ubuntu மற்றும் Debian-இன் தொகுப்பு மேலாளர்: sudo apt update தொகுப்புப் பட்டியல்களைப் புதுப்பிக்கிறது, sudo apt upgrade புதுப்பிப்புகளை நிறுவுகிறது, sudo apt install பெயர் தொகுப்பை நிறுவுகிறது, sudo apt remove அதை நீக்குகிறது (purge — கட்டமைப்புகளுடன்), apt autoremove தேவையற்ற சார்புகளை அகற்றுகிறது. தொகுப்பைக் கண்டறிய apt search மற்றும் apt show உதவுகின்றன; உடைந்த சார்புகளை sudo apt --fix-broken install சரிசெய்கிறது.

apt என்பது Ubuntu, Debian மற்றும் அவற்றின் வழித்தோன்றல்களின் (Linux Mint, Pop!_OS) நிலையான தொகுப்பு மேலாளர். அது களஞ்சியங்களிலிருந்து நிரல்களைப் பதிவிறக்குகிறது, சார்புகளைத் தானாக இழுக்கிறது, ஒரே கட்டளையில் அமைப்பைப் புதுப்பிக்கிறது. கீழே அன்றாட வேலைக்குத் தேவையான எல்லா apt கட்டளைகளும் பணிகளின்படி தொகுக்கப்பட்டுள்ளன, அவற்றுடன் பொதுவான பிழைகளும் அவற்றின் தீர்வுகளும்.

apt எப்படி வேலை செய்கிறது

தொகுப்பு என்பது நிரல், மெட்டாடேட்டா மற்றும் சார்புப் பட்டியல் கொண்ட .deb காப்பகம். களஞ்சியங்கள் தொகுப்புகள் இருக்கும் சேவையகங்கள்; அவற்றின் முகவரிகள் /etc/apt/sources.list-இலும் /etc/apt/sources.list.d/ அடைவிலும் எழுதப்பட்டுள்ளன. apt கிடைக்கும் தொகுப்புகளின் பட்டியலின் உள்ளூர் நகலை வைத்திருக்கிறது, நிறுவும்போது அதனுடனேயே ஒப்பிடுகிறது — அதனால் அதை தவறாமல் புதுப்பிக்க வேண்டும்.

உள்ளே apt குறைந்த நிலை dpkg-ஐ அழைக்கிறது; அது தொகுப்புகளை பிரித்தெடுத்துப் பதிவு செய்கிறது, ஆனால் சார்புகளைத் தீர்க்காது. apt-get மற்றும் apt-cache ஒரே திறனுடன் கூடிய பழைய இடைமுகம்: வெளியீடு நிலையானது, ஸ்கிரிப்ட்களுக்கு வசதியானது. apt மனிதர்களுக்கான புதிய மேல் அடுக்கு: முன்னேற்றப் பட்டை, வண்ணம், சுருக்கமான கட்டளைகள்.

மாற்றம் செய்யும் கட்டளைகள் கிட்டத்தட்ட எல்லாமே நிர்வாகி உரிமைகளைக் கோருகின்றன, எனவே sudo மூலம் இயக்கப்படுகின்றன. தேடலும் தகவல் பார்ப்பதும் அது இல்லாமலேயே வேலை செய்கின்றன.

குறிப்பு: முக்கிய apt கட்டளைகள்

கட்டளைஎன்ன செய்கிறது
sudo apt updateகளஞ்சியங்களிலிருந்து தொகுப்புப் பட்டியல்களைப் புதுப்பிக்கும்
sudo apt upgradeநிறுவப்பட்ட தொகுப்புகளை நீக்காமல் புதுப்பிப்புகளை நிறுவும்
sudo apt full-upgradeதேவைப்பட்டால் தொகுப்புகளை நீக்கி/மாற்றி புதுப்பிக்கும்
sudo apt install தொகுப்புசார்புகளுடன் தொகுப்பை நிறுவும்
sudo apt reinstall தொகுப்புதொகுப்பை மீண்டும் நிறுவும்
sudo apt remove தொகுப்புதொகுப்பை நீக்கி, கட்டமைப்புகளை விட்டுவிடும்
sudo apt purge தொகுப்புதொகுப்பை அமைப்பு கட்டமைப்புகளுடன் சேர்த்து நீக்கும்
sudo apt autoremoveதேவையற்றதாகிவிட்ட சார்புகளை நீக்கும்
apt search சொல்பெயர் மற்றும் விளக்கத்தின்படி தொகுப்பைத் தேடும்
apt show தொகுப்புவிளக்கம், பதிப்பு, சார்புகள், அளவு
apt list --installedநிறுவப்பட்ட தொகுப்புகளின் பட்டியல்
apt list --upgradableஎவற்றைப் புதுப்பிக்கலாம்
apt policy தொகுப்புநிறுவப்பட்ட மற்றும் கிடைக்கும் பதிப்புகள், மூலங்கள்
sudo apt cleanபதிவிறக்கிய .deb-களின் தற்காலிக சேமிப்பை அழிக்கும்
sudo apt --fix-broken installஉடைந்த சார்புகளைச் சரிசெய்யும்

apt update மற்றும் apt upgrade: அமைப்பை எப்படிப் புதுப்பிப்பது

இவை இரண்டு வேறுபட்ட செயல்பாடுகள், அவை அடிக்கடி குழப்பப்படுகின்றன. apt update எதையும் நிறுவுவதில்லை: அது புதிய தொகுப்புப் பட்டியல்களை மட்டுமே பதிவிறக்குகிறது. apt upgrade அந்தப் பட்டியல்களின் அடிப்படையில் நிறுவப்பட்ட நிரல்களின் புதிய பதிப்புகளை நிறுவுகிறது.

$ 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

சேவையகத்துக்கான வழக்கமான இணைப்பு — ஒரே வரியில், தானியங்கி உறுதிப்படுத்தலுடன்:

sudo apt update && sudo apt upgrade -y

upgrade மற்றும் full-upgrade இடையே வேறுபாடு

apt upgrade புதிய சார்புகளை நிறுவலாம், ஆனால் ஏற்கெனவே நிறுவப்பட்ட தொகுப்புகளை ஒருபோதும் நீக்காது. புதுப்பிக்க ஏதேனும் நீக்கப்பட வேண்டியிருந்தால் (எடுத்துக்காட்டாக கர்னல் அல்லது நூலக பதிப்பு மாறும்போது), அத்தகைய தொகுப்புகள் "ஒத்திவைக்கப்படும்" — வெளியீட்டில் The following packages have been kept back வரி தோன்றும். apt full-upgrade (apt-get dist-upgrade-க்குச் சமம்) நீக்கங்களை அனுமதித்து புதுப்பிப்பை முழுமையாக முடிக்கிறது. அதற்கு முன் apt எதை நீக்கப்போகிறது என்று கவனமாகப் படியுங்கள்.

ஒரே ஒரு தொகுப்பை மட்டும் புதுப்பிப்பது

sudo apt install --only-upgrade nginx

தொகுப்பு நிறுவப்படவில்லை என்றால் --only-upgrade உடன் கட்டளை அதை நிறுவாது — தற்செயலான நிறுவலுக்கு எதிரான பாதுகாப்பு.

apt install: தொகுப்புகளை நிறுவுதல்

sudo apt install nginx                 # ஒரு தொகுப்பு
sudo apt install git curl htop         # பலவற்றை ஒரே நேரத்தில்
sudo apt install -y docker.io          # Y/n கேள்வி இல்லாமல்
sudo apt install nginx=1.24.0-2ubuntu7 # குறிப்பிட்ட பதிப்பு
sudo apt install --no-install-recommends ffmpeg  # பரிந்துரைக்கப்பட்ட தொகுப்புகள் இல்லாமல்
sudo apt install ./google-chrome-stable_current_amd64.deb  # உள்ளூர் .deb

நிறுவும்போது apt எந்தத் தொகுப்புகள் சேர்க்கப்படும், எவ்வளவு இடம் எடுக்கும் என்று காட்டி உறுதிப்படுத்தல் கேட்கிறது. -y கொடி தானாக "ஆம்" என்று பதிலளிக்கிறது — ஸ்கிரிப்ட்களிலும் Dockerfile-இலும் வசதியானது, ஆனால் நேரடிப் பணியில் பட்டியலைப் படிப்பது நல்லது.

இயல்பாக apt கட்டாய சார்புகளுடன் (Depends) பரிந்துரைக்கப்பட்டவற்றையும் (Recommends) நிறுவுகிறது. சேவையகங்களிலும் கொள்கலன்களிலும் --no-install-recommends அளவை கணிசமாகக் குறைக்கிறது.

.deb கோப்பை நிறுவுதல்: apt அல்லது dpkg -i

பதிவிறக்கிய .deb-ஐ apt install ./கோப்பு.deb மூலம் நிறுவுவது நல்லது — பாதை கட்டாயம் ./-உடன் அல்லது முழுமையாக இருக்க வேண்டும், இல்லையென்றால் apt அந்தப் பெயரில் களஞ்சியத்தில் தொகுப்பைத் தேடும். dpkg -i-இலிருந்து வேறுபட்டு, apt விடுபட்ட சார்புகளைத் தானாகப் பதிவிறக்குகிறது. தொகுப்பை dpkg மூலம் ஏற்கெனவே நிறுவி சார்புப் பிழை வந்திருந்தால், அதை sudo apt --fix-broken install சரிசெய்கிறது.

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

apt remove, purge மற்றும் autoremove: தொகுப்புகளை நீக்குதல்

கட்டளைநிரல்/etc-இல் கட்டமைப்புகள்சார்புகள்
apt removeநீக்கப்படும்இருக்கும்இருக்கும்
apt purgeநீக்கப்படும்நீக்கப்படும்இருக்கும்
apt autoremove——தேவையற்றவை நீக்கப்படும்
sudo apt remove nginx
sudo apt purge nginx            # அதே + கட்டமைப்புகள்
sudo apt autoremove             # சார்புகளின் எச்சங்கள்
sudo apt autoremove --purge     # எச்சங்கள் அவற்றின் கட்டமைப்புகளுடன்

நிரலை மீண்டும் பயன்படுத்தத் திட்டமிட்டு அதன் அமைப்புகளைச் சேமிக்க விரும்பினால் remove பொருத்தமானது. முழுமையாக புதிதாக மீண்டும் நிறுவ purge. கவனிக்க: பயனரின் வீட்டு அடைவில் உள்ள கோப்புகளை (எடுத்துக்காட்டாக ~/.config) எந்தக் கட்டளையும் நீக்குவதில்லை.

நீக்கப்பட்டவை, ஆனால் கட்டமைப்புகளை விட்டுச் சென்ற தொகுப்புகளைக் கண்டறிய — அவற்றின் நிலை rc:

dpkg -l | grep '^rc'

தொகுப்புகளைத் தேடுதல் மற்றும் அவற்றின் தகவல்

apt search postgresql          # பெயர் மற்றும் விளக்கத்தின்படி தேடல்
apt search --names-only '^php8' # பெயரில் மட்டும், வழக்கமான வெளிப்பாட்டுடன்
apt show htop                  # பதிப்பு, அளவு, சார்புகள், விளக்கம்
apt policy docker.io           # எந்தப் பதிப்புகள் கிடைக்கின்றன, எங்கிருந்து
apt list --installed | grep python3
apt-cache depends curl         # இந்தத் தொகுப்பு எதைச் சார்ந்தது
apt-cache rdepends libssl3     # எது இந்தத் தொகுப்பைச் சார்ந்தது

ஒரு கோப்பு எந்தத் தொகுப்புக்குச் சொந்தமானது

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

$ dpkg -L curl        # தொகுப்பு நிறுவிய கோப்புகள்

கட்டளை அமைப்பில் இன்னும் இல்லையென்றால், அதை இயக்கும்போது Ubuntu தேவையான தொகுப்பைத் தானே பரிந்துரைக்கும் (செய்தி Command 'tree' not found, but can be installed with: sudo apt install tree). நிறுவப்படாத தொகுப்புகளின் கோப்புகளைத் தேட apt-file பயன்பாடு உள்ளது: sudo apt-file update-க்குப் பிறகு apt-file search bin/dig.

பதிப்பைப் பூட்டுதல்: apt-mark hold

சில நேரங்களில் தொகுப்பைப் புதுப்பிக்கக் கூடாது — எடுத்துக்காட்டாக உற்பத்தியில் DBMS அல்லது கர்னல் பதிப்பு கைமுறையாக மட்டுமே மாற்றப்படுகிறது. அதற்காக தொகுப்பு "உறைய வைக்கப்படுகிறது":

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

இன்னொரு பயனுள்ள ஜோடி — apt-mark manual மற்றும் apt-mark auto. சார்புவாக நிறுவப்பட்ட தொகுப்புகள் தானியங்கியாகக் குறிக்கப்படுகின்றன; அவை தேவையற்றதாகும்போது autoremove-இல் சேரும். manual குறி அந்தத் தொகுப்பைப் பாதுகாக்கிறது.

களஞ்சியங்கள்: எப்படிச் சேர்ப்பது, அவை எங்கே உள்ளன

மூலங்களின் பட்டியல் — /etc/apt/sources.list-இலும் /etc/apt/sources.list.d/*.list கோப்புகளிலும். Ubuntu 24.04 மற்றும் Debian 12+-இல் .sources நீட்சியுடன் deb822 வடிவம் அதிகம் பயன்படுகிறது (எடுத்துக்காட்டாக /etc/apt/sources.list.d/ubuntu.sources).

கையொப்ப விசையுடன் மூன்றாம் தரப்பு களஞ்சியம்

நவீன வழி — களஞ்சியத்தின் விசையைத் தனியாக வைத்து signed-by மூலம் இணைப்பது. apt-key கட்டளை வழக்கற்றுப் போனது, புதிய பதிப்புகளில் நீக்கப்பட்டுவிட்டது.

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

Ubuntu-இல் PPA

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

PPA என்பது Launchpad-இல் உள்ள தனிப்பட்ட களஞ்சியங்கள். நீங்கள் நம்பும் களஞ்சியங்களை மட்டும் சேர்க்கவும்: அவற்றிலிருந்து வரும் தொகுப்புகள் root உரிமையுடன் நிறுவப்படுகின்றன.

தற்காலிக சேமிப்பும் வட்டு இடமும்

பதிவிறக்கிய தொகுப்புகள் /var/cache/apt/archives/-இல் இருக்கும். சிறிய வட்டுகளிலும் Docker படங்களிலும் இந்த சேமிப்பை அழிப்பது நல்லது.

du -sh /var/cache/apt/archives
sudo apt clean          # எல்லா .deb தற்காலிக சேமிப்பையும் நீக்கு
sudo apt autoclean      # காலாவதியான பதிப்புகளை மட்டும் நீக்கு

Dockerfile-இல் நிறுவலை ஒரே அடுக்காக எழுதி, உடனே தொகுப்புப் பட்டியல்களை நீக்குவது வழக்கம்:

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

ஸ்கிரிப்ட்களில் apt-க்குப் பதில் apt-get பயன்படுத்துகிறார்கள்: apt-இன் இடைமுகம் நிலையானது அல்ல என்று அதுவே எச்சரிக்கிறது (WARNING: apt does not have a stable CLI interface). நிறுவி கேள்வி கேட்காமல் இருக்க DEBIAN_FRONTEND=noninteractive சேர்க்கப்படுகிறது.

apt-இன் பொதுவான பிழைகளும் அவற்றின் தீர்வும்

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

வேறொரு செயல்முறை ஏற்கெனவே தொகுப்புகளுடன் வேலை செய்கிறது: இன்னொரு முனையத்தில் apt திறந்திருக்கிறது, "பயன்பாட்டு மையம்" அல்லது பின்னணி தானியங்கி புதுப்பிப்புகள் unattended-upgrades இயங்குகின்றன. சில நிமிடங்கள் காத்திருங்கள், பூட்டை யார் வைத்திருக்கிறார்கள் என்று பாருங்கள்:

ps aux | grep -E 'apt|dpkg'

செயல்முறை உயிருடன் இருக்கும்போது பூட்டுக் கோப்புகளை கைமுறையாக நீக்காதீர்கள்: குறுக்கிடப்பட்ட நிறுவல் அமைப்பை ஒத்திசைவற்ற நிலையில் விட்டுவிடலாம். செயல்முறை உண்மையில் சிக்கியிருந்தாலோ கொல்லப்பட்டிருந்தாலோ, அது முடிந்த பிறகு sudo dpkg --configure -a இயக்குங்கள்.

Unable to locate package

apt தொகுப்பைக் கண்டுபிடிக்கவில்லை. பெரும்பாலும் புதிய அமைப்பில் sudo apt update செய்யவில்லை, பெயரில் எழுத்துப்பிழை உள்ளது, அல்லது தொகுப்பு முடக்கப்பட்ட கூறில் உள்ளது (Ubuntu-இல் universe). கூறை sudo add-apt-repository universe மூலம் இயக்கலாம்.

Unmet dependencies / held broken packages

சார்புகள் ஒத்துப்போகவில்லை — பொதுவாக .deb-ஐ கைமுறையாக நிறுவிய பின் அல்லது வேறு பதிப்புகளின் களஞ்சியங்களைக் கலந்த பிறகு.

sudo apt --fix-broken install
sudo dpkg --configure -a
apt policy சிக்கல்-தொகுப்பு

dpkg was interrupted

நிறுவல் குறுக்கிடப்பட்டது (முனையம் மூடப்பட்டது, மின்சாரம் போனது). செய்தியே தீர்வைச் சொல்கிறது: sudo dpkg --configure -a.

apt update-இல் NO_PUBKEY

மூன்றாம் தரப்பு களஞ்சியத்திற்கு கையொப்ப விசை இல்லை அல்லது காலாவதியானது. திட்டத்தின் தளத்திலிருந்து புதிய விசையை /etc/apt/keyrings/-இல் பதிவிறக்கி, மேலே Docker எடுத்துக்காட்டில் உள்ளதைப் போல signed-by-இல் குறிப்பிடுங்கள்.

பாதுகாப்பு புதுப்பிப்புகள் தானாக

Ubuntu Server-இல் இயல்பாக unattended-upgrades தொகுப்பு உள்ளது; அது பாதுகாப்பு புதுப்பிப்புகளைத் தானாக நிறுவுகிறது. அதைச் சரிபார்த்து இயக்க:

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

புதுப்பிப்புக்குப் பிறகு மறுதொடக்கம் தேவையா என்பதை /var/run/reboot-required கோப்பு காட்டுகிறது: அது இருந்தால் கர்னல் அல்லது முக்கிய நூலகங்கள் புதுப்பிக்கப்பட்டுள்ளன.

சுருக்கம்

அடிப்படை apt கட்டளைகள் குறுகிய சுழற்சியில் அடங்கும்: எதற்கு முன்பும் update, நிறுவலுக்கு install, புதுப்பிப்புக்கு upgrade, நீக்கலுக்கு remove அல்லது purge, சுத்தம் செய்ய autoremove. பதிப்புகளுக்கு apt policy மற்றும் apt-mark hold, பழுதுகளுக்கு --fix-broken install மற்றும் dpkg --configure -a; ஸ்கிரிப்ட்களில் apt-get பயன்படுத்துங்கள். தொகுப்பு மேலாண்மை Linux பாடநெறியில் நடைமுறையுடன் விளக்கப்பட்டுள்ளது.

அடிக்கடி கேட்கப்படும் கேள்விகள்

apt மற்றும் apt-get இடையே என்ன வேறுபாடு?

இவை ஒரே தொகுப்பு அமைப்புக்கான இடைமுகங்கள். apt முனையப் பணிக்கு வசதியானது (முன்னேற்றம், வண்ணம், சுருக்கமான கட்டளைகள்), apt-get நிலையான வெளியீடு கொண்டது, ஸ்கிரிப்ட்களுக்கும் Dockerfile-க்கும் பரிந்துரைக்கப்படுகிறது.

ஒவ்வொரு நிறுவலுக்கு முன்பும் apt update செய்ய வேண்டுமா?

பட்டியல்கள் நீண்ட காலமாகப் புதுப்பிக்கப்படவில்லை என்றால் நல்லது: இல்லையென்றால் apt தொகுப்பைக் கண்டுபிடிக்காமல் போகலாம், அல்லது கண்ணாடி சேவையகத்தில் இனி இல்லாத பதிப்பைப் பதிவிறக்க முயன்று 404 பிழை தரலாம்.

apt நிறுவல்கள் மற்றும் நீக்கங்களின் வரலாற்றை எப்படிப் பார்ப்பது?

வரலாறு /var/log/apt/history.log-இல் எழுதப்படுகிறது (பழைய பதிவுகள் history.log.N.gz காப்பகங்களில்), விரிவான dpkg பதிவு — /var/log/dpkg.log-இல்.

தொகுப்பை முந்தைய பதிப்புக்குத் திரும்பப் பெறுவது எப்படி?

apt policy தொகுப்பு மூலம் கிடைக்கும் பதிப்புகளைப் பாருங்கள், தேவையானதை sudo apt install தொகுப்பு=பதிப்பு மூலம் நிறுவுங்கள், பின்னர் அடுத்த புதுப்பிப்பு புதிய பதிப்பை மீண்டும் கொண்டுவராமல் இருக்க apt-mark hold மூலம் பூட்டுங்கள்.

CentOS அல்லது Fedora-வில் apt பயன்படுத்த முடியுமா?

முடியாது, அங்கே வேறு தொகுப்பு வடிவம் (rpm) மற்றும் தனி மேலாளர்கள் — dnf மற்றும் yum. apt Debian, Ubuntu மற்றும் அவற்றிலிருந்து வந்த விநியோகங்களில் மட்டுமே வேலை செய்கிறது.

இந்தத் தலைப்பை வீடியோவில் கற்றுக்கொள்ளுங்கள்

“Linux: с нуля до уверенного администрирования” பாடநெறியில் இந்தத் தலைப்பு பயிற்சியுடன் விரிவாக விளக்கப்பட்டுள்ளது.

பாடநெறிக்குச் செல்