[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Ово је стара верзија документа!


This page is still work in progress
Страна је у изради

Управљање пакетима

Управљање пакетима је суштински део сваке Линукс дистрибуције. Сваки део софтвера који је укључен у Слеквер, поред многих алатки треће стране је дистрибуиран као изворни кôд који се компилује, али компиловање хиљаде различитих апликација и библиотека је досадно и одузима много времена. Зато већина корисника преферира инсталацију прекомпилираних пакета софтвера. Заправо, при инсталацији Слеквера, програм setup је првенствено радио примењујући алатке за управљање пакетима на листу пакета. Овде ћемо се позабавити различитим алаткама које се користе за руковање пакетима у Слекверу.

pkgtool

Најједноставнији начин за извршавање задатака који се тичу управљања пакетима је позивање pkgtool(8), сучеља којим управљате из изборника. pkgtool вам омогућује инсталацију и уклањање пакета као и преглед садржаја пакета, али и увид у списак тренутно инсталираних пакета, а све то у ncurses сучељу које је прилагођено кориснику.

pkgtool

pkgtool је погодан и једноставан начин за извршавање основних задатака, али за напредније задатке потребне су флексибилније алатке.

Инсталација, уклањање и надоградња пакета

Док pkgtool поентира на поузданости, installpkg(8) је способнији кад је у питању руковање задацима као што су брза инсталација једног пакета, инсталација комплетног сета пакета, или скриптовање и инсталација. installpkg узима списак пакета за инсталацију и једноставно их инсталира без постављања питања. Попут свих Слекверових алата за управљање пакетима, овај предпоставља да знате шта радите и не претендује да буде паметнији од вас. У својој најједноставнијој форми, installpkg узима списак пакета за инсталацију и ради управо оно што ви очекујете.

darkstar:~# installpkg blackbox-0.70.1-i486-2.txz
Verifying package blackbox-0.70.1-i486-2.txz.
Installing package blackbox-0.70.1-i486-2.txz:
PACKAGE DESCRIPTION:
# blackbox (Blackbox window manager)
#
# Blackbox is that fast, light window manager you have been looking for
# without all those annoying library dependencies.
#
# Also included in this package is the bbkeys utility for controlling
# keyboard shortcut commands from within Blackbox.
#
# The Blackbox home page is http://blackboxwm.sourceforge.net
#
Package blackbox-0.70.1-i486-2.txz installed.

Можете инсталирати више пакета одједном и користити џокере или знакове замене. Следећа команда ће инсталирати све из „N“ серије пакета са монтираног диска.

darkstar:~# installpkg /mnt/cdrom/slackware/n/*.txz

Можете видети који су све пакети инсталирани на вашем систему листајући садржај фасцикле /var/log/packages, где ће поред имена пакета бити приказана и верзија. Уколико треба да сазнате који су све појединачни фајлови инсталирани као део неког пакета, примените команду cat на пакет.

darkstar:~#cat /var/log/packages/foo-1.0-x86_64.txz

Ово ће дати излаз у коме ћете моћи да видите све, од величине пакета, описа о сврси и функцији пакета (шта дати програм ради), имена и локације сваког фајла инсталираног као део пакета.

Уклањање пакета је подједнако лако као инсталирање. Као што можете предпоставити, команда за извршавање овог задатка је removepkg(8). Једноставно јој реците који пакет да уклони, и removepkg ће проверити садржај базе података пакета и уклниће све фајлове и директоријуме тог пакета. Уколико је одређени фајл укључен у више инсталираних пакета, биће прескочен и уколико у одређеном директоријуму има нових фајлова, директоријум ће бити остављен нетакнут. Зато уклањање пакета траје знатно дуже од инсталирања истих.

darkstar:~# removepkg blackbox-0.70.1-i486-2.txz

На крају, надоградња се врши једноставно помоћу команде (већ погађате) upgradepkg(8) која прво инсталира нови пакет па онда уклања фајлове и директоријуме који су преостали, а везани су за стари пакет. Битна ствар коју треба да запамтите је да upgradepkg не проверава да ли је верзија претходно инсталираног пакета већа од верзије „новог“, тако да се иста команда може користити и за враћање пакета са нижом верзијом (енгл. downgrade).

darkstar:~# upgradepkg blackbox-0.70.1-i486-2.txz

+==============================================================================
| Upgrading blackbox-0.65.0-x86_64-4 package using
./blackbox-0.70.1-i486-2.txz
+==============================================================================

Pre-installing package blackbox-0.70.1-i486-2...

Removing package
/var/log/packages/blackbox-0.65.0-x86_64-4-upgraded-2010-02-23,16:50:51...
--> Deleting symlink /usr/share/blackbox/nls/POSIX
--> Deleting symlink /usr/share/blackbox/nls/US_ASCII
--> Deleting symlink /usr/share/blackbox/nls/de
--> Deleting symlink /usr/share/blackbox/nls/en
--> Deleting symlink /usr/share/blackbox/nls/en_GB
...
Package blackbox-0.65.0-x86_64-4 upgraded with new package
./blackbox-0.70.1-i486-2.txz.

Све ове алатке имају корисне аргументе. На пример, аргумент –root ће навести команду installpkg да инсталира пакет у произвољни директоријум. Аргумент –dry-run ће упутити команду upgradepkg да вас једноставно обавести шта намерава да уради, а да притом не начини ниједну измену у вашем систему. За све детаље погледајте (као и увек) man странице.

Формати компресије пакета

Раније су сви Слеквер пакети били компримовани помоћу gzip(1) алатке, што је био добар компромис између брзине компримовања и величине. Недавно је додата нова шема компримовања, па су и алатке за управљање пакетима надограђене. Данас су званични Слеквер пакети компримовани помоћу xz алатке и завршавају се .txz проширењем. Старији пакети (и многи пакети треће стране) и даље користе .tgz проширење.

Треба нагласити да су .tgz и .txz (или, сажето .t?z фајлови) стандардна, неретка проширења за компримоване .tar фајлове. Ово има многе предности; лако се изграђују на скоро свим Јуникс системима (многи други формати пакета захтевају специјалне алате за изградњу), и једноставно се разграђују.

Међутим, важно је схватити да то што су сви Слеквер пакети .t?z фајлови не значи да су и сви .t?z фајлови истовремено Слеквер пакети. Installpkg неће инсталирати сваки .t?z фајл, већ само Слеквер пакете.

slackpkg

Slackpkg ја аутоматизована алатка за управљање Слеквер пакетима. До издања 12.1 Слеквера била је смештена у extra/, а од издања 12.2 у ap/ серији основне инсталације.

Као што можете да користите installpkg за инсталирање Слеквер пакета из extra/ директоријума на инсталационом медијуму, slackpkg можете користити за свлачење пакета са интернета и инсталацију истих. Ово је посебно корисно за сигурносна ажурирања и надоградње значајних апликација које су постављене на Слекверовим серверима, које ћете можда почети да користите на свом систему.

Без slackpkg алатке, процес би изгледа овако:

  1. Проверите у Слекверовој историји измена (енгл. changelog) да ли је ажурирање доступно.
  2. Пронађите у локалном Слекверовом огледалу везу за преузимање пакета
  3. Преузмите пакет на ваш чврсти диск.
  4. Користите installpkg или pkgtool за инсталацију преузетог пакета.

Са slackpkg алатком, цео процес се састоји из следећег:

  1. Проверите у Слекверовој историји измена да ли је ажурирање за foo доступно.
  2. slackpkg install foo

Очито, ово знатно поједностављује један овакав уобичајен задатак.

Да бисте користили slackpkg, подесите Слеквер огледало уређујући фајл /etc/slackpkg/mirrors као root корисник. Пронађите огледало које одговара верзији и архитектури вашег Слеквера и откоментаришите га (уклоните знак тарабице (#) испред). Списак огледала нуди ftp и http приступ, али можете откоментарисати само једно огледало.

Када одаберете једно огледало, ажурирајте списак удаљених фајлова покретањем иницијалне команде slackpkg update. Ово треба урадити увек када буде постављен нови пакет (редовно проверавајте Слекверову историју измена; погледајте Праћење ажурирања за више информација).

За претрагу пакета користите slackpkg search, а за инсталацију slackpkg install.

Када инсталирате пакет помоћу slackpkg, исти можете уклонити или надоградити користећи pkgtool или друге команде за управљање пакетима као што је објашњено у Инсталација, уклањање и надоградња пакета.

 sr:slackbook:package_management ()