Frissítve: 2011.09.02.
A fejlesztők körében gyakori, hogy Windows-on fejlesztenek és Linux alatt csak üzemeltetik az alkalmazásokat. Ezzel korábban én is így voltam, azonban nemrég elhatároztam hogy kliens oldalon is áttérek a Linuxra, így ennek a lépéseit fogom most ismertetni. A váltás után leginkább az Eclipse megjelenésével nem voltam megbarátkozva, de erről a blog következő részében még részletesen fogok írni.
A fejlesztők körében gyakori, hogy Windows-on fejlesztenek és Linux alatt csak üzemeltetik az alkalmazásokat. Ezzel korábban én is így voltam, azonban nemrég elhatároztam hogy kliens oldalon is áttérek a Linuxra, így ennek a lépéseit fogom most ismertetni. A váltás után leginkább az Eclipse megjelenésével nem voltam megbarátkozva, de erről a blog következő részében még részletesen fogok írni.
A fejlesztő környezetet az Ubuntu 10.10, SunJDK 6, MySQL 5.1, Eclipse 3.5, JBoss 5.1, JBoss Seam 2.2 és JBoss Tools 3.1 eszközökből állítottam össze.
Ubuntu 10.10
A képfájlt az Ubuntu letöltési oldaláról mentettem le. A telepítési folyamat elég egyszerű volt, olyan next->next->finish jellegű. A telepítés befejezésével egy teljesen használható rendszert kaptam, nem kellett külön meghajtó programokat keresgélnem és feltelepítenem mint Windows alatt, a bluetooth-tól kezdve a webkameráig minden egyből működött. Érdemes még megemlítenem, hogy más disztribúciókhoz képest az Ubuntu 10.10 alapértelmezett megjelenése is kifejezetten jóra sikerült, csak a fontok terén kellett egy kicsit utána állítanom.
Általában többféle java implementáció is megtalálható a gépemen, azonban legtöbbször a SUN megvalósítását szoktam használni. A Sun JDK telepítéshez először felvettem a sun-os repositoryt, majd telepítettem a csomagokat.
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install sun-java6-jdk sun-java6-plugin sun-java6-fonts
sudo apt-get update
sudo apt-get install sun-java6-jdk sun-java6-plugin sun-java6-fonts
Mivel még régebben felraktam az OpenJDK-t, így az alapértelmezett Java-t át kellett állítanom a Sun JDK-ra. Ehhez megnéztem, hogy milyen Java implementációim vannak jelenleg: sudo update-java-alternatives -l, majd kiválasztottam a felsorolásból a java-6-sun-t: sudo update-java-alternatives -s java-6-sun. Végül a java -version -al megbizonyosodtam az átállás sikerességéről.
Minden fejlesztőnek van egy kedvenc keretrendszere, az enyém a JBoss Seam. Már jó pár éve használom és eddig nem okozott csalódást. Azt hiszem nem árulok el nagy titkot azzal, hogy a blogom olvasói még sokat fognak vele találkozni. Visszatérve a telepítésre, letöltöttem a JBoss Seam 2.2 -es verzióját, majd kicsomagoltam a /usr/local/seam könyvtárba.
A JBoss 5.1 szervert kicsomagoltam az unzip jboss-5.1.0.GA-jdk6.zip paranccsal a /usr/local/jboss-5.1.0.GA könyvtár alá, majd készítettem rá egy szimbolikus linket: ln -s jboss-5.1.0.GA jboss. A jboss frissítése esetén mostmár csak a linket kell átállítani, így a /usr/local/jboss mindig az aktuális szerverre fog mutatni. Mivel a JBoss alatti könyvtárszerkezet nem követi a Linuxos fájlrendszer konvenciókat, ezért a jboss/server/all/log, jboss/server/all/tmp és jboss/server/all/work könyvtárakra létrehoztam egy-egy szimbolikus linket, melyek a /var/log/jboss, /var/jboss/tmp és /var/jboss/work könyvtárakra mutatnak.
A mysql eléréséhez, a mysql-connector-java.jar JDBC driver-t bemásoltam a jboss/server/all/lib könyvtár alá. A datasource bekonfigurálásához a jboss/docs/examples/jca/mysql-ds.xml sablont átmásoltam a jboss/server/default/deploy könyvtárba majd módosítottam az alábbiak szerint:
<datasources>
<local-tx-datasource>
<jndi-name>testDatasource</jndi-name>
<connection-url>
jdbc:mysql://localhost:3306/testDB
</connection-url>
jdbc:mysql://localhost:3306/testDB
</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>testUsr</user-name>
<password>testPwd</password>
<exception-sorter-classname>
org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
</exception-sorter-class-name>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
A következő pár lépést akkor érdemes elvégezni, ha a JBoss-t Linuxos szolgáltatásként is el szeretnénk indítani. Hozzunk létre egy jboss nevű felhasználót akinek a nevében fog majd futni a JBoss alkalmazás szerver: useradd -s /bin/bash -g jboss jboss. A jboss felhasználónak biztonsági okok miatt ne adjunk meg jelszót, így csak root -ként lesz lehetőségünk a jboss felhasználóra váltani a su jboss paranccsal. Ha eddig nem a jboss felhasználóval dolgoztunk, módosítsuk a /usr/local/jboss/ alatti fájlok tulajdonosi és csoport jogait a jboss felhasználóra ill. csoportra: chown jboss:jboss /usr/local/jboss/ -R. Ahhoz, hogy a JBoss szervert linuxos szolgáltatásként tudjuk futtatni, a jboss/bin/jboss_init_redhat.sh scriptet át kell másolni az /etc/init.d/ könyvtárba, majd be kell állítani a JBOSS_HOME, JBOSS_USER, JBOSS_CONF, JAVA_PATH változókat és az update-rc.d jboss_init_redhat.sh defaults parancsal telepíteni az alapértelmezett futási szintekre, melynek az eredményét a chkconfig -l paranccsal ellenőrizhetjük. Ezután a JBoss-t az /etc/init.d/jboss_init_redhat.sh start paranccsal tudjuk indítani.
Feltelepítettem a mysql szerver és kliens programot: apt-get install mysql-server mysql-client, majd a mysql biztonságosabb használata érdekében kiadtam a következő parancsot:/usr/bin/mysql_secure_installation és végrehajtottam az alábbi lépéseket. Ezután az /etc/mysql/my.cnf állományban, a [mysqld] sor után felvettem a következő változókat:
lower_case_table_names=1
init_connect='SET NAMES utf8'
init_connect='SET collation_connection = utf8_general_ci'
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake
Linux alatt a mysql táblanevek alapértelmezettként case-sensitive-ek, így ezt megváltoztattam a lower_case_table_names változó 1-re állításával. A karakterkódolási problémák elkerülése véget pedig beállítottam, hogy a mysql globálisan az utf8-at használja.
A változók hozzáadása után újraindítottam a mysql-t és csatlakoztam az adatbázishoz, majd létrehoztam egy testDB nevű adatbázist: CREATE DATABASE testDB CHARACTER SET utf8 COLLATE utf8_general_ci; és készítettem egy testUsr nevű felhasználót akihez hozzárendeltem a megfelelő jogokat: GRANT ALL PRIVILEGES ON testDB.* to 'testUsr' IDENTIFIED BY 'testPwd' WITH GRANT OPTION;
Végül összegyűjtöttem azokat a parancsokat, melyeket gyakrabban használok a mysql üzemeltetése során.
A mysql szerver újraindítása:
service mysql restart
Sql szkript importálása a kiválasztott adatbázisba:
mysql --user=testUsr --password=testPwd testDB < sqlscript.sql
Backup készítése a kiválasztott adatbázisról:
mysqldump --user=testUsr --password=testPwd testDB > backup.sql
Adatbázisok megtekintése:
mysql -u testUsr --password=testPwd testDB --execute 'show databases'
A kiválasztott adatbázishoz tartozó táblák megtekintése:
mysql --user=testUsr --password=testPwd testDB --execute 'show tables'
Az alapértelmezett mysql engine megtekintése:
Az alapértelmezett mysql engine megtekintése:
mysql -u testUsr --password=testPwd testDB --execute 'show engines'
A mysql változók megtekintése:
mysql -u testUsr --password=testPwd --execute 'show variables'
Mysq felhasználók listázása:
mysql --user=testUsr --password=testPwd testDB --execute 'SELECT User, Host, Password FROM mysql.user';
mysql --user=testUsr --password=testPwd testDB --execute 'SELECT User, Host, Password FROM mysql.user';
A cikk következő részében a kedvenc fejlesztőeszközömmel, az Eclipse-el fogom folytatni a JBoss-orientált fejlesztőkörnyezet kialakítását. A cikk azoknak is hasznos lesz, akik nincsenek megelégedve az Eclipse alapértelmezett kinézetével Linux alatt.