24 Eylül 2013 Salı

Yerel Yum Deposu Oluşturmak

rpm komutu ile bir paket kurmak istediğimizde eğer bağımlı paketler sistemimizde kurulu değilse paketi kurmamıza izin vermeyecektir. Yum ise bağımlı paketleri de kurabiliyor. O nedenle önemli kullanım kolaylığı sağlıyor.
RHEL'e kayıtlı olmadığınız için yum'u kullanamıyorsanız, bu yazıda anlatılanları yaparak sisteminizde yerel bir yum deposu oluşturabilir ve yum'u kullanabilirsiniz.

Öncelikle depo (repository) için dizin oluşturalım.

mkdir -p /opt/yum/rhel6.4

RHEL DVD'sindeki (Centos, Fedora ya da Oracle Linux de olabilir) rpm dosyalarını yeni oluşturduğumuz dizine kopyalayalım.

cp /media/RHEL_6.4\ i386\ Disc\ 1/Packages/*.rpm /opt/yum/rhel6.4

Aşağıdaki komut girilerek depo yapılandırması yapılır.

cd /opt/yum/rhel6.4
createrepo .

Eğer sisteminizde createrepo kurulu değilse rpm paketinden kurabilirsiniz. Sisteminizde rpm dosya ismi farklı olabilir. Ama genellikle createrepo ile başlar.

rpm -i createrepo-0.9.9-17.el6.noarch.rpm

createrepo paketini kurarken eksik bağımlık nedeniyle kuramadığını söylerse öncelikle bağımlı olduğu paketi/paketleri kurun. 3-4 bağımlı paket kurulumundan sonra createrepo kurulabiliyor.

Böylece depo yapılandırması yapılmış oldu. Şimdi bu depo'yu yum'a tanıtacağız.

/etc/yum.repos.d dizininde içeriği aşağıdaki gibi olan local.repo isminde bir dosya oluşturun.

[local-source]
name=local RHEL rpms
baseurl=file:///opt/yum/rhel6.4
enabled=1
gpgcheck=0


Yeni depomuzu yum'un görüp görmediğini kontrol etmek için aşağıdaki komutları kullanabiliriz.

yum clean all
yum repolist

Bundan sonra yum'u kullanarak paket kurulumlarını gerçekleştirebiliriz.

23 Eylül 2013 Pazartesi

Dosyanın Hangi RPM Paketinde Yer Aldığını Bulmak

Sisteminizde kurulu bir pakete ait bir dosyanın tam path'ini biliyorsanız bu dosyanın hangi pakete ait olduğunu aşağıdaki komutla bulabilirsiniz.

rpm -qf [dosya_adı]

Örneğin:
rpm -qf /usr/bin/xmllint

Paket, sisteminizde kurulu değilse adını bildiğiniz dosyanın hangi pakette yer aldığını aşağıdaki betik ile bulabilirsiniz.
Bu betik, repoquery komutundan faydalanır ve yum repository'lerinde arama yapar.

#!/bin/bash

if [ $# -ne 1 ]
then
echo -e "Usage: $0 [file_name]"
exit 1
fi

FILE_NAME=$1
ALL_PACKAGES=$(repoquery -a)

for PACKAGE in $ALL_PACKAGES
do

#echo package = $PACKAGE
FILES=$(repoquery --list $PACKAGE)
for file in $FILES
do
if [[ "$file" =~ "$FILE_NAME" ]]
then
echo Package $PACKAGE contains the file $FILE_NAME
break
fi
done

done 

20 Ağustos 2013 Salı

Linux'te Java'nın Cryptography kütüphanesi yavaş çalışıyor

Kamu SM'nin Zaman Damgası console uygulaması çok yavaş çalışıyordu. Yavaşlığın sebebinin RHEL'de (6.4 versiyonu) kullanılan (aynı problem Debian'da (7.1 versiyonu) da gözlendi) random number generator'ın yavaş çalışmasından kaynaklandığı anlaşıldı.

Random number generator, sistemin entropy değerine göre sayı üretiyor. Entropy değeri küçükse önce entropy'yi yükseltip daha sonra sayı üretiyor. Bu arada; entropy, zaman, klavye ve mouse hareketleri, sıcaklı vb etmenlere göre oluşuyor. Aşağıdaki komutu kullanarak entropy'nin değerini görebilirsiniz.

cat /proc/sys/kernel/random/entropy_avail


Linux'taki rngd/rng-tools servisi bu değerin her zaman yüksek olmasını sağlıyor.

--------------------------------------------------------------------------------

RHEL ve türevi sistemlerde aşağıdaki komut ile bu servisi kurabilirsiniz
yum install rng-tools

Debian ve türevi sistemlerde aşağıdaki komut ile bu servisi kurabilirsiniz
apt-get install rng-tools

--------------------------------------------------------------------------------

RHEL ve türevi sistemlerde aşağıdaki komut ile servisi başlatabilirsiniz.
service rngd start

Debian ve türevi sistemlerde aşağıdaki komut ile servisi başlatabilirsiniz.
service rng-tools start

--------------------------------------------------------------------------------

Starting rngd: can’t open entropy source(tpm or intel/amd rng)
Maybe RNG device modules are not loaded

[FAILED]

RHEL ve türevi sistemlerde yukarıdaki gibi bir hata alıyorsanız ve servis başlamıyorsa "/etc/sysconfig/rngd" dosyasında aşağıdaki satırı ekleyiniz.
EXTRAOPTIONS=”-r /dev/urandom”

--------------------------------------------------------------------------------

Starting Hardware RNG entropy gatherer daemon: (Hardware RNG device inode not found)
/etc/init.d/rng-tools: Cannot find a hardware RNG device to use.

Debian ve türevi sistemlerde yukarıdaki gibi bir hata alıyorsanız ve servis başlamıyorsa "/etc/default/rng-tools" dosyasına aşağıdaki satırı eklemelisiniz
HRNGDEVICE=/dev/urandom

--------------------------------------------------------------------------------

rngd/rng-tools servisini başlatınız. Aşağıdaki komutla entropy değerine baktığınızda çok daha yüksek rakamlara çıktığını göreceksiniz.
cat /proc/sys/kernel/random/entropy_avail

Çözümün oluşturulmasında faydalanılan 2 sayfayı aşağıda yazıyorum.

http://stackoverflow.com/questions/137212/how-to-solve-performance-problem-with-java-securerandom

http://my.itwnik.com/2012/04/how-to-increase-linux-kernel-entropy/

29 Ocak 2013 Salı

Açık Kaynaklı Yazılımlar

Load Balancer

Nginx, http://nginx.org
Apache Web Server, http://httpd.apache.org

Monitoring & Management

Nagios, http://www.nagios.org
Zabbix, http://www.zabbix.com
Hyperic, http://www.hyperic.com
Graylog2, http://graylog2.org
Cluster SSH, http://sourceforge.net/projects/clusterssh

Raporlama

RRDtool, http://oss.oetiker.ch/rrdtool
Cacti, http://www.cacti.net

Intrusion Detection

Ossec, http://www.ossec.net

Kurulum & Konfigürasyon Yönetimi

etckeeper, http://joeyh.name/code/etckeeper
Puppet, http://puppetlabs.com
Chef, http://www.opscode.com/chef
Cobbler, http://cobbler.github.com

Sniffing

Wireshark, http://www.wireshark.org/

Ön Muhasebe

Tekir, http://www.tekir.com.tr

Uzaktan Eğitim

Moodle, https://moodle.org
Sakai, http://www.sakaiproject.org

Web Konferans

BigBlueButton, http://www.bigbluebutton.org