- dpkg је менаџер пакета ниског нивоа који инсталира и уклања локалне .deb датотеке без решавања зависности.
- APT делује као слој високог нивоа изнад dpkg-а, управљајући спремиштима, кеширањем и аутоматским решавањем зависности.
- apt, apt-get и aptitude су различити APT фронтенди, дизајнирани за различите намене: крајњег корисника, скриптовање и напредно управљање.
- Избор правог алата за контекст поједностављује администрацију и смањује грешке на Дебијану и његовим изведеним системима.

У дистрибуцијама заснованим на Дебијану (као што су Ubuntu, Linux Mint или Devuan), веома је често да се постави питање о Која је разлика између коришћења dpkg, apt, apt-get или чак aptitude?На први поглед, сви они раде исту ствар: инсталирају, ажурирају и бришу програме. Међутим, сваки од њих игра другачију улогу у софтверском екосистему, а разумевање овога ће вам уштедети много главобоља.
У овом чланку ћемо мирно објаснити како то функционише dpkg као менаџер ниског нивоаШта APT доноси као горњи слој и по чему се разликују? apt, apt-get и aptitudeи које основне команде треба да савладате у сваком случају. Идеја је да ћете до краја читања имати јасно разумевање. када користити сваки алат и заштокако у свакодневним задацима, тако и у напреднијим задацима или скриптама.
Темељ свега: dpkg, менаџер пакета ниског нивоа
Стуб на коме се заснива цео систем пакета у Дебијану је dpkg, изворни менаџер пакета који ради директно са .deb датотекамаБио је то први менаџер пакета за Дебијан и до данас остаје стандард за све изведене дистрибуције. Ако долазите са RPM-а, можете конвертовати пакете са Конвертујте пакете помоћу програма Alien да генерише .deb датотеке које се могу инсталирати помоћу dpkg.
За разлику од алата високог нивоа, dpkg се бави само Инсталирајте, деинсталирајте и истражите локалне .deb пакетеНе обрађује удаљене репозиторијуме, не преузима пакете са интернета нити самостално решава зависности. Ако инсталирате нешто помоћу dpkg-а, а библиотека недостаје, мораћете то ручно да поправите.
То чини dpkg идеалним алатом за управљати пакетима на веома прецизан и контролисан начин (на пример, када ручно преузимате .deb датотеку или када правите сопствене пакете), али то такође значи да морате тачно знати шта радите са зависностима.
Бинарни пакет који пружа овај услужни програм у Дебијану укључује, поред dpkg-а, и друге сродне алате као што су dpkg-deb, dpkg-split, dpkg-query, dpkg-divert или dpkg-trigger, заједно са помоћним услугама као што су update-alternatives o start-stop-daemonЗа задатке изградње пакета постоји посебан пакет. dpkg-dev, који додаје алате за компајлирање.
Наведите пакете и стања помоћу dpkg-а
Једна од првих ствари која је обично потребна сваком администратору је проверите који су пакети инсталирани на системуСа dpkg-ом, ово се може урадити на неколико начина:
dpkg -l: приказује листу пакета са њиховим статусом (инсталиран, обрисан, итд.).dpkg -l nombre_paquete: филтрира само за тај пакет и говори вам да ли је инсталиран или не.dpkg --get-selections: приказује комплетну листу пакета и ваш тренутни избор.dpkg --get-selections paqueteБрзо проверава да ли је одређени пакет означен као инсталиран, деинсталиран итд.
Занимљив детаљ је то dpkg –get-selections такође приказује пакете у стању „деинсталирање“То су пакети који су деинсталирани, али и даље задржавају конфигурационе датотеке или метаподатке на систему. Касније ћемо видети како се ово другачије одражава приликом упита помоћу APT-а.
Инсталирајте, уклоните и очистите пакете помоћу dpkg-а
За директан рад са преузетом .deb датотеком, dpkg пружа веома јасне команде за Инсталирајте и деинсталирајте одређене пакете без проласка кроз репозиторијуме:
dpkg -i paquete.debинсталирати наведени пакет (инсталирати).dpkg -r nombre_paquete: уклања пакет, али оставља његове конфигурационе датотеке (уклони).dpkg -P nombre_paquete: врши потпуно чишћење, такође бришући повезане конфигурационе датотеке (чишћење).
Када се користи опција -P уместо -r И бинарне датотеке и конфигурационе датотеке се чисте, што је веома корисно ако желите да систем остане као да никада нисте инсталирали ту апликацију. Оно што dpkg неће урадити, понављамо, јесте Аутоматски уклони зависности које су инсталиране само за тај пакетМораћете то сами да решите или да се ослоните на АПТ.
Погледајте информације и садржај .deb пакета
Још једна занимљива карактеристика је могућност да проверите шта .deb пакет садржи или које метаподатке укључујеТу долази до изражаја корисност. dpkg-deb, укључен у сам dpkg пакет:
dpkg-deb -I paquete.deb: приказује детаљне информације о пакету (име, верзију, зависности, одржаваоца итд.).dpkg-deb --contents paquete.deb: наводи све датотеке које би биле инсталиране на систему приликом инсталирања тог .deb фајла.
Ове опције су веома практичне када вам је потребно проверите тачно шта ће пакет радити у вашем систему или када отклањате грешке у проблемима са путањама и датотекама које је инсталирао одређени .deb.
APT: слој високог нивоа изнад dpkg-а
APT (Напредни алат за пакете) је изграђен на бази dpkg-а, који је колекција библиотека и услужних програма који додају решавање зависности и управљање репозиторијумомУместо директног контакта са .deb датотекама, већина корисника интерагује са овим слојем, који заузврат позива dpkg за операције ниског нивоа.
APT се углавном пише као C++ библиотека која пружа функције за манипулацију базом података пакета, верзија, порекла и односаНеколико фронтендова командне линије ослања се на ову библиотеку: apt-get, apt-cache, apt а такође и спољни алати као што су aptitude или графички интерфејси типа Synaptic.
У свим тренутним верзијама Дебијана, пакет apt има „важан“ приоритет, што значи да То је део сваке основне инсталације системаИ, иако dpkg остаје језгро, за просечног корисника „менаџер пакета“ за свакодневну употребу је APT, који такође Коегзистира са другим форматима као што је Flatpak на многим модерним столовима.
Једна од најмоћнијих карактеристика APT-а је то што организује инсталацију и деинсталацију пакета оптималним редоследомПре покретања dpkg-а, он врши тополошко сортирање листе пакета како би се минимизирали конфликти, и само у тешким случајевима прибегава форсирању интерних dpkg акција са опцијама. --force ако не можете пронаћи безбедну алтернативу.
Репозиторијуми и датотека sources.list
АПТ увек ради од софтверски репозиторијуми декларисани у конфигурационим датотекамаГлавна датотека је /etc/apt/sources.listОвде су дефинисани званични изворни кодови пакета за Дебијан или Убунту, а могу се додати и додатни репозиторијуми трећих страна. Ако вам је потребно креирајте сопствени репозиторијум софтвера Ово ће вам бити корисно да разумете како да циљате APT на прилагођени извор.
Поред главне датотеке, уобичајено је имати додатне датотеке испод /etc/apt/sources.list.d/ за одређене репозиторијуме. Ове тачке могу се односити на локалне директоријуме или физичке медије (као што је CD/DVD), као и на удаљене сервере доступне путем HTTP, HTTPS или FTP.
АПТ такође одржава локални кеш информација о свим пакетима доступним у тим репозиторијумимаУглавном се чува под /var/lib/apt/ и ажурира се помоћу познате команде apt update o apt-get update.
За практично уређивање фонтова, сам пакет укључује команда apt edit-sources, што отвара главну датотеку помоћу подразумеваног уређивача текста у терминалу sources.list или датотеку коју наведете. Ако немате конфигурисан едитор, затражиће од вас да изаберете један (nano, vim, neovim, итд.) и од тада ће увек користити тај.
Зависност пакета и управљање стањем
Велика разлика у поређењу са dpkg је у томе што је APT Аутоматски обрађује решавање и преузимање зависности.Када захтевате инсталацију пакета, он израчунава који су други пакети потребни, које верзије су компатибилне и који конфликти могу настати, и тек тада позива dpkg да би имплементирао промене. За дијагностичке и дебаговање задатке, можете се консултовати како листа зависности пакета и избегавајте квар система приликом инсталирања нечега.
APT такође одржава додатну датотеку, /var/lib/apt/extended_statesгде бележи да ли је пакет експлицитно инсталирао корисник или је то зависност од другог. Ова информација је кључна за функције као што су apt autoremove како би могли да открију који пакети су кандидати за брисање јер су „напуштени“.
Што се тиче држава, постоји једна занимљива нијанса: APT, када се користи apt list --installed, Прескочи пакете означене као „деинсталирај“ (оне које су деинсталиране, али су задржале своју конфигурацију). Оне се појављују у излазу програма apt list као што је „резидуална конфигурација“, док dpkg --get-selections Да, приказује их директно. Ако се нека листа не подудара, препоручљиво је прегледати оригиналне резултате и филтрирати помоћу grep да анализира те граничне случајеве.
Основне apt команде за свакодневну употребу
Доласком модерне команде aptДебијан и Убунту пружају кориснички пријатнији интерфејс за уобичајене задатке управљања пакетимаобједињујућих функција које су раније биле подељене између apt-get y apt-cacheИако интерно користи исте библиотеке, његова синтакса је практичнија, а излаз читљивији; штавише, коегзистира са другим форматима на десктопу, као што је Управљање AppImage-ом у Линуксу.
Датотека /etc/apt/sources.list које смо раније поменули концентрише се по подразумеваним подешавањима Информације о свим репозиторијумима које користи apt, за разлику од алата као што су yum који обично обрађују више конфигурационих датотека. Ово знатно поједностављује почетно подешавање за мање искусне кориснике.
Ажурирајте информације о репозиторијуму
Пре него што било шта инсталира, APT мора имати ажурирана листа пакета репозиторијума Да бисте сазнали које су верзије доступне, користите:
apt update: поново преузима индексе пакета из свих конфигурисаних спремишта.
Разлика са старим apt-get update је то apt приказује веома корисне додатне информације, као што је број пакета који се могу ажурирати и порука која предлаже покретање apt list --upgradable да их видим детаљно.
Претражите пакете у репозиторијумима
Да бисмо пронашли програм или библиотеку међу доступним, можемо користите уграђену претрагу APT-аТрадиционално, ово се радило са apt-cache searchали команда apt поједноставите синтаксу:
apt search nombreoapt-cache search nombreОни претражују базу података преузетих пакета за наведени текст.
Овако је једноставно видети који пакет одговара одређеној апликацији (на пример, потражите „gimp“, „vlc“ или „libreoffice“) и проверите да ли је доступно за вашу верзију дистрибуције.
Инсталирајте и деинсталирајте пакете помоћу apt-а
Најчешћа операција коју ћете изводити са APT-ом је инсталирање и уклањање софтвера из репозиторијумаСинтакса је овде веома једноставна:
apt install paquete: инсталира тражени пакет и све што му је потребно као зависност.apt remove paquete: деинсталира пакет, али задржава његове конфигурационе датотеке.apt remove --purge paqueteoapt purge paquete: уклања пакет и његове системске конфигурационе датотеке.
Само када се користи remove, „Остаци“ могу остати у облику конфигурационих директоријума или конфигурационих датотекаОво је нормално, тако да ако поново инсталирате апликацију, она ће сачувати ваша подешавања. Ако желите потпуно уклањање, опција чишћења је права опција.
Очистите одељења и уклоните преостале пакете
Након инсталирања и деинсталирања апликација током времена, оне се акумулирају Пакети који су инсталирани као зависности других пакета, али више нису потребниДа би ослободио простор и одржао систем чистим, APT нуди:
apt autoremove: уклања аутоматски инсталиране зависности које више нису потребне ниједном тренутно инсталираном пакету.
Ова наредба је посебно корисна јер периодичне мере одржавањајер уклања старе библиотеке и датотеке које само троше простор, а не доприносе ништа тренутном систему.
Ажурирајте инсталиране пакете помоћу apt-а
Када се индекси спремишта ажурирају, следећи корак је Примените доступна ажурирања за инсталиране пакетеAPT разликује два нивоа ажурирања:
apt upgrade: ажурира инсталиране пакете на њихове најновије верзије, све док не захтевају драстично инсталирање или уклањање додатних пакета.apt full-upgrade: врши агресивније ажурирање, омогућавајући вам да инсталирате или уклоните пакете ако је потребно да бисте завршили процес (еквивалентно старомapt-get dist-upgrade).
Уобичајено је трчати први apt update сегуидо де apt upgrade као део рутинског одржавања и резерве full-upgrade за веће промене верзије или када се ажурирају језгро и важне компоненте.
Остале корисне команде из apt пакета
Поред најпопуларнијих поруџбина, APT укључује Неке додатне команде које знатно олакшавају живот:
apt show paquete: приказује детаљне информације о пакету (опис, верзију, зависности, репозиторијум изворног кода итд.), са уређеним излазом и без небитних података.apt list: наведите пакете према различитим филтерима; са--installedприказује инсталирано и са--upgradableоне које имају доступно ажурирање.apt edit-sources: Отвара изворни APT фајл за измену спремишта.
Све ово чини apt је нека врста „швајцарског ножа“ за управљање пакетима, покривајући већину задатака које просечан корисник обавља свакодневно, без потребе да памти огромну количину подкоманди.
Apt-get и aptitude: други класични APT фронтенди
Иако команда apt стекао је значај последњих година, apt-get и aptitude остају веома релевантни алати у Дебијановом екосистему. Сваки од њих има своје место и постоје убедљиви разлози да се зна у ком контексту је прикладно користити их.
Историјски, apt-get био први интерфејс командне линије за APTПрисутан од краја 90-их и представљен у безбројним скриптама и документацији, дизајниран је да понуди стабилан и предвидљив интерфејс, идеалан за аутоматизацију и неинтерактивне задатке.
Са своје стране, aptitude рођен као паметнија и практичнија алтернатива за кориснике који преферирају интерактивно окружењеНуди и CLI режим компатибилан са скриптама и интерфејс у текстуалном режиму (ncurses) са менијима, филтерима и организованим приказима пакета.
Типичне apt-get функције и команде
са apt-get можете обављати практично исте задатке као и са aptМеђутим, има нешто детаљнију синтаксу и мање једноставан излаз за коришћење. Његове најчешће коришћене команде су:
apt-get update: ажурира индексе спремишта.apt-get upgradeАжурира инсталиране пакете без превише наметљивих промена.apt-get dist-upgradeеквивалентноapt full-upgradeмодеран, што вам омогућава да инсталирате и уклањате пакете како бисте завршили сложену надоградњу.apt-get install paquete: инсталира пакет из репозиторијума решавањем зависности.apt-get remove paqueteyapt-get purge paqueteОни уклањају пакете, са или без њихових конфигурационих датотека.
Кључна предност apt-get-а је то што Његово понашање остаје изузетно стабилно између верзијаЗбог тога, програмери Дебијана препоручују наставите да га користите у скриптама и аутоматизацијама, синце apt Више је оријентисан ка крајњем кориснику и може мењати детаље излаза или подразумеване вредности током времена.
Aptitude: ncurses интерфејс и напредно решавање зависности
За разлику од apt и apt-get, aptitude доприноси веома комплетан интерфејс у текстуалном режиму који се покреће једноставним покретањем sudo aptitude Без расправе. Са тог екрана можете:
- Претражујте по категоријама пакета (инсталирани, доступни, застарели итд.).
- Претражите и филтрирајте пакете користећи различите критеријуме (име, опис, статус).
- Изаберите више пакета за инсталирање, ажурирање или уклањање и примените све промене одједном.
Његова највећа техничка снага лежи у систем за решавање зависности заснован на резултатима и алтернативамаКада постоји сложен конфликт, aptitude обично нуди неколико решења (на пример, деинсталирање пакета, задржавање старије верзије или инсталирање додатних) и омогућава кориснику да означи које делове предлога жели да задржи или одбаци у следећем покушају решавања.
Из перспективе командне линије, aptitude Такође подржава команде као што су:
aptitude update: да ажурирате листу пакета.aptitude install paqueteyaptitude remove paqueteИнсталирајте и уклоните пакете на начин сличан команди apt-get.aptitude full-upgrade: извршити комплетно ажурирање са сопственом логиком решавања зависности.
Штавише, способност Детаљно бележи који су пакети инсталирани ручно, а који су инсталирани као зависности.и има опције за замрзавање верзија, обележавање пакета ради спречавања ажурирања итд. Неке од ових функција могу се данас реплицирати помоћу apt-markМеђутим, администратори који га користе годинама и даље веома цене способност.
Кључне разлике између dpkg, APT, apt-get, apt и aptitude
Након што погледате сваки алат посебно, корисно је направити групну фотографију да бисте разумели. Које су тачно разлике између њих и када је прикладно користити сваки од њих?Могли бисмо то сумирати у три нивоа: низак, средњи и висок.
На најосновнијем нивоу постоји dpkg, који делује директно на локалне .deb пакетеНе решава зависности нити комуницира са репозиторијумима; једноставно инсталира, деинсталира или приказује информације о одређеном пакету. Често се упоређује са RPM у свету Red Hat-а, пошто испуњавају сличне функције у својим одговарајућим фамилијама дистрибуција.
На средњем/високом нивоу имамо APT као систем за управљање пакетима са репозиторијумима, кеширањем информација и аутоматским решавањем зависностиОн пружа логику за то шта се инсталира и одакле, која је најбоља верзија итд. У свету Ред Хет-а, паралелизам би се могао наћи у алатима као што су YUM или DNF се покреће на RPM-у.
Изнад APT су његови различити фронтенди:
apt-get: класичан, робустан и стабилан интерфејс, високо оријентисан ка скриптама и аутоматизацији.apt: модерни кориснички интерфејс, који обједињује функције apt-get и apt-cache и нуди јаснији излаз.aptitude: менаџер пакета високог нивоа са опционим TUI ncurses-ом и посебно софистицираним системом за решавање зависности.
Ако се фокусирамо на АПТ наспрам ДПКГ, фундаментална разлика је у томе што APT може да преузима пакете из удаљених репозиторијума, управља вишеструким изворима и обрађује све зависности., док DPKG инсталира и уклања само пакете које му проследите као локалну датотеку.
Ако упоредимо apt и apt-get, оба нуде веома сличне функције за инсталирање, ажурирање или уклањање пакетаАли apt побољшава презентацију информација, укључује траке напретка током инсталација и комбинује у једну команду ствари које су претходно урађене са apt-get y apt-cacheНасупрот томе, apt-get пружа конзервативнији и стабилнији API командне линије током времена.
Што се тиче способности, њена главна одлика је ncurses интерфејс и напредно решавање сукоба зависностиДок apt и apt-get покушавају да пронађу „најбоље“ решење одједном, aptitude омогућава кориснику да интерактивно учествује у процесу, одлучујући које пакете да задржи, које да спусти наниже ранг или које да уклони.
Када користити dpkg, apt, apt-get или aptitude на Debian системима
Када се разлике разјасне, питање које многи људи постављају је коју команду користити у свакој конкретној ситуацијиНе постоји један тачан одговор, али постоје прилично разумни обрасци које многи администратори и напредни корисници прате.
За свакодневну употребу на десктоп рачунару или лаганом серверском систему, најпогоднија опција је обично користи команду apt за скоро све: ажурирање репозиторијума, претраживање апликација, инсталирање и деинсталирање пакета, проверавање шта се може ажурирати и објављивање редовних ажурирања.
Када се бавимо закажите скрипте за инсталацију, распоређивање или одржавањеСама званична документација саветује да се настави ослањати на apt-get (y apt-cache (за упите), пошто су његово понашање и опције излаза много стабилније између верзија него код aptшто може променити ситне детаље јер је дизајнирано за људе, а не толико за машине.
dpkg је првенствено резервисан за операције ниског нивоа са ручно преузетим .deb пакетимаКорисно је за преглед садржаја или за случајеве када вам је потребна веома фина контрола и не желите да се APT меша решавањем зависности уместо вас. Такође је веома корисно за софистициране скрипте за паковање или за отклањање грешака у специфичним проблемима са .deb датотекама.
Са своје стране, способност обично блиста када Суочавате се са заиста компликованим сукобима зависности у старијим или веома прилагођеним Дебијан окружењима. Његов механизам за решавање проблема обично нуди више алтернатива, а његов ncurses интерфејс је веома погодан за истраживање промена које ће бити направљене пре прихватања веће операције.
На крају крајева, цео овај екосистем алата постоји зато што Сваки ниво решава другачији проблем у оквиру управљања пакетима у Дебијануdpkg као опрема ниског нивоа, APT као мозак који одлучује шта ће се инсталирати и одакле, и његови различити фронтенди (apt, apt-get, aptitude) као видљива лица прилагођена различитим корисничким профилима, од најновијих до администратора који живи залепљен за терминал.
Страствени писац о свету бајтова и технологије уопште. Волим да делим своје знање кроз писање, и то је оно што ћу радити на овом блогу, показивати вам све најзанимљивије ствари о гаџетима, софтверу, хардверу, технолошким трендовима и још много тога. Мој циљ је да вам помогнем да се крећете у дигиталном свету на једноставан и забаван начин.