9 Kasım 2009 Pazartesi

Eclipse üzerinde yeni bir Seam Web Project oluşturduktan sonra html dosyalarını "Jboss Tools HTML Editor" ile açamıyordum. Projenin bulunduğu workspace'de (/path_to/workspace/.metadata/.log) bulunan log dosyasına baktığımda hata kodu aşağıdaki gibiydi:
!ENTRY org.eclipse.ui 4 0 2009-11-09 16:02:32.436
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.UnsatisfiedLinkError: /home/ccanaslan/EclipseInstallations/eclipse_for_seam/plugins/org.mozilla.xulrunner.gtk.linux.x86_1.8.1.3-20070904/xulrunner/libjavaxpcomglue.so: libstdc++.so.5: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1647)
at java.lang.Runtime.load0(Runtime.java:769)
at java.lang.System.load(System.java:968)
at org.mozilla.xpcom.internal.JavaXPCOMMethods.registerJavaXPCOMMethods(JavaXPCOMMethods.java:57)
at org.mozilla.xpcom.internal.MozillaImpl.initialize(MozillaImpl.java:48)
at org.mozilla.xpcom.Mozilla.initialize(Mozilla.java:668)
at org.jboss.tools.vpe.xulrunner.browser.XulRunnerBrowser.initXulRunner(XulRunnerBrowser.java:120)
at org.jboss.tools.vpe.xulrunner.browser.XulRunnerBrowser.(XulRunnerBrowser.java:87)
at org.jboss.tools.vpe.xulrunner.editor.XulRunnerEditor.(XulRunnerEditor.java:126)
at org.jboss.tools.vpe.editor.mozilla.MozillaEditor$5.(MozillaEditor.java:282)
at org.jboss.tools.vpe.editor.mozilla.MozillaEditor.createPartControl(MozillaEditor.java:282)
at org.jboss.tools.vpe.editor.VpeEditorPart.createVisualEditor(VpeEditorPart.java:769)
at org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditor.pageChange(JSPMultiPageEditor.java:247)
at org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditor.createPages(JSPMultiPageEditor.java:438)
at org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditorPart.createPartControl(JSPMultiPageEditorPart.java:125)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:661)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:428)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:594)
at org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:262)
at org.eclipse.ui.internal.EditorPane.requestActivation(EditorPane.java:98)
at org.eclipse.ui.internal.presentations.PresentablePart.setFocus(PresentablePart.java:192)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:94)
at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:267)
at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:272)
at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.handleMouseDown(AbstractTabFolder.java:342)
at org.eclipse.ui.internal.presentations.util.AbstractTabFolder$3.mouseDown(AbstractTabFolder.java:79)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:179)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3401)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3033)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)


/usr/lib/ dizini altında libstdc++.so.6.0.10 vardı,
sorun "yum install libstdc++.so.5" komutu ile çözüldü.

23 Mart 2009 Pazartesi

fc10 JAVA Kurulumları ve Alternatives Ayarları

1) İndirdiğimiz jdk-1_5_0_17-linux-i586.bin ve jdk-6u12-linux-i586.bin dosyalarını /usr/lib/jvm/ altına kopyalayalım.

2) Sırasıyla aşağıdakileri yapalım :
# ./jdk-1_5_0_17-linux-i586.bin (kurulum esnasında lisans sözleşmesini "yes" yazarak onaylayalım)
# rm -f jdk-1_5_0_17-linux-i586.bin
# ./jdk-6u12-linux-i586.bin (kurulum esnasında lisans sözleşmesini "yes" yazarak onaylayalım)
# rm -f jdk-6u12-linux-i586.bin


3) java için
# alternatives --config java
There are 2 programs which provide 'java'.

Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
2 /usr/lib/jvm/jre-1.5.0-gcj/bin/java


sırasıyla
# alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_12/jre/bin/java 16012
# alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.5.0_17/jre/bin/java 15017

NOT =
usage: alternatives --install link name path priority
jdk1.6.0_12 için :
link : /usr/bin/java
name : java
path : /usr/lib/jvm/jdk1.6.0_12/jre/bin/java
priority : 16012 (jdk1.6.0_12)

jdk1.5.0_17 için :
link : /usr/bin/java
name : java
path : /usr/lib/jvm/jdk1.5.0_17/jre/bin/java
priority : 15017 (jdk1.5.0_17)


bittikten sonra :

# alternatives --config java
There are 4 programs which provide 'java'.

Selection Command
-----------------------------------------------
+ 1 /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
2 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
* 3 /usr/lib/jvm/jdk1.6.0_12/jre/bin/java
4 /usr/lib/jvm/jdk1.5.0_17/jre/bin/java

NOT = "+" işareti seçili olan kurulumu, "*" işareti ise priority olarak en yüksek versiyonu gösteriyor (jdk1.6.0_12 için 16012 vermiştik)




4) libjavaplugin.so için :
# alternatives --config libjavaplugin.so
There is 1 program that provides 'libjavaplugin.so'.

Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.6.0-openjdk/lib/i386/IcedTeaPlugin.so


sırasıyla
alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/lib/jvm/jdk1.5.0_17/jre/plugin/i386/ns7/libjavaplugin_oji.so 15017
ve
alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/lib/jvm/jdk1.6.0_12/jre/plugin/i386/ns7/libjavaplugin_oji.so 16012

bittikten sonra :

# alternatives --config libjavaplugin.so

There are 3 programs which provide 'libjavaplugin.so'.

Selection Command
-----------------------------------------------
1 /usr/lib/jvm/jre-1.6.0-openjdk/lib/i386/IcedTeaPlugin.so
2 /usr/lib/jvm/jdk1.5.0_17/jre/plugin/i386/ns7/libjavaplugin_oji.so
*+ 3 /usr/lib/jvm/jdk1.6.0_12/jre/plugin/i386/ns7/libjavaplugin_oji.so


Bu da bitti :)

Fedora 10 ile Amarok 1.4

fc9'dan fc10'a geçişte NetworkManager probleminden sonra en çok canımı sıkan şey Amarok'un 2.0 versiyonu idi. Alışkanlık ve daha ziyade equalizer özelliği yüzünden fc9'da kullandığım Amarok 1.4'ü mumla arar oldum. Her ne kadar ileriki versiyonlarda bunu ekleyecekleri bilgisi verilse de bir şekilde 1.4 e ulaşabilmeliydim. Sorunumun çözümüne tam da Amarok 1.4 in F10 adresindeki 43 no'lu post ile ulaştım.



İlk iş olarak mevcut amarok'u kaldirdim. Akabinde http://forums.fedoraforum.org/showpost.php?p=1121821&postcount=43 'de linkleri verilen rpm'leri lokalime indirip kurmaya giriştim :

$ sudo yum localinstall amarok-1.4.10-1.fc10.i386.rpm

ancak bu esnada
Package amarok-1.4.10-1.fc10.i386.rpm is not signed
hatası ile karşılaştım. Çözümü
/etc/yum.conf
dosyası içerisindeki
gpgcheck=1
satırını
gpgcheck=0
şeklinde değiştirmek.



Daha sonra
$ sudo yum localinstall amarok-visualisation-1.4.10-1.fc10.i386.rpm
ile amarok-visualizations'ı kurdum.
Bu sefer de aldığım hata şöyleydi :
Package amarok-visualisation is obsoleted by amarok, trying to install amarok-2.0.2-3.fc10.i386 instead
Nothing to do

Çözümü bir öncekine benzer :
/etc/yum.conf
dosyası içerisindeki
obsoletes=1
satırını
obsoletes=0
şeklinde değiştirmek.



Son olarak
$ sudo yum localinstall amarok-extras-freeworld-1.4.10-1.fc10.noarch.rpm
ile extras kurulumunu da tamamladım.



Bu noktada unutmamanız gerekenler,
/etc/yum.conf
içindeki
obsoletes
ve
gpgcheck
satırlarını tekrar 1 'e ayarlamak.
Ayrıca sonraki güncellemelerde Amarok 2.0 'a sobelenmemek için
exclude=amarok*
satırını eklemek.

fc10 ve Amarok 1.4 artık bir arada.
İşlem tamam :)

22 Şubat 2009 Pazar

SSL Sertifikasi Olusturma (Fedora 9 - Apache)

Hersey makinamda bulunan sirket web sitesinin test versiyonunun guvenli sayfalarini kontrol etmem esnasinda ortaya cikti. Arkadasimin ssh yapip lokalimde olusturdugu ssl sertifikasinin gecerlilik suresi dolmustu ve benim de nasil yapildigi hakkinda en ufak bir fikrim yoktu :)

Oncelikle; yaptigim arastirmada ssl sertifikasinin suresinin uzatilamadigini, bunun yerine yeniden olusturulmasi gerektigini ogrendim. Bu islemi 2 sekilde yapabiliyoruz: ilki "openssl" ile, digeri de "/etc/pki/tls/certs/Makefile" scriptini kullanarak. Aslinda Aslinda bu script zaten asagida anlatacagim ornegi, sertifika dosya adini parametre olarak almak yoluyla yerine getiriyor(ornek : /etc/pki/tls/certs/make localhost.crt). Scripti acip incelediginizde goreceksiniz.

On bilgi
----------------------------------
Fedora 9'da
sertifika (.crt) dosyalari /etc/pki/tls/certs
key (.key) dosyalari ise /etc/pki/tls/private altinda tutuluyor.
*ssl - Secure Sockets Layer
*tls - Transport Layer Security
*pki - Public Key Infrastructure

openssl ile olusturma

  1. Konsol acip root olalim :
    [ccanaslan@ccanaslan ~]$ su -

  2. Sertifika dosyalarinin bulundugu dizine gidelim :
    [root@ccanaslan ~]# cd /etc/pki/tls/certs

  3. 1024 bit uzunlugunda (default 512), des3 cipher ile encrypt edilmis, localhost.key adinda RSA private key'i olusturalim :
    [root@ccanaslan certs]# openssl genrsa -des3 1024 > localhost.key

  4. Sifre isteyecek, min.4 haneli bir sifre girin. Ne oldugu cok onemli degil, zaten key'in sifre sorma rutinini disable edecegiz. Yoksa apache'yi her resetlemede bu sifreyi soruyor :) Sifreyi verify ettikten sonra localhost.key dosyasinin olustugunu goreceksiniz.

  5. kisaca; localhost.key key'ini kullanarak, 1 yil gecerli olacak olan localhost.crt sertifika dosyasini olusturalim :
    [root@ccanaslan tls]# openssl req -utf8 -new -key localhost.key -x509 -days 365 -out localhost.crt -set_serial 0

  6. 4. maddede girmis oldugunuz sifreyi soracak,girip enter'a basin.

  7. Bu noktada, sizden sertifika tanimlamalarinda kullanilacak bazi bilgiler isteyecek. Bu bilgileri doldurabilir ya da enter'a basarak default degerleri almasini saglayabilirsiniz. (Default degerler /etc/pki/tls/openssl.cnf dosyasinda tutulmakta, isterseniz degistirebilirsiniz. Asagidaki gosterim, ilgili dosyanin degistirilmesinden sonraki halidir). Common Name (eg, your name or your server's hostname) []: sorusunu "localhost.localdomain" girerek gecelim. Goruntu asagidakine benzer olacaktir :
    [root@ccanaslan certs]# openssl req -utf8 -new -key localhost.key -x509 -days 365 -out localhost.crt -set_serial 0
    Enter pass phrase for localhost.key:
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [TR]:
    State or Province Name (full name) [Maslak]:
    Locality Name (eg, city) [Istanbul]:
    Organization Name (eg, company) [Biletix A.S.]:
    Organizational Unit Name (eg, section) [Software Development]:
    Common Name (eg, your name or your server's hostname) []:localhost.localdomain
    Email Address []:ccanaslan@biletix.com
    [root@ccanaslan certs]#

  8. Artik elimizde localhost.key ve localhost.crt dosyalari mevcut. Bu dosyalari "chmod 600 localhost*" komutunu kullanarak sadece root tarafindan okunup yazilabilecek seviyeye getirelim
    [root@ccanaslan certs]# ll localhost*
    -rw-r--r-- 1 root root 1407 2009-02-11 18:29 localhost.crt
    -rw-r--r-- 1 root root 963 2009-02-11 18:18 localhost.key
    [root@ccanaslan certs]# chmod 600 localhost*
    [root@ccanaslan certs]# ll localhost*
    -rw------- 1 root root 1407 2009-02-11 18:29 localhost.crt
    -rw------- 1 root root 963 2009-02-11 18:18 localhost.key

  9. localhost.key dosyasini /etc/pki/tls/private dizinine tasiyalim (bkz. On bilgi) ve bu dizine gecelim.
    [root@ccanaslan certs]# mv localhost.key ../private/

    [root@ccanaslan certs]# cd ../private/

  10. 4. maddede bahsettigim, sifre sorma rutinini iptal etme islemini yapalim:
    [root@ccanaslan private]# cp localhost.key localhost.bak
    [root@ccanaslan private]# openssl rsa -in localhost.bak -out localhost.key
    Enter pass phrase for localhost.bak:
    writing RSA key

  11. Apache'yi restart edelim:
    [root@ccanaslan private]# apachectl restart




/etc/pki/tls/certs/Makefile scriptini kullanarak olusturma

Bu islem cok daha basit. Zira soz konusu script ilk yontemde anlatilan islemleri, parametre olarak aldigi dosya adi ile gerceklestiriyor:
[root@ccanaslan ~]# cd /etc/pki/tls/certs
[root@ccanaslan certs]# make localhost.crt

Bu noktadan itibaren yapilacalar, ilk yontemin 9.maddesinden sonrasi ile aynidir:
[root@ccanaslan certs]# mv localhost.key ../private/
[root@ccanaslan certs]# cd ../private/
[root@ccanaslan private]# cp localhost.key localhost.bak
[root@ccanaslan private]# openssl rsa -in localhost.bak -out localhost.key
Enter pass phrase for localhost.bak:
writing RSA key
[root@ccanaslan private]# apachectl restart

Bitti :))