You are on page 1of 4

http://www.vnlinux.org/sitemoi/?

q=node/333

Ci t cc ng dng t m ngun trn Linux C nhiu bn khi ln u tin n vi Linux cm gic s kh khn v bt tin ca vic ci t cc ng dng trn Linux, c bit l cc ng dng phi ci t t m ngun nh xine, openGL .v.v... Trn Windows, bn ch cn ti ng dng v, gii nn ri click vo file setup l han tt vic ci t, nhng trn Linux l mt chuyn han tan khc. Bi vit ny s nhm mc ch hng dn bn cc thao tc ci t cc phn mm ng dng trn Linux v cung cp cc kin thc cn bn gip bn c th qun l h thng ca ring mnh. Bi vit s gi s rng bn bit cch s dng mt s phn mm qun l gi nh rpm. d dng th bi vit s gi cc phn mm trn Linux l cc gi (package). Thc t tn gi 'gi' ng n hn v cc gi trn Linux c th khng phi l mt trnh ng dng no m ch l cc th vin nn nh th vin ha Gtk+ hoc OpenGL .v.v... 1. Gii thiu Bn c th s t hi rng ti sao cc phn mm trn Linux khng t ng gi sn cho chng ta ri khi xut bn ch cn ti v v ci t n. Cu tr li nm 2 vn , vn th 1 l cc phn mm vit trn Linux khng hn ch c th chy trn Linux m c th chy trn nhu h thng khc nhau trong h Unix nh Solaris, AIX, HP-UX .v.v.. thm ch cc phn mm c th chy trn rt nhiu vi x l khc nhau nh Intel, Motorola, PPC .v.v... C c s a nng l nh vo tnh a nn (portable) ca ngn ng C/C++ nhng i hi chng ta phi bin dch li phn mm t m ngun cho h thng m chng vn hnh. Bn s t hi l ti sao cc nh pht trin li khng bin dch sn cho chng ta trn h thng thng dng no nh Linux chng hn. Cu tr li l bi v cc phn mm ny l phn mm m ngun m :) v cc nh pht trin khng c cch g hn l li phn bin dch cho chng ta. Tuy nhin bn ng tht vng v c mt s nh pht trin rt l tt bng c th bin dch sn cho chng ta ra cc gi c dng rpm v cng vi s h tr ca cng ty Red Hat chng ta cng c nhng chng trnh qun l cc phn mm hiu qu khng km g trn Windows nh RPM (Redhat Package Manager). Mc d l th nhng khng phi lc no cc gi mi nht t cc nh pht trin gc u c phin bn bin dch sn m thng l mt khang thi gian sau cc phin bn mi c c di dng bin dch sn. Bn cnh cn c rt nhiu nh pht trin khng h bin dch sn sn phm ca mnh m i hi ngi dng phi bin dch, in hnh l trnh chi phim v nhc xine. Cc gi bin dch sn cc bn c t xine a s l t cc nh pht trin khc. Do nu bn khng bn khng bit cch ci t cc gi t ngun l mt tr ngi rt ln cho vic hiu v qun tr h thng ca ring mnh. 2. Cn bn ca vic ci t iu u tin khi bn tin hnh ci t l bn phi c m ngun ca gi trc. Hy ln mng search bt k gi no bn thch nh th vin Gtk+ hoc Gnome .v.v... Sau khi ti v, thng thng c dng l .gz hoc .bz2, y u l 2 chun nn khc nhau, sau khi gii nn bng gunzip cho gz hoc bunzip2 cho bz2 th cc gi s c dng mi l tar, cng l mt chun nn khc, bn c th gii nn bng lnh, tar -xvf ... Th nhng d dng v tit kim dung lng a th chng ta c th gp cc cu lnh thnh 1 nh sau: - i vi gi .gz: # tar -zxvf tengoi.gz

- i vi gi .bz2: # tar -jxvf tengoi.bz2 Sau khi gii nn xong v tm tp tin INSTALL c c th cho phn hng dn ci t. Th nhng hu nh cc gi u tun theo cc thao tc tun t sau: # ./configure # make # make install Ch c vi gi c bit s c ring cch ci t nhng khi bn nm vng nguyn tc chung th d l cch thc no bn cng c th xoay x c. Chng ta hy xt n cu lnh u tin, ./configure ... Thc cht configure l mt shell script s kim tra nhng yu cu ca h thng ca bn c p ng ci t gi ln khng, v d nh mt s gi i hi bn phi c sn th vin ha Gtk 2.4 tr ln hoc l th vin gii nn nhc Mp3..v.v... Rt nhiu gi c s ph thuc nh th ch cc gi khi ti v khng h c sn cc gi tng ng cn thit cho n. Khi bn chy configure xong kt qu s cho bn bit cc gi no cn thit ci t. Nhim v ca bn khng g hn l phi tm cc gi ph thuc ci ln my ri mi tip tc vic ci t. Nu nh h thng ca bn tha mn y cc yu cu ci t th cc Makefile s c to ra. Makefile l mt file c bit ca tin ch make nhm hng dn bin dch m ngun ca gi ra dng thc thi. Sau khi bn thc thi lnh 'make' xong th tan bm ngun ca gi c bin dch sang dng thc thi nhng cc file thc thi vn cn nm trn th mc hin hnh. Do bn cn phi thc hin thm lnh 'make install' chp cc file thc thi sang ng v tr ca n trn h thng. Nu nh khng c thng bo li g xy ra th bn han tt vic ci t gi ln h thng ca mnh. 3. T chc cc file trn h thng Bn han tan bit th mc trn Linux th th mc /usr l th mc quan trng nht v n s cha cc chng trnh v hm th vin trn . Trong th mc /usr/bin l s cha cc file thc thi cho cc gi bn ci t trn my, cc file trong th mc ny bn s thy cc file rt quen thuc nh mozilla, gedit .v.v... Th mc /usr/lib s cha cc hm th vin, bn s thy rt nhiu files c phn m rng l .so (shared object) l cc hm th vin lin kt ng hoc .a (archive) hoc .la u l cc hm th vin lin kt tnh. c tnh cn bn ca 2 dng th vin ny l hm th vin lin kt tnh s c lin kt thng vi files thc thi lun trong qu trnh lin kt, cn hm th vin lin kt ng th s c lin kt trong qu trnh thc thi, cho nn sau khi chng trnh c bin dch v lin kt ri cc th vin tnh chng ta c th b i nhng th vin lin kt ng th bt buc phi i km vi chng trnh. Th mc /usr/share s cha cc icon, manual hoc info ca gi. 4. Lai b mt gi Nu bn mong mun lai b mt gi ci t trn hthng th cch duy nht l bn phi vo li th mc m ngun ca gi v g lnh 'make uninstall' ... thng thng bn s c cc cu lnh sau: 'make clean' 'make distclean' ... Cc cu lnh c ngha rt tng i v c nh ngha trong tp tin Makefile, nn u tin bn c th vi 'make uninstall' ri 'make clean' ci cui cng 'make distclean' l gip bn xa ht cc tp tin bin dch th mc ngun v ng thi xa Makefile, bn phi chy li ./configure to li Makefile. 5. Qun l cc gi

Do vic xa b mt gi nh trn rt l phin phc i lc bn chng th xa bc nu nh mt i m ngun, cho nn bn c th thay v ci n vo th mc mc nh l /usr th bn c th ci vo cc th mc ca ring bn, v d nh bn c th to th mc '/soft' ... Sau ci gi gedit th bn to thm th mc /soft/gedit v dng lnh ./configure ... bn thm ty chn sau: ./configure --prefix=/soft/gedit th khi bn g make install s copy tan b sang th mc /soft/gedit .. Khi bn mun xa tan b gi th ch n gin xa i th mc thi. Lu l khi bn ci vo th mc ring ca mnh ri bn phi to 2 ng dn cho 2 bin mi trng (environment variable) LD_LIBRARY_PATH v PKG_CONFIG_PATH ... LD_LIBRARY_PATH s c ng dn n th mc lib ca gi va to (v d nh / soft/gedit/lib) cn PKG_CONFIG_PATH s c ng dn n th mc pkg_config trong th mc lib (v d nh /soft/gedit/lib/pkg_config) .. Bn cnh nu bn mun chng trnh gi t ng th bn cng nn thm vo bin PATH cho gi ca mnh. 6. Li kt i vi cch ci trn th bn d dng qun l cc gi ca mnh nhng i vi cc dng th vin th bn nn ci n vo th mc /usr hn l th mc ring ca mnh v mt s gi s tm cc th vic trn th mc mc nh /usr v /usr/local hn l cc th mc ring ngi dng nn nu bn ci ln th mc ring th i lc cc th vin s khng c tm ra. Thng thng lnh ./configure i i vi rt nhiu ty chn cho php bn la chn nhiu tnh nng khc nhau, bn hy g ./configure --help m bit y cc ty chn ca gi. Bi vit chc chn s khng trnh khi nhng thiu st bng cch ny hay cch khc, rt mong s gp ca cc bn, Xin cm n. L Thanh Phong (okidachi@yahoo.com) -- 29/11/2004 -- Phin bn 1

You might also like