VII. ALTERNATÍVÁT NYÚJTÓ PROGRAMOK A DEBIAN-BAN

- 1. Alternatívák a httpd-re
  - 1.1 Roxen
  - 1.2 Zope - Z Object Publishing Enviroment
  - 1.3 Kisebb szerverek
- 2. Alternatívák a dinamikus HTML-ek generálására
- 3. Alternatívák SQL szerverre
- 4. Alternatívák a távoli bejelentkezésre
- 5. Alternatívák az egyéb programokra

##
VII. Alternatívát nyújtó programok a Debian-ban

Egy-egy adott alkalmazási, szolgáltatási területre rengeteg megvalósítás létezhet. A Debian egyik előnye, hogy megadja nekünk a választási lehetőséget, mit szeretnénk használni pl. a Web-szolgáltatáshoz.
Mivel a szabad szoftverek között ugyanarra a munkafeladatra sok alternatíva van, várható, hogy a különböző implementációk teljesen más alapokból építkezhetnek és teljesen más célra irányulhatnak. Az eredménye ennek az, hogy az adott feladathoz a lehetőséghez képest legmegfelelőbb szoftvert választhassuk ki.

##
1. Alternatívák a httpd-re

Bár az Apache a legnépszerűbb és legelterjedtebb e protokoll szerver-szintű megvalósításában, mindig akadnak másként gondolkodók. Ezek az emberek és szoftverek nagyon fontosak, hiszen itt is egyfajta evolúcióról és versenyről van szó, mint az élet sok más területén. Ha az olvasónak nem nyerte el az Apache a tetszését, bátran lehet próbálkozni más eszközökkel is.

###
1.1 Roxen

A UN*X rendszereken a Roxen a leggyakrabban használt szabad Web-szerver az Apache után. Pike nyelven írták, ebből kifolyólag futás közben interpretálódik, ezért bizonyos esetekben lassabb, mint az Apache. Előnye viszont, hogy rengeteg szabad és kommerciális modul van hozzá, könnyen bővíthető és programozható. Böngészőn keresztül kényelmesen konfigurálható.
A Potato-ban jelenleg az 1.3.122-es változat található. Tudni kell, azonban, hogy a 2.0-s változat már egy komplex Web-es alkalmazás-fejlesztő szoftverrendszerbe lesz ágyazva, melyet Roxen Platform 2.0-ának neveznek. Ennek a motorja a Challanger Web-szerver 2.0 (GPL).
Tulajdonságai:

- Java 2 Modulok

- Java Servlets 2.2 támogatás

- Belső PHP4 támogatás

- XML kompatíbilis RXML értelmező

- Adatbázis illesztők kommerciális szoftverekhez

- Unikód használata

- Új konfigurációs felület

- Több felhasználó különböző jogosultságokkal

- Többnyelvű felület

- Témázhatóság

- Új alternatív HTTP modul extrém nagy sebességekhez

- Új frissítő rendszer - menet közben

A Potato-ban a Roxen több csomagra van feldarabolva. Ezeket nem szeretném felsorolni, mert egyrészt túl sok van belőlük, másrészt már túlmutat a téma keretein. Bővebb információkért olvassuk el a csomagokhoz mellékelt rövid magyarázatokat és nézzük meg a rendszer Web-helyét: http://www.roxen.com

###
1.2 Zope - Z Object Publishing Enviroment

A Zope egy vezető Web-es alkalmazás-szerver. Kitűnő Web-tartalom fejlesztőeszköz, főleg csoportmunkára van kiélezve. Nagyon gyorsan és könnyen lehet vele dinamikus és interaktív Web-helyeket fejleszteni. Alkalmazási területei:

- Web alapú üzleti alkalmazások készítése

- Portálok létrehozása

- Személyre szabás

- Online hírek

- site-search, stb.

Beépített Web-szervert és kereső motort tartalmaz. Majdnem minden UN*X típusú platformon fut, portolták (nem-un*x) kereskedelmi rendszerekre is. Támogatja a XML-RPC, DOM, és WebDAV Web-es szabványokat is. Sok kisebb komponensből áll: Internet (Web) szerver, tranzakciós objektum adatbázis, kereső motor, Web-oldal mintázó rendszer, Web-fejlesztő és karbantartó rendszer és bővítési támogatás.
A Debian-ban a Zope is több részre van szétszedve. Ezeket sem sorolom fel. A Potato-ban a 2.1.4-es változat van, bár a Web-helyükön már a 2.1.6-os is elérhető. Illesztő fellelhető mind a MySQL és PostGres adatbázis szerverekhez is.
Bővebb információkért a csomaglistában és a http://www.zope.org-on keresgéljünk.

###
1.3 Kisebb szerverek

Meg kell említenem még három kisebb http szervert.

- Az első a cern-httpd. Ebből fejlődött ki később az Apache. Ezt már nem fejlesztik tovább, bár még néhány helyen használják. Kis teljesítmény, kis tudás. Már történelmi jellegű (és jelentőségű).

- dhttpd - Minimális, biztonságos Web-szerver. Nincs CGI-bin támogatás! Mivel nem futtat külső programokat (csak statikus tartalmat szolgáltat) nem lehet könnyen feltörni. Nincs szüksége állandó IP címre, kevés erőforrást fogyaszt. Felhasználók is futtathatják magasabb portokon. Nem kell konfigurálni.

- boa - pehelysúlyú, nagy teljesítményű Web-szerver. Csak egy folyamatot futtat, nem indít újakat több kérés esetén, belülről osztja szét a kéréseket. Csupán CGI futtatásakor indít új folyamatot. Főleg régebbi, kis teljesítményű gépekhez (is) ajánlott. Olyan feladatokra, ahová a többi program túl nagy és lassú lenne.

A fentiek mind elérhetőek a Potato-ban.

##
2. Alternatívák a dinamikus HTML-ek generálására

Erre a célra sokkal régebb óta használják a CGI módszert. Ekkor a Web-szerver meghív egy külső értelmezőt vagy programot, mely legenerálja a tartalmat és az átadja a szervernek. Főképp a Perl nyelvi eszközöket szokták erre a célra használni. Külső program meghívása elkerülhető egy illesztő Apache modul használatával a legtöbb eredetileg CGI típusú értelmező nyelv esetén. Pl. a libapache-mod-perl csomag a Perl nyelvi elemek használatának az Apache-ba való integrálást segíti elő. Ezzel 400-2000%-os gyorsulást érhetünk el a hagyományos módszerrel szemben. A Perl nyelvi eszközök illesztői megszámlálhatatlan programhoz, programkönyvtárhoz léteznek. Többek között adatbázis szerverek, grafikai könyvtárak, az XML. A Potato-ban 197 csomag nevében szerepel a "perl" szó.188
A Perl egyik alternatívája a Ruby, mely egy értelmezett script-elő objektum-orientált nyelv. A Perl-hez hasonlóan rengeteg csomagra van bontva a Debian-ban. Illesztőt találhatunk nagyon sok más nyelvhez és persze az Apache-nak is van ilyen modulja. Ekkor a Ruby CGI script-ek natív módban lesznek értelmezve, ezzel gyorsítva a végrehajtást. Az eruby csomaggal Ruby nyelvű elemeket szúrhatunk HTML fájlokba. A Ruby-val még "csak" 32 csomag foglalkozik.
Nézelődhetünk még a Python és Pike nyelvek területén is, ők is alkalmasak ilyen feladatok ellátására. Fellelhető a Perl-ről189 és a CGI-ről190 magyar nyelvű leírás is.

##
3. Alternatívák SQL szerverre

A MySQL mellett természetesen sok más lehetőség is akad. A másik legelterjedtebb adatbázis-szerver linux alatt a PostGreSQL. Ennek a felhasználási területe nem annyira az Internet - Web, mint inkább az alkalmazói programok adatbázis-háttere. A PostGres valamivel lassabb, mint a MySQL, (ezért javasolják a MySQL-t Web-szerverekhez, ahol inkább a sebesség a súlypont) viszont képes a tranzakciók kezelésére, amire a másik nem. A PostGres továbbá rendelkezik egy minimális objektum-orientált kódrésszel is. A PostGres is folyamatos fejlesztés alatt áll. Az SQL-92-es szabvány nagy részét implementálták már, de még vannak hiányosságok. Mondhatni, a PostGres többet tud, mint a MySQL, több funkció van már implementálva. A Debian-ban jelenleg a 6.5.3-as verzió található. A legfrissebb változata a 7.0-s.
Ez a program is több csomagra van szétszedve:

postgresql postgresql-client postgresql-contrib postgresql-test postgresql-dev postgresql-pl postgresql-doc odbc-postgresql www-pgsql | Az alapcsomag, ez tartalmazza a szervert Karakteres kliens programok az adatbázisok kezeléséhez. Apró kis bővítmények, hasznos segédfunkciók tárháza, ezek még főleg fejlesztés alatt lévő kódrészek. Fejlesztők részére Fejléc fájlok, fejlesztők részére Procedurális programozási nyelv, fejlesztőknek Teljes dokumentáció ODBC illesztő Web-es programozási interfész (külön program!)

11. táblázat - PostgreSQL csomagok a Debian-ban

Természetesen rengeteg programozási nyelvhez is van PostGres illesztő, mint pl. a Python, Pike, PHP, stb.
Végeredményben, egy egész jó ingyenes adatbázis-szerver programmal van dolgunk. Ha szükségünk van tranzakció kezelésre, és nem a sebesség számít, akkor választhatjuk ezt a MySQL helyett.
Link: http://www.postgres.org

##
4. Alternatívák a távoli bejelentkezésre

A terminálos bejelentkezésre sok alternatíva létezik. Kezdetben volt az rsh/rlogin/rcp 191 páros. Mivel ezek kódolatlan csatornát hoznak létre a két gép között ezért csak az Internettől elzárt és lehallgatás-biztos helyeken illene használni, vagy ott se. Ezeket ma már "épeszű" ember nem használja távoli bejelentkezésre, hiszen bárhol lehet egy "szaglászó" program, ami csak a mi jelszónkra vár.
A különböző SSH implementációk ezt a héjat (shell-t) egy titkosított csatornán keresztül valósítják meg. Mivel az SSH RSA kódolást használ ezért a többi kriptográfiát tartalmazó programmal együtt csak a non-US szerverekről tölthetőek le.
A másik lehetőség a titkosított telnet használata. Ez az (Open)SSLeay könyvtárt használva hoz létre titkos csatornát. Ha nem talál a másik oldalon SSL-képes telnet démont, akkor "visszaesik" hagyományos telnet-té.

ssh ssh-askpass ssh-askpass-gnome ssh-akpass-ptk ssh-nonfree ssh-askpass-nonfree ssh-socks ssh2 telnet-ssl telned-ssl | 1.2.2 0.99 1.2.2 1.2.2 1.2.27 1.2.27 1.2.27 2.0.13 0.16.1 | Ez a változat az OpenSSH programcsomagot tartalmazza, amely az OpenBSD operációs rendszerről került át ide. Igazi előnye a licensz. Az X grafikus felület alatt megkérdezi a jelszót. ua., de gnome-os változat. ua., de perl-tk-s változat Az SSH eredeti, de nem szabad megvalósítása ua., de nem szabad változat SSH SOCKS támogatással Az SSH eredeti második generációs változata SSL-képes telnet kliens SSL-képes telnet démon

12. táblázat - Alternatív csomagok távoli bejelentkezésre a Debian-ban

##
5. Alternatívák az egyéb programokra

A Debian-ban rengeteg olyan eset fordul elő, hogy egy azonos feladatra több program nyújthat megoldást. Pl. rengeteg héjprogram közül választhatunk igényeink szerint.

ash bash csh es esh kiss lsh rc sash tcsh zsh | A NetBSD shell A GNU szabványos shell-je *BSD C shell Az rc shell bővítve Lisp szintaxisú shell Bash-stílusú, sok beépített paranccsal *DOS szintaxis Az AT&T Plan 9 shell implementációja Statikusan linkelt shell TENEX C Shell, (BSD csh alapján) Sokfunkciós shell (ksh alapján)

13. táblázat - Shell-ek a Debian-ban

Amint a fenti táblázatban látható, mindenki megtalálhatja a más rendszerekben már jól megszokott héját.
A fontos az, hogy szánjunk rá időt és böngésszük végig a csomaglistát. Keressük meg az azonos funkciókat kitöltő csomagokat és válasszuk ki a nekünk szimpatikusakat. Ha nem tudjuk melyik a jobb, próbáljuk meg mindet és később döntsünk, melyik marad.