tar.gz veya tar.bz2 uzantılı dosyalar, çeşitli türden dosya ve klasörlerin arşivlenmesi için kullanılan çok yaygın bir arşivleme şeklidir. Kaynak koduyla gelen programlar da bu şekilde arşivlenir.

Mantığı şudur:

Bir veya birden fazla klasörün "tar" (tape archiever) programı ile arşivlendikten sonra, bu arşivin gzip (gz) veya bzip2 (bz2) ile sıkıştırılmasıyla oluşur."tar" kullanılmasındaki amaç, arşivlenen dosyaların tipi,tarihi,kullanıcı bilgileri vs gibi tüm bilgilerinin değiştirilmeden arşivlenmesine olanak sağlamasıdır.Başka bir bilgisayarda tar ile arşivlenmiş bir dosyayı kendi bilgisayarınıza açtığınızda dosyaların tipinin ve diğer özelliklerinin (dosya, klasör, aygıt dosyası, sembolik link, uid, gid, izinler, tarih vs..) aynen korunmuş olduğunu görürsünüz. Tar, dosya ve klasörleri olduğu gibi arşivleyip tek bir dosya haline getirdiği için, oluşan dosyanın boyutu, arşivlenen tüm dosyaların boyutlarının toplamına eşittir. Bu nedenle tar dosyalarını gzip veya bzip2 ile sıkıştırma gereksinimini duyuyoruz.

tar ile bir veya birden fazla klasör veya dosyayı arşivleyip bunu gz ile sıkıştıralım :
(oluşturulan arşiv dosyası; arsiv.tar.gz 'dir)

# tar czvf arsiv.tar.gz klasör1 klasör2 dosya1....
veya
# tar c klasör1 klasör2 dosya1... | gzip > arsiv.tar.gz

oluşturduğumuz arsiv.tar.gz dosyasını açtığımızda klasör ve dosyalar, /usr/share/kde gibi tam yol gösterilerek arşivlenmişse aynen o şekilde açılır.

Dosyayı açalım:

# tar zxvf arsiv.tar.gz

Klasör ve dosyaları bzip2 ile arşivleyip sıkıştırmak için:
(oluşturulan arşiv dosyası; arsiv.tar.bz2 'dir)

# tar cjvf arsiv.tar.bz2 klasör1 klasör2 dosya1...
veya
# tar c klasör1 klasör2 dosya1... | bzip2 > arsiv.tar.bz2

Dosyayı açmak için:

# tar jxvf arsiv.tar.bz2

sık kullanılan tar komut parametreleri:

z : gzip süzgecinden geçirir
j : bzip2 süzgecinden geçirir
c : create (arşiv oluşturmak için kullanılır)
x : extract (dosyaları açıp diske yazmaya başlar)
v : verify (işlem gören tüm dosyaları işlem sırasında listeler)
f : file (input veya output olarak bir dosya verilecekse dosya ismi f parametresinden sonra kullanılır)
t : test (dosyayı açmadan içeriğini "tar tzvf dosya.tar.gz" komutuyla görebilirsiniz. "x" parametresiyle kullanılmaz)

KAYNAK KODUYLA GELEN BİR PAKETİ SİSTEME KURMAK

tar.gz veya veya tar.bz2 uzantılı bir paketi sisteme kurmadan önce doğal olarak paketi açıyoruz.Örnek paketimiz .tar.gz uzantılı olsun. Paketlerin formatı genelde şu şekildedir: Paketİsmi-AsılVersiyon.AltVersiyon-Release.tar.gz

# tar zxvf apache-2.0.49.tar.gz

Genelde oluşan klasörün ismi, arşivin ".tar.gz" uzantısı dışında kalan kısım ile aynıdır.
Dosyaları listeleyelim:

# ls

apache-2.0.49 (klasör)
apache-2.0.49.tar.gz (dosya)

Oluşan klasöre geçelim:

# cd apache-2.0.49

Arşivimiz bir programın kaynak kodunu muhteva ettiğinden, içerik kaynak kodunun kullanıcı tarafından kolayca derlenebileceği şekilde hazırlanmıştır. İçerikte bulunan "README, INSTALL, Changelog, History" gibi dosyalar kullanıcıya önbilgi verme bakımından önemlidir. Gözatmakta fayda var. Derleme için gerekli Makefile betiklerini oluşturacak olan dosya, "configure" betik dosyasıdır. "configure" betiğinin amacı sistemin tipini, gereklilikleri, kullanıcı tanımlı ön parametreleri belirleyip oluşturduğu "Makefile" dosyalarına yazmaktır. Makefile dosyaları, derlemeye başlamak için kullanılan "make" komutunun, içeriğini çalıştırmak için kullandığı betik dosyalarıdır. Derleme ile ilgili, install, uninstall ile ilgili parametreler ve komutlar Makefile dosyalarının içindedir. Konfigurasyon işlemi başarılı olmadıkça Makefile dosyaları oluşturulmaz.

configure betiğine parametre vermek:

# ./configure --help
(sayfa sayfa görmek için "./configure --help | less" kullanın)

ile derleme öncesi kullanıcı tarafından atanabilecek parametreleri görebilirsiniz. Bu parametrelerin bazıları spesifik, bazıları ise geneldir. Genel parametrelerden en fazla kullanılanı --prefix parametresidir. Bu parametreyle kurulumun hangi klasöre yapılacağını belirtirsiniz. Öntanımlı olarak kurulum "/usr/local" klasörüne yapılır. Kaynak kodundan derlenen tüm programlar istisnalar haricinde ön tanımlı olarak "/usr/local" hiyerarşisine kurulur.

çalıştırılabilir binary ve super-user binary dosyalar:

/usr/local/bin
/usr/local/sbin

bu klasörlerdeki programların çalıştırılabilmesi için bu klasörleri $PATH değişkeninde tanımlanmış olması gerekir. "echo $PATH" komutuyla kontrol edebilirsiniz.

kitaplıklar (library) :

/usr/local/lib

vs..

şeklinde bu düzen içinde kurulur."/usr/local/lib" klasörü "/etc/ld.so.conf" dosyası içinde tanımlanmış olmalıdır, yoksa buradaki kitaplıklar programlar tarafından görülemez.

"./configure --prefix=/usr" şeklinde kullanırsanız kurulum düzenini /usr olarak belirtmiş olursunuz.

spesifik parametreler genelde "--enable-...." , "--disable-...." şeklindeki opsiyonlardır. Bu opsiyonları "--help" parametresiyle açıklamalı olarak görebilirsiniz.

Öntanımlı opsiyonlarla configurasyona ve derlemeye başlayalım:

# ./configure

eğer configure betiği gerekli bir programı bulamadığında veya versiyon uyuşmazlığında Makefile dosyalarını oluşturmadan hata verecektir. Verdiği hataya göre gerekli düzenlemeleri yapmak gerekecektir. İşler yolunda gider ve Makefile dosyaları oluşturulursa "make" komutuyla derleme işlemi başlatılabilir:

# make

Derleme bitiminde

# make install

ile kurulum yapılır. Programı başka parametrelerle veya başka bir nedenden ötürü yeniden derlemek isterseniz

# make uninstall

ile önceki kurulumu silip tekrardan

# ./configure --opsiyon ve parametreler vs...
# make
# make install

şeklinde yeniden kurulum yapılabilir.

NOT: "./configure" komutundaki "./" kısmı, bulunduğumuz klasördeki çalıştırılabilir dosyaları çalıştırılabilmek için kullanılır. Komut ve dosya isimlerini verirken TAB ile tamamlama özelliğini kullanmayı unutmayın.