ot Hapkoc(29-03-2006)

reiting (29)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Litsenz: CC Attribution-ShareAlike

0. Niakoi poiasneniia

* terminut paket se izpolzva v smisul na fail ili suvkupnost ot failove, sluzheshti za instalirane na dadeno prilozhenie;

* simvolut # (diez) v primerite oznachava dve neshta:

1) kogato e v nachaloto na komandniia red, oznachava, che komandata triabva da se izpulni s prava na root. Samiiat simvol # ne se vuvezhda ot potrebitelia;

2) kogato ne e v nachaloto na reda, oznachava, che teksta do kraia na reda e komentar i printsipno niama nuzhda da se vuvezhda ot klaviaturata, nito teksta, koito e sled samiia simvol;

* simvolut $ (dolar) oboznachava, che komandata, koiato sledva se izpulniava s prava na normalen potrebitel na sistemata (razbirai ne-root). Samiiat simvol sushto taka ne se vuvezhda. V razlichnite distributsii tozi simvol mozhe da se razlichava, a sushto taka predi nego da ima dopulnitelen tekst (naprimer potrebitelskoto ime i tekushtata direktoriia);

* notatsiiata 'command [options]' v komandniia red oboznachava nezadulzhitelen/i parametur/i za komandata 'command', t.e. "[options]" triabva da se zameni s prazen niz ili poreditsa ot validni parametri na suotvetnata komanda;

* VAZHNO: za uspeshna rabota s opisanite sredstva se preporuchva cheteneto na ofitsialnata dokumentatsiia na suotvetnite komandi/programi/sistemi/etc.

1. Povod za statiiata i kakvo predstavliava

Povodut za tazi statiia e ogromniia broi vuprosi, vuznikvashti u nachinaeshtite potrebiteli, otnosno tova kak se instalira softuer v operatsionnata sistema Linux. Statiiata e nasochena imenno kum nachinaeshtite potrebiteli na Linux distributsii.

Statiiata ne e rukovodstvo za izpolzvane na konkreten paketen menidzhur i niama za tsel da obhvane tsialoto mnogoobrazie ot takiva v razlichnite distributsii. Vupreki tova v statiiata shte dam primeri s paketniia menidzhur na Debian GNU/Linux dpkg i instrumenta APT, t.k. tova e koeto izpolzvam nai-aktivno.

2. Vuvedenie

Nachinite za instalirane na softuer v Linux sa mnogo i v po-goliamata si chast zavisiat ot distributsiiata, koiato se izpolzva. Tuk bih iskal da otbelezha edin osnoven moment - pochti vsiaka distributsiia predlaga instrumenti za menazhirane na paketi (paketen menidzhur). Kulturniia nachin za instalirane/deinstalirane i prochie menazhirane na softuera v edna sistema e imenno posredstvom izpolzvaneto na paketniia menidzhur na sistemata.

A zashto imenno tova e taka? Mnogo prosto - za ulesnenie. Funktsiiata na paketniia menidzhur e imenno da menazhira paketite, instalirani na sistemata.

3. Instalirane na softuer ot izhoden kod

Tova e mislia nai-universalniia nachin za instalirane na softuer, t.k. e neobhodimo edinstveno da imame instaliran kompilator za ezika, na koito e napisano prilozhenieto, koeto iskate da instalirate.

Pri instalirane ot izhoden kod ima niakolko neshta, koito e dobre da se znaiat.

* V durvoto s izhoden kod na vsiako prilozhenie bi sledvalo da prisustvat failovete INSTALL i README. Zadulzhitelno chetete tezi failove vinagi pri nalichieto im.

V INSTALL faila obiknoveno ima instruktsii za instalirane na suotvetnoto prilozhenie. V povecheto sluchai instruktsiite sa unifitsirani i shte budat opisani nakratko tuk. V niakoi sluchai v INSTALL faila ima spetsifichni za dadenoto prilozhenie instruktsii, koito e dobre da se prochetat, za da budat izbegnati po-natatushni problemi. V README ima obshta informatsiia za prilozhenieto, no v mnogo sluchai imenno tam sa opisani osobenostite pri instalatsiiata. V obshtiia sluchai e dobre nai-malkoto da se pregledat i dvata faila.

* Instaliraite ot izhoden kod samo v kraen sluchai.

Pod kraen sluchai tuk razbiram dve neshta:

1) kogato niama gotov paket za vashata distributsiia;

2) kogato gotovite paketi za vashata distributsiia ne predlagat funktsionalnostta, koiato vi e neobhodima.

Zashto triabva da se instalira ot izhoden kod samo v kraen sluchai? Zashtoto v dulgosrochen plan tozi hod shte vi donese mir i spokoistvie. :-)

3.1. Obshta protsedura za instalirane na softuer ot izhoden kod

Tuk shte priemem, che iskame da instalirame prilozhenie narecheno program-x. Protsedurata po instalirane na prilozhenieto e gore-dolu slednata:

* iztegliane na izhodniia kod - obiknoveno toi e vuv .tar.gz ili .tar.bz2 arhiv. V nashiia sluchai podhodiashto ime za arhiva bi bilo program-x_0.1.3.tar.gz. Iztegliame arhiva v podhodiashta direktoriia (naprimer /tmp).

* razarhivirane. V sluchaia s nashiia primer tova shte stane sus slednata komanda:

Primeren kod
$ cd /tmp # vlizame v direktoriiata, kudeto sme svalili arhiva
 $ tar zxf program-x_0.1.3.tar.gz


Sled tazi stupka obiknoveno poluchavame direktoriia, koiato nosi imeto na arhiva bez .tar.gz razshirenieto. V sluchaia program-x_0.1.3.

* konfigurirane na prilozhenieto:

Primeren kod
$ cd program-x_0.1.3    # vlizame v poluchenata ot razarhiviraneto direktoriia
 $ ./configure [options] # konfigurirame


S komandata:

Primeren kod
$ ./configure --help


mozhem da pregledame razlichnite optsii, koito mozhem da podaden na skripta configure.

Ima niakoi optsii, koito mogat da se podadat na configure skripta i sa obshti za vsichki prilozheniia. Osnovna optsiia e --prefix - chrez neia se zadava kude da se instalira prilozhenieto. Naprimer:

Primeren kod
$ ./configure --prefix=/usr/local


shte instalira prilozhenieto v /usr/local (tova znachi, che izpulnimite failove na prilozhenieto shte budat postaveni v /usr/local/bin, bibliotekite v /usr/local/lib, i t.n.).

Po podrazbirane povecheto prilozheniia, se instalirat v /usr/local. Po tozi nachin se poluchava razdelenie mezhdu prilozheniiata instalirani ot izhoden kod i prilozheniiata instalirani sus sredstvata na distributsiiata (koito se instalirat v obshtiia sluchai v /usr).

* kompilirane na prilozhenieto:

Primeren kod
$ make


* instalirane:

Primeren kod
# make install


Zabelezhete, che prompta pri poslednata komanda e #, a ne $, koeto idva da podskazhe, che komandata triabva da se izpulni s prava na root. Triabva da se otbelezhi, che tova ne e 100% viarno, t.k. vseki potrebitel mozhe da instalira prilozheniia v svoiata domashna direktoriia. Za tselta triabva da se podade optsiia --prefix=$HOME/local na configure skripta, ako priemem, che iskame da instalirame prilozhenieto v $HOME/local ($HOME e domashnata direktoriia na potrebitelia).

4. Problemi na podhoda s instalirane ot izhoden kod

Dotuk vidiahme kakvi stupki sa neobhodimi za da se instalira dadeno prilozhenie ot izhoden kod. Sega da vidim kakvi problemi mogat da vuzniknat pri instalirane na softuer po goreopisaniia nachin.

4.1. Zavisimosti

V suvremennite softuerni sistemi samo nai-prostite prilozheniia ne zavisiat ot vunshni za tiah biblioteki (nai-obshto kazano). Pri instalirane ot izhoden kod mogat da se poluchat dosta zasukani problemi sus zavisimostite, koito triabva da se reshavat ruchno. Tova znachi (ako priemem, che shte instalirame vsichki zavisimosti ot izhoden kod) da izteglim arhivite s izhoden kod na vsichki prilozheniia/biblioteki, ot koito zavisi instaliranoto ot nas prilozhenie i da prilozhim protsedurata za vsiako ot tiah.

4.2. Deinstalirane na softuer

Ako imame prilozhenie instalirano ot izhoden kod i iskame da go deinstalirame nai-lesniia variant e ot direktoriiata s koda na prilozhenieto da pusnem:

Primeren kod
# make uninstall


Tuk obache ima sledniia problem - mozhe da sme zatrili sushtata tazi direktoriia. V takuv sluchai mozhem nanovo da razarhivirame koda na prilozhenieto i ot novopoluchenata direktoriia da pusnem:

Primeren kod
$ ./configure [options]
 # make uninstall


Da, no ako sme instalirali prilozhenieto s --prefix=/niakude/po/failovata/sistema, purvo shte triabva da si spomnim kude tochno sme go instalirali i da podadem suotvetniia --prefix na configure. A kakvo stava ako sme zatrili i arhiva s izhodniia kod? Ami otivame i go durpame nanovo.

Vsichki tezi problemi razbira se mogat da se reshat, no vuprosa e nuzhno li za tiahnoto reshenie da se grizhim nie? Ne, ne e. Razrabotchitsite na razlichnite Linux distributsii sa pomislili za nas i sa ni predostavili instrumenti za avtomatizirano upravlenie na softuera za nashite sistemi, koito instrumenti reshavat imenno tezi problemi.

4.3. Obnoviavane na softuer

Ako sme instalirali prilozhenieto ot izhoden kod, pri izlizane na nova versiia na dadeno prilozhenie shte triabva da povtorim opisanite po-gore stupki za instalatsiia. Ako prilozhenieto ima sravnitelno slozhni zavisimosti mozhete da si predstavite kolko vreme bi otnela takava zadacha.

5. Instalirane na softuer posredstvom paketen menidzhur

... ili kak gorespomenatite problemi se reshavat kulturno.

Statiiata, kakto veche beshe utochneno, niama za tsel da bude rukovodstvo za konkreten instrument. Za po-lesno izlagane na materiala e udobno da se raboti s primeri. Tuk shte izpolzvam za primerite paketniia menidzhur na Debian GNU/Linux, a imenno dpkg, kakto i APT, koito e instrument za upravlenie na dpkg (neformalno kazano).

5.1. Instalirane na paket s dpkg

Instrumenta dpkg raboti s paketi v DEB format. I taka, ako priemem che imame paket, narechen program-x_0.1.3.deb, toi se instalira po sledniia nachin:

Primeren kod
# dpkg -i program-x_0.1.3.deb


Dori v tozi moment veche sme si ulesnili zhivota, t.k. tazi komanda suotvetstva na:

Primeren kod
$ tar zxf program-x_0.1.3.tar.gz
 $ cd program-x_0.1.3/
 $ ./configure [options]
 $ make
 # make install


ot gornoto opisanie, a da ne zabraviame, che ni spestiava i izvestno kolichestvo chetene na instruktsii za instalatsiia. Tezi instruktsii sa bili procheteni ot choveka, poddurzhasht paketa i spriamo tiah toi e izgotvil gotoviia .deb paket za nashe udobstvo.

5.2. Problema sus zavisimostite

Ako izpulnim:

Primeren kod
# dpkg -i program-x_0.1.3.deb


no program-x_0.1.3.deb zavisi ot biblioteki, koito ne sa instalirani, dpkg shte izvede suobshtenie, che lipsvat suotvetnite biblioteki i prilozhenieto ne mozhe da bude instalirano.

Ediniiat variant za reshavane na problema e da izteglim suotvetnite biblioteki/prilozheniia i da gi instalirame s dpkg, sled koeto da izpulnim otnovo:

Primeren kod
# dpkg -i program-x_0.1.3.deb


Tozi variant opredeleno ne ni ulesniava osobeno, t.k. se nalaga ruchno da namerim i izteglim suotvetnite biblioteki (i to sus suotvetnite versii, koito se iziskvat).

Za tselta ima instrumenti kato APT. APT raboti s hranilishta za paketi. Za vsiako hranilishte ima opisanie na paketite, koito to sudurzha. V opisanieto na vseki paket ima opisanie ot koi drugi paketi zavisi suotvetniia paket. APT, imaiki obrazno kazano tsialosten pogled vurhu hranilishteto, mozhe da se pogrizhi za zavisimostite vmesto nas.

Za da funktsionira APT e nuzhno na lokalnata mashina da se iztegli spisuk s opisaniiata na vsichki paketi, koito figurirat v hranilishtata, s koito e konfiguriran da raboti APT. Tova se pravi po sledniia nachin:

Primeren kod
# apt-get update


Tazi stupka e dobre da se pravi periodichno, kato protsesa mozhe da se avtomatizira s pomoshtta na cron naprimer.

I taka, kak proticha instalatsiiata na paketa program-x_0.1.3.deb:

Primeren kod
# apt-get install package


Tuk APT shte vi obiasni, che paketut package zavisi ot drugi paketi i shte vi predlozhi da instalira paketa zaedno sus zavisimostite mu. Dobre e vseki put pri instalatsiia na paketi vnimatelno da se preglezhdat suobshteniiata na APT. Edin paket mozhe, osven da zavisi ot drug paket, i da vliza v konflikt s treti. Tova znachi, che za da se instalira dadeniia paket, triabva predvaritelno da se deinstalira konfliktniia paket.

5.3. Deinstalatsiia na paketi

Pri upotreba na paketen menidzhur, vseki instaliran na sistemata paket se registrira ot menidzhura, kato po tozi nachin se osiguriava korektnoto premahvane i obnoviavane na paketite.

Deinstalatsiiata s pomoshtta na APT stava po sledniia nachin:

Primeren kod
# apt-get remove package


5.4. Obnoviavane na softuer

Obnoviavaneto na softuer s pomoshtta na paketen menidzhur e trivialna (v povecheto sluchai) zadacha. Pri APT se svezhda do slednoto:

Primeren kod
# apt-get upgrade


Po gore v statiiata beshe komentirano kak tazi zadacha bi se reshila pri instalirane ot izhoden kod.

Pri obnoviavane na sistemata APT izteglia poslednite versii na paketite, suobrazno informatsiiata koiato ima, i s tezi versii obnoviava tekushto instaliranite versii na paketite. Tova znachi, che versiite, koito shte instalira APT pri upgrade sa tezi, koito figurirat v lokalnoto kopie na opisanieto na paketite. Ako iskate pri upgrade da instalirate poslenite versii nalichni v hranilishtata, koito polzvate, e dobre predi apt-get upgrade da izpulnite apt-get update.

5.5. Kompilirane ot izhoden kod s pomoshtta na instrumenti na paketnata sistema

Ako vi se nalaga da kompilirate daden paket ot izhoden kod, t.k. binarnite paketi za vashata distributsiia ne sa kompilirani s poddruzhka na dadena funktsionalnost, vse oshte mozhete da reshite zadachata s pomoshtta na paketniia menidzhur.

Povecheto paketni sistemi sudurzhat instrumenti za suzdavane na binaren paket ot izhoden kod. Suzdavaiki takuv paket, vie go instalirate po standartniia za distributsiiata nachin, zapazvaiki vsichki proiztichashti ot tova predimstva. Mozhete da suzdadete sobstveno lokalno hranilishte za takiva paketi. Poslednoto e osobeno polezno pri poddruzhka na poveche ot edna mashini.

5.6. Paketni sistemi bazirani na kompilirane ot izhoden kod

Sushtestvuvat paketni menidzhuri, koito avtomatizirat kompiliraneto na softuer ot izhoden kod. Pri tiah kum originalniia izhoden kod na dadeno prilozhenie se prilagat krupki, nanasiashti promenite, neobhodimi za kompilirane v obkruzhenieto na dadenata distributsiia.

Estestveno kompiliraneto na softuer ot izhoden kod i posledvashtoto mu instalirane e dosta po-vremeemko i iziskva seriozno natovarvane na sistemata.

6. Informatsiia za drugi paketni sistemi i instrumenti za upravlenie na paketite

6.1. RPM

RPM e paketniia menidzhur pri distributsiite, bazirani na Fedora Core i RedHat. Paketnata sistema poddurzha zavisimosti.

yum (vklyuchen v distributsiiata Fedora) e instrument, avtomatizirasht rabotata s RPM paketi.

6.2. pkgtools

pkgtools e nabor ot instrumenti za upravlenie na paketi v Slackware i baziranite na Slackware distributsii. Paketnata sistema na Slackware ne poddurzha zavisimosti v bazoviia si variant.

Ima niakolko instrumenta, koito avtomatizirat rabotata sus Slackware paketi - slapt-get, swaret, SlackPkg. slapt-get i swaret poddurzhat zavisimosti, po razlichen edna ot druga, no malko zaobikolen nachin, t.k. samata paketna sistema ne poddurzha zavisimosti.

6.3. Portage

Paketna sistema, bazirana na kompilirane ot izhoden kod. Poddurzha zavisimosti. Izpolzva se v distributsiiata Gentoo.

6.4. *BSD ports/packages/pkgsrc

Trite svobodni BSD distributsii imat mnogo shodni paketni sistemi.

Vuv FreeBSD i OpenBSD paketnata sistema se naricha ports. Ports sistemata raboti s izhoden kod. Kompiliraiki paket ot ports, vie suzdavate package (otnovo predstavliavasht .tgz arhiv).

Triabva da se otbelezhi, che vupreki shodstvoto v imenata na FreeBSD ports/packages i OpenBSD ports/packages, tova sa dve otdelni paketni sistemi, razrabotvani nezavisimo edna ot druga.

V OpenBSD se predpochita instaliraneto na binarni paketi (packages), dokato vuv FreeBSD dvete vuzmozhnosti sa po-skoro na ravni nachala.

pkgsrc e paketnata sistema na NetBSD. CHrez neia sushto taka se suzdavat package-i ot izhoden kod.

I trite sistemi poddurzhat zavisimosti.

6.5. YaST

YaST e grafichen instrument za konfigurirane na sistemata v distributsiiata SuSE, koito vklyuchva i vuzmozhnost za instalirane na paketi. SuSE raboti s RPM paketi.

Preporuchva se instaliraneto na softuer v tazi distributsiia da stava imenno prez YaST.

7. Zaklyuchenie

Paketnite sistemi sa suzdadeni za ulesnenie na upravlenieto na softuer v edna distributsiia i izpolzvaneto im znachitelno ulesniava tazi zadacha. Poradi tova smiatam, che e dobra ideia paketnata sistema da se izpolzva po prednaznachenie, svezhdaiki do minimum instaliraneto na softuer po drugi nachini.



Priemat se vsiakakvi kritiki i zabelezhki, stiga da sa dobre obosnovani.


<< KAK DA pechatame ot Windows na CUPS printer/opashka | SonyEricsson i Linuks >>