Обе стране последње ревизијеПретходна ревизијаСледећа ревизија | Претходна ревизијаСледећа ревизијаОбе стране следеће ревизије |
sr:slackbook:package_management [2013/04/20 19:00 (UTC)] – slackmuz | sr:slackbook:package_management [2013/04/27 16:17 (UTC)] – slackmuz |
---|
====== Управљање пакетима ====== | ====== Управљање пакетима ====== |
| |
Управљање пакетима је суштински део сваке Линукс дистрибуције. Сваки део софтвера који је укључен у Слеквер, поред многих алатки треће стране је дистрибуиран као изворни кôд који се компилује, али компиловање хиљаде различитих апликација и библиотека је досадно и одузима много времена. Зато већина корисника преферира инсталацију прекомпилираних пакета софтвера. Заправо, при инсталацији Слеквера, програм **//setup//** је првенствено радио примењујући алатке за управљање пакетима на листу пакета. Овде ћемо се позабавити различитим алаткама које су коришћене за руковање пакетима у Слекверу. | Управљање пакетима је суштински део сваке Линукс дистрибуције. Сваки део софтвера који је укључен у Слеквер, поред многих алатки треће стране је дистрибуиран као изворни кôд који се компилује, али компиловање хиљаде различитих апликација и библиотека је досадно и одузима много времена. Зато већина корисника преферира инсталацију прекомпилираних пакета софтвера. Заправо, при инсталацији Слеквера, програм **//setup//** је првенствено радио примењујући алатке за управљање пакетима на листу пакета. Овде ћемо се позабавити различитим алаткама које се користе за руковање пакетима у Слекверу. |
| |
===== pkgtool ===== | ===== pkgtool ===== |
| |
===== Инсталација, уклањање и надоградња пакета===== | ===== Инсталација, уклањање и надоградња пакета===== |
| |
| Док **//pkgtool//** поентира на поузданости, **//installpkg//**(8) је способнији кад је у питању руковање задацима као што су брза инсталација једног пакета, инсталација комплетног сета пакета, или скриптовање и инсталација. **//installpkg//** узима списак пакета за инсталацију и једноставно их инсталира без постављања питања. Попут свих Слекверових алата за управљање пакетима, овај предпоставља да знате шта радите и не претендује да буде паметнији од вас. У својој најједноставнијој форми, **//installpkg//** узима списак пакета за инсталацију и ради управо оно што ви очекујете. |
| |
| <code> |
| 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.</code> |
| |
| Можете инсталирати више пакета одједном и користити џокере или знакове замене. Следећа команда ће инсталирати све из //"N"// серије пакета са монтираног диска. |
| |
| <code> |
| darkstar:~# installpkg /mnt/cdrom/slackware/n/*.txz</code> |
| |
| Можете видети који су све пакети инсталирани на вашем систему листајући садржај фасцикле /var/log/packages, где ће поред имена пакета бити приказана и верзија. Уколико треба да сазнате који су све појединачни фајлови инсталирани као део неког пакета, примените команду **//cat//** на пакет. |
| |
| <code> |
| |
| darkstar:~#cat /var/log/packages/foo-1.0-x86_64.txz |
| </code> |
| |
| Ово ће дати излаз у коме ћете моћи да видите све, од величине пакета, описа о сврси и функцији пакета (шта дати програм ради), имена и локације сваког фајла инсталираног као део пакета. |
| |
| Уклањање пакета је подједнако лако као инсталирање. Као што можете предпоставити, команда за извршавање овог задатка је **//removepkg//**(8). Једноставно јој реците који пакет да уклони, и **//removepkg//** ће проверити садржај базе података пакета и уклниће све фајлове и директоријуме тог пакета. Уколико је одређени фајл укључен у више инсталираних пакета, биће прескочен и уколико у одређеном директоријуму има нових фајлова, директоријум ће бити остављен нетакнут. Зато уклањање пакета траје знатно дуже од инсталирања истих. |
| |
| <code> |
| darkstar:~# removepkg blackbox-0.70.1-i486-2.txz |
| </code> |
| |
| На крају, надоградња се врши једноставно помоћу команде (већ погађате) **//upgradepkg//**(8) која прво инсталира нови пакет па онда уклања фајлове и директоријуме који су преостали, а везани су за стари пакет. Битна ствар коју треба да запамтите је да **//upgradepkg//** не проверава да ли је верзија претходно инсталираног пакета већа од верзије //"новог"//, тако да се иста команда може користити и за враћање пакета са нижом верзијом (енгл. downgrade). |
| |
| <code> |
| 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.</code> |
| |
| Све ове алатке имају корисне аргументе. На пример, аргумент //--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//** алатке, процес би изгледа овако: |
| - Проверите у Слекверовој историји измена (енгл. changelog) да ли је ажурирање доступно. |
| - Пронађите у локалном Слекверовом огледалу везу за преузимање пакета |
| - Преузмите пакет на ваш чврсти диск. |
| - Користите **//installpkg//** или **//pkgtool//** за инсталацију преузетог пакета. |
| |
| Са **//slackpkg//** алатком, цео процес се састоји из следећег: |
| - Проверите у Слекверовој историји измена да ли је ажурирање за **//foo//** доступно. |
| - **slackpkg** //install// foo |
| |
| Очито, ово знатно поједностављује један овакав уобичајен задатак. |
| |
| Да бисте користили **//slackpkg//**, подесите Слеквер огледало уређујући фајл /etc/slackpkg/mirrors као root корисник. Пронађите огледало које одговара верзији и архитектури вашег Слеквера и откоментаришите га (уклоните знак тарабице (#) испред). Списак огледала нуди ftp и http приступ, али можете откоментарисати **само једно** огледало. |
| |
| Када одаберете једно огледало, ажурирајте списак удаљених фајлова покретањем иницијалне команде **slackpkg update**. Ово треба урадити увек када буде постављен нови пакет (редовно проверавајте Слекверову историју измена; погледајте [[sr:slackbook:tracking_updates|Праћење ажурирања]] за више информација). |
| |
| За претрагу пакета користите **slackpkg search**, а за инсталацију **slackpkg install**. |
| |
| Када инсталирате пакет помоћу **//slackpkg//**, исти можете уклонити или надоградити користећи **//pkgtool//** или друге команде за управљање пакетима као што је објашњено у [[#installing_removing_and_upgrading_packages|Инсталација, уклањање и надоградња пакета]]. |