[Pardus-kullanicilari] Pardus'a RPM paketleri yüklemek

Onur Küçük onur at pardus.org.tr
20 Mar 2009 Cum 13:05:44 EET


 Merhaba,

> Son kullanıcıların Pardus'a daha rahat DEB veya RPM paketlerini
> kurmalarını sağlamaya çalışıyorum.

 Bence iyi yapmıyorsunuz. Pardus'un paket sistemi olarak PiSi
kullanması ile dağıtım içinde sadece pisi paketeri için rahat
kurulabilir ortam hazırlamamız "sadece paket dosyasının formatı" ile
ilgili değildir.

 Yazılımlar, hele ki açıkkodlu yazılımlar, genellikle derlenmeleri
sonrası ürettikleri dosyalardan ibaret değillerdir. Paylaşılan
objelere (shared object) bağlandılarsa, ki genelde böyle derlenirler,
çalışma sırasında bir sürü kitaplığa ihtiyaç duyarlar. Kitaplığın
sadece kendisinin kurulu olması da yeterli değildir, ilgili yazılımın
derlendiği sürüm ile ABI uyumlu olan bir sürümün olması, bu kitaplığın
kullanmak istediğiniz yazılımın ihtiyaç duyduğu özellikler ile
derlenmiş olması, bazı senaryolarda hangi derleyici ile derlendiği ve
hatta derleyiciye verilen parametrelerı vb. bir sürü kritik nokta
mevcuttur.

 Sadece kitaplıklar değil, resim vb. veri dosyaları, ayar dosyaları,
bağlanılmasa bile çeşitli işlevler için çağırılabilecek diğer
yazılımlar ve kitaplıklar ve yine bu araçlar için de yukarıda saydığım
ABI uyumu, gerekli özellikleri içererek derlenmiş olması vb.
gereklilikler mevcuttur.

 Bir ihtimal de, ilgili arşivden (rpm, deb, vs.) çıkan dosyalar dağıtım
deposundaki bir paketin dosyaları ile çakışabilir ve bu dosyalara zarar
verebilir, ki bu da o yazılımı ve onu kullanan bütün yazılımları
bozabilir.

 Böyle büyük bir karmaşanın içerisinde, elinizdeki derlenmiş yazılımın
bütün ihtiyaçlarını karşılamak çok zordur. Paketin bağımlılıklarına
bile baksanız bu bağımlılıklar ile Pardus ile gelen paketlerin birebir
eşleşmesi çok zordur ve en ufak bir eksiklik yazılımın doğru
çalışmaması için pusuda yatar.

 Yazılımı çalıştırıp "evet açılıyor" deseniz bile sorunun olduğu
noktaya bir şekilde denk gelirsiniz ve program yanlış çalışabilir,
çökebilir, işinize ya da verilerinize zarar verebilir, hatta domino
taşları gibi beraberinde bir sürü yazılımı da bozarak sisteme ciddi
zarar verebilir. Tecrübesiz bir kullanıcı da bunu görünce "aaa Pardus ne
kadar kötüymüş" der ve suçlu Pardus olur, Linux olur, açıkkodlu
yazılımlar olur.

 Bu sorunların oluşmaması için çeşitli yöntemler geliştirilmiş durumda
(statik derlenmiş yazılımlar, autopackage sistemi, kullanıcının kendi ev
dizinine program kuran yapılar vs.) ancak bu yöntemlerle edindiğiniz
yazılımlar da genelde dağıtımın sunduğu olanaklardan ve yazılımın depo
içerisinde gelişirken sorumlusunun yapabileceği düzeltmelerden mahrum
kalmaktadır. Yine de alternatif çözümünüz yoksa bu yöntemler "mecbur
kalındığı için" tercih edilebilir. 

 Bazı durumlarda çözümsüz kalınabiliyor. Kullanmak istediğiniz yazılım
özgür yazılım değilse, dağıtım içerisinde eskiye uyumlu olmayan ve yeni
sürümü kullanılan (ya da tam tersi) bir kitaplık vs. istiyorsa, kapalı
kodluysa, üreticisi / geliştiricisi 3. kanalların yazılımı dağıtmasına
izin vermiyorsa, bu yazılımın işini görecek başka bir yazılım
bulamıyorsanız (mesela bazı yazıcı sürücüleri) son çare olarak bu
yöntemlere başvurmalısınız.

 Bu bahsettiklerim PiSi, RPM, DEB arasında özel bir durum değildir.
Örneğin bir Mandriva RPM ini Suse'ye, Fedora'ya, Slackware'e vs.
yüklemeniz, hatta hazırlandığı Mandriva sürümü dışında bir Mandriva
sürümüne yüklemeniz durumunda da aynı sorunlarla karşılaşma ihtimaliniz
çok yüksektir.

 Bu durumlarla karşılaşmamak için öncelikle ilgili yazılımın Pardus
depolarında olup olmadığını kontrol etmek gerekir. Sisteme
tanıtılmadıysa contrib deposunu eklemekte de fayda var. Paket depolarda
yoksa iligli paket için hata takip sistemine [1] yeni paket isteği
girilebilir. Daha da iyisi eğer yazılım ile uğraşıyorsanız ve programcı
olmak istiyorsanız PiSi paketi yapmayı öğrenmek, açıkkodlu yazılımları,
dağıtımların iç yapılarını, depoların kendi içerisindeki uyumu sağlamak
için neler yapıldığını öğrenmek, hatta uzmanlaşınca belki Pardus
geliştiricisi olmak (tabi ki şahsi fikrim)  izlenecek en güzel ve
verimli yoldur.

> Ama ben bu programa ihtiyaç olmadan bunu başarabileceğimizi
> düşünüyorum.
> 
> rpm2targz program-adi.rpm
> 
> sudo tar xzvf program-adi.tar.gz -C /
> kodlarından sonra başka kod gerekiyor galiba derlemek için.

 Burada bir düzeltme yapmakta fayda var. Aradaki fark biraz bulanık
doğru, ama yukarıda yazdıklarınız "kod" değil "komut" tur.

 "sudo", başka bir kullanıcı yetkileri ile işlem yapmaya yarayan bir
yazılımdır. "tar", "tape archive" yani eski usül yedekleme teypleri
için hazırlanmış birden fazla dosya ve dizini akıllıca tek bir dosya
haline getirme aracıdır.

 Yukarıdaki işlemlerde çeşitli yazılımları (aslında komutları)
çalıştırıp onlara emir veriyorsunuz, ancak herhangi bir "derleme" işlemi
yapılmıyor. 


[1] http://hata.pardus.org.tr
-- 
 Onur Küçük                                      Knowledge speaks,
 <onur.--.-.pardus.org.tr>                       but wisdom listens



Pardus-kullanicilari mesaj listesiyle ilgili daha fazla bilgi