Kuidas kompileerida programmi Linuxis
Tihti tekib algajatel küsimus, et kuidas nad saavad paigaldada tarkvara, mis on levitatud tar.gz arhiivina ja mida ei leidu nende distributsiooni pakihalduris. Järgnevalt lühike õpetus, mis annab ülevaate, kuidas toimub üldiselt programmide kompileerimine Linuxis.
Lühidalt
Lühidalt võiks kogu protsessi kirjeldada nelja sammuna:
- Tõmmake endale arhiiv wgeti kasutades
- Pakkige arhiiv lahti
- Häälestage programm oma süsteemi jaoks configure abil
- Kompileerige programm make abil
- Paigaldage antud programm
Pikemalt
Nüüd kõigest pikemalt. Esmalt seletame lahti mõned kokkuleppelised tähised, mida antud õpetuses kasutame. programm on programmi nimi. Juhul, kui tõmbate internetist antud programi, siis vaadake, et annate kindlasti täpse nime! NB! alati on oluline eristada suuri ja väikeseid tähti! veebileht.ee on veebilehe aadress, kust te soovitud programmi lähtekoodi tõmbate. Nüüd siis aga jätkame:
- Esmalt tõmbame endale arvutisse soovitud programmi lähtekoodi arhiivi. Enamasti on arhiiv pakitud tar.gz-sse (vahel laiendiga .tgz), viimasel ajal on palju hakatud kasutama ka tar.bz2 vormingus pakkimist, väga harva tuleb ette ka tar.Z vormingut.
wget http://veebileht.ee/programm.tar.gz
- Kasulik on kontrollida alla laetud arhiivi terviklikkust. Reeglina pakutakse allalaadimise juures ka faili kontrollsummat, näiteks sellisel kujul MD5 sum: 0e2e0f757f9e1e89b66033905860fded. Allalaetud faili kontrollsumma peab tulema täpselt sama, selle saab arvutada käsuga:
md5sum programm.tar.gz
- Nüüd pakime selle arhiivi lahti tar käsu abil, sõltuvalt vormingust võib see välja näha ühel järgneval viisil:
tar -xvf programm.tar.gz tar -xvf programm.tgz tar -xvf programm.tar.bz2 tar -xvf programm.tar.Z
- Nüüd siseneme kataloogi
cd programm
- Järgmiseks on rangelt soovituslik tutvuda kaasa tuleva dokumentatsiooniga. Juhendid installeerimiseks on tavaliselt failis INSTALL, vahel on sellest failist eri platvormide tarbeks eri laienditega versioonid, näiteks INSTALL.w32 sisaldab juhiseid MS Windowsis kompileerimiseks ja paigaldamiseks. Samuti võib oluline info olla failides README ja HOWTO.
Kõige tähtsam on dokumentatsioonist välja selgitada, kas selle konkreetse programmi paigaldamiseks on eelnõudeid. Sageli on vaja eelnevalt paigaldada mõni muu programm või teek (library). Sellisel juhul pole mõtet enne järgmiste sammude juurde asuda, kui need nõuded on täidetud. Mõned eelnõuded on nii elementaarsed, et dokumentatsioonis neid ei mainitagi. Näiteks make ja gcc on sellised programmid ning kui neid süsteemis pole, ajab juba ./configure käpad püsti ja keeldub edasisest koostööst.
NB! Kui Sa soovid tagada stabiilset ja uuendatavat süsteemi, proovi alati lisada kõik nõutud programmid ja teegid kasutatava süsteemi pakihalduri kaudu. Kui oled veendunud, et eelnõudeid pole võimalik eelpakendatud tarkvaraga täita, tuleb ka need ise kompileerida ja paigaldada
Käsurealt saad tutvuda dokumentatsiooniga näiteks käskude more või less abil
more README less INSTALL
- Nüüd anname configure käsu, sellega häälestame paigaldatava programmi sinu süsteemi järgi. configure loob faili Makefile, kuhu on koondatud reeglid, kuidas ja mida kompileerida ning kuhu saadud tarkvara hiljem paigaldada. configure-t on võimalik peenemalt suunata paljude võtmetega, mille kohta saad alati täpsemat infot mainitud dokumentatsioonifailidest, reeglina toimib kõige paremini vaikekäsk:
./configure
- Nüüd kompileerime programmi, see on kõige töömahukam etapp ning sõltuvalt valitud tarkvarast ja kasutatvast arvutusõimsusest võib kompileerimiseks kuluv aeg olla väga erinev. Üldjuhul pole see aeg ka suuremate programmide korral moodsatel arvutitel pikem tundidest, küll aga võib vanema arvuti korral kuluda päevi. Ära käivita järgnevat käsku, kui sul on parjasti kiire ja tahaks juba arvuti kinni panna.
make
- Sageli tuleb programmi lähtekoodiga kaasa testimissüsteem, millega saab kontrollida, kas kompileerimine õnnestus. Täpsemad juhised on jälle dokumentatsioonis ning võid arvestada, et paljud suuremad programmid ei läbi testimist päris puhtalt. Seega: enne kui pilli nurka viskad, veendu, kas saadud viga on ikka fataalne.
Testimine pole kohustulik etapp, aga aitab vältida hilisemat karvakitkumist, kui mingi järgmise sõltuva programmi kompileerimisel saad pidevalt mingeid arusaamatuid vigu. Sõltuvalt tarkvarast võib testimine toimuda ühel järgmisel viisil:
make test make check make -k check [ei peatu esimese saadud vea peale]
- Nüüd aga paigaldame tarkvara root-kasutaja õigustes ja muudame kompileeritud tarkvara süsteemselt kasutatavaks:
sudo make install
või siis
su - make install
- Pärast paigaldamist võib selguda, et see programm ei vasta sinu ootustele. Siis tuleks see kuidagi jälle süsteemist eemaldada. Sageli, kuid paraku mitte alati, on lähtekoodist paigaldatavatel programmidel võimalus teha uninstall. Kui paigaldasid administraatori õigustes, siis on neid õigusi vaja ka eemaldamiseks:
sudo make uninstall
või siis
su - make uninstall
Kui aga sellist eemaldamisvõimalust pole, on kõigist paigaldatud failidest lahtisaamine kaunikesti tüütu. See on üks põhilisi põhjuseid, miks vajalik tarkvara tuleks võimalusel alati paigaldada paketihalduri kaudu: paketihaldur võimaldab hiljem süsteemist eemaldada kõik paketi paigaldamisel sinna laiali laotatud failid
- "Kui midagi saab untsu minna, siis ta ka läheb," on öelnud kodanik Murphy. Ja kui juba läheb, siis enne uut katset on kasulik kõigepealt eemaldada lähtekoodi kataloog koos kõige sinna tekitatuga ning pöörduda uuesti lahtipakkimise punkti juurde.
cd .. rm -rvf programm
Näpunäited
- Kindlasti on Teil vaja kompileerimiseks paigaldada mõningaid lisaprogramme. Näiteks GCC, mille leiate oma paketihaldurist.
- Juhul, kui Te ei viitsi mingil põhjusel nimesid lõpuni kirjutada, siis võite panna sinna *. Näiteks cd prog* teeb sama asja, mis cd programm. Samuti tar -zxvf programm* teeb sama, mis tar -zxvf programm.tar.gz.
- Peale lahti pakkimist lugege kindlasti programmi README faili! Sealt leiate infot, kuidas täpselt antud programmi paigaldada.