Következő néhány percben a pecl.php.net-en található egyik php modult fogjuk lefordítani. A pecl a php birnáris kiterjesztéseinek gyüjtőhelye. Hasonló mint a pear csak kevesebb modul található meg a gyüjteményben, és van amit már nem is fejlesztenek. Viszont amit fejlesztenek az egész jól használható és mivel bináris, ezért nagyon gyors is!
Nosza lássunk is hozzá. Elsőként hozzuk létre a könyvtárakat és szedjük le a forrást:
cd /usr/src
mkdir pecl
cd pecl
mkdir enchant
cd enchant
wget http://pecl.php.net/get/enchant-1.0.1.tgz
gzip -d enchant-1.0.1.tgz
tar -xf enchant-1.0.1.tar
cd enchant-1.0.1
Hogy a forrás fordítható legyen a phpize programot fogjuk használni:
root@devserver:/usr/src/pecl/enchant/enchant-1.0.1# phpize
bash: phpize: command not found
Ez bizony nincs még feltéve. Mivel fejből nem tudom, hogy melyik csomag rejti magában segítségül hívom az apt-file programot. Az apt-file a deb csomagok tartalmában keres fájlokra. Akinek nincs esetleg feltelepítve, az az apt-file csomagot tegye fel, majd a feltelepítés után futtasson le egy apt-file update parancsot.
root@devserver:/usr/src/pecl/enchant/enchant-1.0.1# apt-file search phpize
php-doc: usr/share/doc/php-doc/html/install.pecl.phpize.html
php4-dev: usr/bin/phpize4
php4-dev: usr/lib/php4/build/phpize.m4
php4-dev: usr/share/man/man1/phpize4.1.gz
php5-dev: usr/bin/phpize5
php5-dev: usr/lib/php5/build/phpize.m4
php5-dev: usr/share/man/man1/phpize5.1.gz
Ki ki válassza ki azt a php verziót ami számára szimpatikus és annak a dev csomagját tegye fel. Én most php5 alá fogom lefordítani a kiterjesztést, így az ahhoz való dev csomagot teszem fel.
root@devserver:/usr/src/pecl/enchant/enchant-1.0.1# apt-get install php5-dev
root@devserver:/usr/src/pecl/enchant/enchant-1.0.1# phpize
Configuring for: PHP
Api Version: 20041225
Zend Module Api No: 20050922
Zend Extension Api No: 220051025
Ezzel létrejött egy csomó olyan fájl ami majd a forgatáshoz szükséges (Makefile, configure script stb). Ki is adhatjuk a configure parancsot:
root@devserver:/usr/src/pecl/enchant/enchant-1.0.1# ./configure
... checking for gawk...
gawk checking for ENCHANT support... yes,
shared configure: error: Cannot find enchant
Hibával elszállt a program futása. Egy “enchant” nevű valamit hiányol (egyébként az enchant lib-et amit használna majd a program a fordításhoz). Nézzük meg hogy mi az aminek a csomagneve tartalmazza ezt a szót, hátha okosabbak leszünk:
root@devserver:/usr/src/pecl/enchant/enchant-1.0.1# apt-cache search enchant
libenchant-dev - a wrapper library for various spell checker engines (development)
libenchant1c2a - a wrapper library for various spell checker engines (library)
python-enchant - spellchecking library for Python
Tapasztalt programfordítók rögtön tudják hogy a libenchant-dev csomag kell. Egyébként ha programot fordítunk és valami lib hiányára panaszkodik akkor 99,9 százalék, hogy egy dev libet kér. Tegyük fel:
root@devserver:/usr/src/pecl/enchant/enchant-1.0.1# apt-get install libenchant-dev
Most adjuk ki ismét configure parancsot, sikeres lefutás után jöhet a make:
root@devserver:/usr/src/pecl/enchant/enchant-1.0.1# ./configure root@devserver:/usr/src/pecl/enchant/enchant-1.0.1# make /bin/sed: can't read /usr/lib/libgmodule-2.0.la: No such file or directory libtool: link: `/usr/lib/libgmodule-2.0.la' is not a valid libtool archive make: *** [enchant.la] Error 1
Fordítás során még egy hibába ütköztünk aminek elhárításához ismét az apt-file-t hívjuk segítségül hiszen fejből nem tudjuk, hogy mely csomag tartalmazza ezt a lib-et:
root@devserver:/usr/src/pecl/enchant/enchant-1.0.1# apt-file search libgmodule-2.0.la libglib2.0-dev: usr/lib/libgmodule-2.0.la root@devserver:/usr/src/pecl/enchant/enchant-1.0.1# apt-get install libglib2.0-dev
Miután feltettük a csomagot minden gond nélkül lefut a fordítás és a telepítés. A php.ini szerkesztése után, ha mindent körültekintően csináltunk sikeresen betöltődik a modul és használatba vehetjük!