CentOS 5.2 üzerine SUN Java Kurulumu (JDK 1.6)
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYeVyIf0' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
Üzerinde centos yüklü olan bir sunucuya sun'ın Java platformunu kurmam icap etti, ancak centos üzerinde gelen ya da sun'ın sitesinden indirip sisteme kurulabilen jdk versiyonu desktoplar ve son kullanıcıların klasik ihtiyaçlarını karşılayabilen bir sürüm olduğundan dolayı, bir sunucu bileşeni olarak ya da development ortamları için jdk ihtiyacı olduğunda bu versiyon -lisans sorunları vs. yüzünden- yeterli olamıyor.
İşte, bu yazıda centos 5.2 üzerinde, sunucular ve yazılım geliştirme ortamları için gerekli olan Java Platformu (ve jdk) kurulumuna ait notları bulabilirsiniz. |
Kurulumun yapılabilmesi için gereken şey, sun'ın sitesinden indirilebilecek java binarylerini, linuxlar için Java uyumluluğu sağlamayı amaç edinmiş “Jpackage Project” isimli oluşumun sunduğu nosrc RPM'lerle yeniden biçimlendirerek kendi RPM dosyalarımızı oluşturmak ve sisteme yüklemektir. İşte nasıl yapıldığı.
Bölüm 1: RPM Rebuilding
Bu adımda, Sun'ın -kodu açık olmadığından dolayı- binary olarak gelen JDK paketini ve Jpackage'in nosrc RPM'ini kullanarak rebuild işlemi yapacağız. Bu işlem sonunda sisteme kurulacak olan RPM paketlerini elde etmiş olacağız.
RPM building yapmak için öncesinde bu işlem için gerekli olan ortamın hazırlanması gerekiyor.
UYARI: Bir yazılımın kaynak kodlarından ya da binary dosyasından RPM'inin oluşturulması işlemi kesinlikle root kullanıcısı ile yapılmamalıdır. Zira, kaynak kodlarının derlenmesi işlemi, sistemde yüklü olan diğer yazılımların da kullanmakta olduğu kütüphaneleri değiştirebileceği için sisteminizde ciddi sorunlar oluşabilir. Yazıda, -non-root olarak tabir edilen- root olmayan bir kullanıcı ile çalıştırılması gereken komutlar $ işareti ile; root olarak çalıştırılması gereken komutlar # işareti ile anlatılacaktır. |
non-root bir hesap ile sisteme bağlandıktan sonra, kullanıcınızın home dizini altında “.rpmmacros” olarak adlandırılan rpmbuild yapılandırma dosyasını oluşturun.
$ touch ~/.rpmmacros
Oluşturduğunuz .rpmmacros dosyasının içine, kullanıcı adı kısmını düzenleyerek aşağıdaki satırları girin.
%_topdir /home/kullanici_adi/rpmbuild %_tmppath %{_topdir}/tmp
(Görüldüğü gibi ilk satır, rpm building işleminin yapılacağı -non-root kullanıcımızın home'u altındaki- build dizinini, ikinci satır da geçici dosyalar için temp dizinini gösteriyor.)
Şimdi, rpmbuild dizinini ve gerekli olan alt dizinleri oluşturun.
$ mkdir -p ~/rpmbuild/{SOURCES,SRPMS,SPECS,RPMS,tmp,BUILD}
rpmmacros yapılandırma dosyası ile ilgili işlemler bu kadar.
Bundan sonra, yum kullanarak derleme işlemleri için gerekli olan development paketlerini kuracağız. Root kullanıcısına geçip aşağıdaki komutu vererek kurulumu yapın.
Not: Eğer CentOS kurulumunda development paketlerini de kurduysanız bu paketlerin sistemde yüklü olduğunu belirtir uyarı alırsınız.
# yum install -y rpm-build gcc gcc-c++ redhat-rpm-config
Artık, RPM building işlemi için herşey hazır. Şimdi RPM'leri build edip JDK kurulumunu yapabiliriz.
Bölüm 2: SUN JDK 1.6 Kurulumu
Bu adımda, yazının başında bahsettiğim gibi Java Platformunun sisteminizde düzgün olarak çalışabilmesi için SUN'ın yayınladığı JDK binary dosyasını JPackage'in nosrc RPM'ini kullanarak RPM dosyası haline getireceğiz.
Öncelikle, sisteme jpackage-utils isimli paketin kurulmasi gerekiyor.
Ben CentOS 5.2 kullanıyorum ve bu paket CentOS 5'in standart yum depolarında bulunuyor. Gene root kullanıcısı ile aşağıdaki komutu girebilir ve kurulumu yapabilirsiniz.
# yum install jpackage-utils
Centos 4 kullaniyorsaniz, paketi yum depolarinda bulamazsiniz. O nedenle http://mirrors.dotsrc.org/jpackage/1.7/generic/free/RPMS/ adresinden indirip aşağıdaki komut ile kurmanız gerekiyor.
# rpm -Uvh jpackage-utils-1.7.3-1jpp.noarch.rpm
Bundan sonraki aşama, gerekli paketlerin download edilmesi.
Önce, http://mirrors.dotsrc.org/jpackage/1.7/generic/SRPMS.non-free/ adresinden kurmak istediğimiz JDK versiyonu ile uyumlu Jpackage nosrc RPM dosyasını indiriyoruz. Şu anki son versiyon java-1.6.0-sun-1.6.0.7-1jpp.nosrc.rpm
$cd ~/rpmbuild/ $wget (Jpackage nosrc rpm download linki)
Şimdi de Sun'dan JDK binarysini indirelim.
Ben kurulumu yaptığımda, JPackage'in nosrc RPM'inin en güncel versiyonu demin de bahsettiğim gibi “java-1.6.0-sun-1.6.0.7-1jpp.nosrc.rpm” idi. Ancak SUN'ın sitesinde son sürüm JDK binary dosyası jdk-6u10-linux-i586.bin olarak geçiyor. Versiyonu 1.6.0.7 olan jpackage nosrc RPM'ini kullanıp, güncel sürümü 1.0.6.10 SUN JDK binarysini versiyon farklılıklarından dolayı yeniden biçimlendirip RPM haline getirmek mümkün değil. Bu nedenle JDK'nın eski sürümlerinin yayınlandığı arşiv sayfasından, elinizdeki nosrc RPM sürümü ile uyumlu olan binary dosyasını indirmelisiniz. Sonuc olarak versiyonların birbirini tutması gerekiyor.
Güncel sürüm : http://java.sun.com/javase/downloads/index.jsp
Eski sürümler: http://java.sun.com/products/archive/
Doğru sürümü bulduktan sonra rpmbuild dizinindeki SOURCES dizinine geçip, binary dosyasını download edin.
$ cd ~/rpmbuild/SOURCES $ wget (Sun download sayfasindan aldiginiz uzun download linki)
Not: Download edilen dosyanin ismi devasa bir uzunlukta ve download oturumu ile ilgili karakterlere sahip bir sekilde geliyor. Ismini degistirmenizi oneririm :)
Gerekli olan paketleri indirdikten sonraki aşama rebuild işlemini yapmak. Bir üst dizine (yani rpmbuild dizinine) çıkın ve non-root olduğunuza emin olarak rpmbuild işlemini yapın.
$ cd ~/rpmbuild/ $ rpmbuild --rebuild java-1.6.0-sun-1.6.0.7-1jpp.nosrc.rpm
Rebuilding biraz uzun sürecektir, belki kendinize bir kahve yapmak istersiniz…
Bu işlem sorunsuz olarak bittiyse, oluşturulan RPM'leri ~/rpmbuild/RPMS/i586/ dizini altında bulabilirsiniz.
İşte benzer bir çıktı:
[cagri@centosvm /]$ ls -l ~/rpmbuild/RPMS/i586/ -rw-rw-r-- 1 43086865 Oct 29 22:59 java-1.6.0-sun-1.6.0.7-1jpp.i586.rpm -rw-rw-r-- 1 35878 Oct 29 23:00 java-1.6.0-sun-alsa-1.6.0.7-1jpp.i586.rpm -rw-rw-r-- 1 10472080 Oct 29 23:00 java-1.6.0-sun-demo-1.6.0.7-1jpp.i586.rpm -rw-rw-r-- 1 21709016 Oct 29 23:00 java-1.6.0-sun-devel-1.6.0.7-1jpp.i586.rpm -rw-rw-r-- 1 1259743 Oct 29 23:00 java-1.6.0-sun-fonts-1.6.0.7-1jpp.i586.rpm -rw-rw-r-- 1 26062 Oct 29 23:00 java-1.6.0-sun-jdbc-1.6.0.7-1jpp.i586.rpm -rw-rw-r-- 1 806767 Oct 29 23:00 java-1.6.0-sun-plugin-1.6.0.7-1jpp.i586.rpm -rw-rw-r-- 1 17692817 Oct 29 23:00 java-1.6.0-sun-src-1.6.0.7-1jpp.i586.rpm
Bundan sonra yapmak gereken tek şey, oluşturduğumuz rpm'leri sisteme yüklemek. (Elbette rook kullanıcısı ile yükleyebilirsiniz.)
Aşağıdaki komutu tüm RPM'lere uygulayabilir ve hepsinin kurulumunu yapabilirsiniz.
Not: Ben de java-1.6.0-sun-fonts-1.6.0.7-1jpp.i586.rpm ve java-1.6.0-sun-jdbc-1.6.0.7-1jpp.i586.rpm kurulumları dependencies sorunu çıkardı. Fontlarla ve Java üzerinden Database bağlantısı kurmak gibi bir niyetim olmadığı için üstünde durmadım. Eğer sizin de ihtiyacınız yoksa es geçebilirsiniz.
#yum --nogpgcheck localinstall /dizin/java-1.6.0-sun-1.6.0.7-1jpp.i586.rpm
RPM'leri sisteminize yükledikten sonra, (root olarak) aşağıdaki komut ile kurduğumuz java versiyonunu seçiyoruz.
# alternatives --config java There is 1 program that provides 'java'. Selection Command ----------------------------------------------- *+ 1 /usr/lib/jvm/jre-1.6.0-sun/bin/java Enter to keep the current selection[+], or type selection number:
Bu aşamadan sonra kurulum bitmiş oluyor.
En son olarak da test edelim.
$ java -version
Eğer herşey yolunda gittiyse, aşağıdakine benzer bir çıktı almanız gerekir.
java version "1.6.0_07" Java(TM) SE Runtime Environment (build 1.6.0_07-b06) Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode)
İşte artık sunucu bileşeni olarak ya da geliştirme ortamlarında kullanılmak üzere bir Sun Java (+JDK) platformumuz var.
Kaynak: http://wiki.centos.org/HowTos/JavaOnCentOS
Bu yazılar da ilginizi çekebilir:
- CentOS6 Üzerine Oracle Java JDK 1.7 Kurulumu
- Wget – Oracle Java Direct Download
- JODConverter ile Office Dosyaları Arasında Convert İşlemleri
- Centos 5.2 üzerine Red5 Flash Server Kurulumu
- Centos/Linux üzerine VMware Server 2.0 Kurulumu
Yorumlar
Trackbacks
Yorumda bulunun.
Merhaba;
Güzel anlatımınız için çok teşekkürler. Kurulumu başarılı bir şekilde gerçekleştirdim. Şimdi de Red5’e geçiyorum. :)
[Cevapla]
Rica ederim.
İşinize yaradıysa ne mutlu.
[Cevapla]
Faydalı olmuş.Teşekkürler.
[Cevapla]
teşekkür ederim
[Cevapla]
databse olmadiktan sonra java ne ise yarayacak?
[Cevapla]
Database gerektirmeyen tüm java uygulamalarına…
Sizin db gereksinimi duyan bir java uygulamanız varsa, öncesinde bağımlı paketleri yüklemeniz sureti ile ilgili rpm’i sisteminize sorunsuz olarak ekleyebilirsiniz.
Ben, bana lazım olmadığı için yüklememiştim.
[Cevapla]
anlatım için teşekkürler
kolay gelsin
[Cevapla]
merhaba arkadaşlar biraz zun olacak ama bende aşağıdaki hatayı verdi yardımcı olabilirmisiniz ne yapmalıyım sizce
error: cannot open java-1.6.0-sun-1.6.0.7-1jpp.nosrc.rpm: No such file or directory
root@sunucu [~/rpmbuild]# dir
./ ../ BUILD/ java-1.6.0-sun-1.6.0.11-1jpp.nosrc.rpm java-1.6.0-sun-manual-1.6.0-1jpp.nosrc.rpm RPMS/ SOURCES/ SOURCES,SRPMS,SPECS,RPMS,tmp,BUILD/ SPECS/ SRPMS/ tmp/
root@sunucu [~/rpmbuild]# rpmbuild –rebuild java-1.6.0-sun-1.6.0.11-1jpp.nosrc.rpm
Installing java-1.6.0-sun-1.6.0.11-1jpp.nosrc.rpm
warning: InstallSourcePackage: Header V3 DSA signature: NOKEY, key ID c431416d
warning: user jasonc does not exist – using root
warning: group jasonc does not exist – using root
warning: user jasonc does not exist – using root
warning: group jasonc does not exist – using root
warning: user jasonc does not exist – using root
warning: group jasonc does not exist – using root
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.19256
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ rm -rf /usr/src/redhat/BUILD/jdk1.6.0_11
+ export MORE=10000
+ MORE=10000
+ sh /usr/src/redhat/SOURCES/jdk-6u11-linux-i586.bin
sh: /usr/src/redhat/SOURCES/jdk-6u11-linux-i586.bin: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.19256 (%prep)
RPM build errors:
InstallSourcePackage: Header V3 DSA signature: NOKEY, key ID c431416d
user jasonc does not exist – using root
group jasonc does not exist – using root
user jasonc does not exist – using root
group jasonc does not exist – using root
user jasonc does not exist – using root
group jasonc does not exist – using root
Bad exit status from /var/tmp/rpm-tmp.19256 (%prep)
root@sunucu [~/rpmbuild]# rpmbuild –rebuild java-1.6.0-sun-manual-1.6.0-1jpp.nosrc.rpm
Installing java-1.6.0-sun-manual-1.6.0-1jpp.nosrc.rpm
warning: InstallSourcePackage: Header V3 DSA signature: NOKEY, key ID c431416d
warning: user scop does not exist – using root
warning: group scop does not exist – using root
error: File /usr/src/redhat/SOURCES/jdk-6-doc.zip: No such file or directory
[Cevapla]
Eksik dosyalar var. Sanirim kurulum adimlarindan birisini atladiniz.
Tekrar goz atmaniz sorunu cozecektir.
[Cevapla]
Merhabalar,
rpmbuild –rebuild java-1.6.0-sun-1.6.0.7-1jpp.nosrc.rpm komutu sonrasında şöyle bir çıktı almaktayım :)
Bu konuda bilginiz var mı? Nasıl çözebilirim bu durumu. İşletim sistemim Centos 5.4
Installing java-1.6.0-sun-1.6.0.11-1jpp.nosrc.rpm
warning: InstallSourcePackage: Header V3 DSA signature: NOKEY, key ID c431416d
warning: user jasonc does not exist – using root
warning: group jasonc does not exist – using root
warning: user jasonc does not exist – using root
warning: group jasonc does not exist – using root
warning: user jasonc does not exist – using root
warning: group jasonc does not exist – using root
Executing(%prep): /bin/sh -e /home/halid/rpmbuild/tmp/rpm-tmp.12862
+ umask 022
+ cd /home/halid/rpmbuild/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ rm -rf /home/halid/rpmbuild/BUILD/jdk1.6.0_11
+ export MORE=10000
+ MORE=10000
+ sh /home/halid/rpmbuild/SOURCES/jdk-6u11-linux-i586.bin
sh: /home/halid/rpmbuild/SOURCES/jdk-6u11-linux-i586.bin: No such file or directory
error: Bad exit status from /home/halid/rpmbuild/tmp/rpm-tmp.12862 (%prep)
RPM build errors:
InstallSourcePackage: Header V3 DSA signature: NOKEY, key ID c431416d
user jasonc does not exist – using root
group jasonc does not exist – using root
user jasonc does not exist – using root
group jasonc does not exist – using root
user jasonc does not exist – using root
group jasonc does not exist – using root
Bad exit status from /home/halid/rpmbuild/tmp/rpm-tmp.12862 (%prep)
[Cevapla]
Bir önceki arkadaşa cevap vermişsiniz eksik kurulmuş diye, ancak kurulumda herhangi bir hata yok. 2-3 defa farklı makinalarda test ettim. Bi’ sıkıntı var, çözemedim.
[Cevapla]
Selamlar,
İslem adimlarini paylasirsaniz daha iyi anlayabiliriz sorunun nedenini.
[Cevapla]
Centos 5.4 işletim sisteminde bir kullanıcı açtım. non-root kullanıcıyla indirip, gerekli paketleri kurup jdk’yı indirdim. Ancak
rpmbuild –rebuild java-1.6.0-sun-1.6.0.11-1jpp.nosrc.rpm işleminden sonra ilgili hatayı verdi.
[Cevapla]
~/rpmbuild/ ve ~/rpmbuild/SOURCES dizininin icerigi nasil ?
[Cevapla]
~/rpmbuild/ içeriği;
./ BUILD/ RPMS/ SPECS/ tmp/
../ java-1.6.0-sun-1.6.0.11-1jpp.nosrc.rpm SOURCES/ SRPMS/
~/rpmbuild/SOURCES içeriği;
./ java-1.6.0-sun-register-java-fonts.xsl jdk-6u10-linux-i586.bin
../ java-1.6.0-sun-unregister-java-fonts.xsl
[Cevapla]
Selamlar,
Jpackage nosrc RPM’in sürümü ile Sun’in sitesinden download ettiginiz JDK sürümü birbirinden farkli.
java-1.6.0-sun-1.6.0.11-1jpp.nosrc.rpm
jdk-6u10-linux-i586.bin
Sun’in sitesinden JDK 6 update 11 versiyon numarali bin dosyasini download etmelisiniz.
[Cevapla]
Teşekkür ederim, gözden kaçırmışım:)
[Cevapla]
Açıklamanız için çok teşekkürler, sorunsuz kurulum gerçekleştirenlere bizi de dahil edebilirsiniz :-)
Evet Sıra, Red5 te…
Emeğiniz için Teşekkürler..
[Cevapla]
Gozunu seveyim kardesim. Sagolasin, tum gun bununla ugrasmistim…
[Cevapla]