T-K-O-T

linux bagimlilik problemleri

GNU/Linux


Linux Bağımlılık Problemleri

Bağımlılık Cehennemi

Programlar, çalışabilmek için kütüphane dosyalarına ihtiyaç duyarlar. Kütüphane dosyaları, başka programlara servis sunan, altprogramları içeren yapılardır. Örneğin, DivX filmleri izleyeceğiniz bir proje hazırlıyorsanız, oturup DivX kodunu çözmek için uğraşmanız gerekmez. Daha önceden DivX kodunu çözmek için üretilmiş bir kütüphane kullanırsınız ve projeniz hızlıca tamamlanır. Ancak kütüphane dosyalarıyla projelerin geliştirilmesi, bazı sorunları da beraberinde getiriyor.

İngilizce'de "Dependency Hell" diye bir tanım var. Türkçe'ye çevirisini, "Bağımlılık Cehennemi" olarak yapabiliriz. Bağımlılık Cehennemi, Windows'ta pek göreceğiniz bir durum olmamakla birlikte, Linux'ta sürekli boğuştuğumuz bir konu. Linux'ta herhangi bir projenin kaynak dosyalarını alıp, derlemek veya önceden derlenmiş bir paketi kurmak isterseniz, kurulum için gerekli bazı dosyaların eksik olduğu gerekçesiyle, kurulum iptal edilebilir. Eksik dosyalar veya programlar tamamlandıktan sonra, kurulum işlemini gerçekleştirebilirsiniz. Linux ile Windows arasında en büyük fark buradadır.

Dikkat etmişsinizidir, Linux'ta program boyutları oldukça mütevazı oluyor. 3 MB'a render programları, 2 MB'a video işleme araçları, hatta 60 KB'a editörler bulabiliyorsunuz. Windows programlarına ait kurulum dosyalarıysa, bu verdiğimiz rakamların oldukça üstünde yer kaplıyor. Bu farklı durumun, Windows'un veya Linux'un birbirinden iyi ya da kötü olmasıyla bir alakası yok. Nedeni aslında çok basit; konuya yaklaşım farkı...

Linux geliştiricilerinin genel felsefesi, herkesi düşünerek program yazmalarıdır. Sizin emrinize tahsis edilmiş, 1 Mbit'lik Internet bağlantınız olabilir. Ancak sizin imkanlarınıza sahip olmayan dünyanın büyük çoğunluğu, hâlâ telefonla bağlantı kullanıyor. 56 Kbps bağlantı ile Internet'e bağlanan birisi için, 4 MB ile 12 MB arasında ciddi bir fark var. Linux'ta program geliştirenler de bu durumu hesaba katıyorlar.

Çoğu Linux programının, ufak boyutta gelmesinin en büyük nedeni, programın kullandığı kütüphane dosyalarının veya bazı araçların kurulum dosyasının dışına çıkartılmasıdır. Böylece yazılım, gayet ufak boyuta inebilir. Windows programlarıysa, kurulum dosyaları içinde gereken her türlü aracı ve kullanılacak bütün kütüphane dosyalarını içerir. Bu da bu programların boyutunu doğal olarak yükseltir. Her iki yöntemin avantajları ve dezavantajları bulunuyor.

Windows programları, çok yer kaplar. Ama kurulumu çok basittir. Programın çalışması için eksik bir dosya varsa, eksik dosyaların kurulumu gerçekleştirilir. Önemli olan basit kurulumdur. Linux'taysa öncelik ufak boyuta verilmiştir. Linux programlarına ait kurulum paketleri bu nedenle az yer kaplar. Fakat gereken bir dosya bulunmuyorsa, o zaman paket bir şey yapamaz ve program kurulumu iptal edilir. İlgili kütüphane dosyalarını indirip, yüklemek kullanıcının sorumluluğundadır. Bu sorumluluğu yerine getirmenin, zaman zaman deveye hendek atlamaktan zor olduğunu hatırlatalım.

Çözüm nedir?

Çözümsüz bir durumdan bahsetmiyoruz. Elbette ki bahsettiğimiz bağımlılık sıkıntılarından kurtulmanın yolları var.

 Bağımlılık cehenneminden uzak durmanın en pratik yolu, olabildiğince paket yönetim sistemlerini kullanmaktır. Paket yönetim sistemleri, bir program yükleneceği zaman, programın nelere ihtiyacı olduğunu tespit eder. Eksik olan araçlar ve kütüphane dosyaları bu tespit sonrasında yüklenir. Programınız bütün bağımlılıklar sağlandıktan sonra kendiliğinden kurulur. Bu sayede, hiçbir şey yapmadan rahatlıkla program yükleyebilirsiniz. Ne yazık ki her durumda paket yönetim sistemlerini kullanma şansınız olmayacaktır.  

  Internet'te yeni bir programa denk gelip, bunu paket yönetim sisteminin kullandığı depolarda bulamayabilirsiniz. Yazılımın web adresinde, dağıtımınıza uygun bir kurulum paketi sunulmuştur.    

Linux'ta Mondo isimli güçlü bir yedekleme programı bulunuyor. Mondo'ya ait dökümanları içeren kurulum paketini indirdim. Paketi yüklemek için çift tıkladığımda aşağıdaki görüntüyü elde ettim:

 

Resimden göreceğiniz gibi "All dependencies are satisfied" şeklinde bir mesaj çıkıyor. Bunu gördüğünüz zaman, o programı sorunsuzca kurabilirsiniz. Çünkü gereken dosyalar sisteminizde bulunuyor demektir. Bazen de aşağıda ki gibi bir hata mesajıyla karşılaşabilirsiniz:

 

VLC isimli programın kurulumu için 4 pakete ihtiyaç olduğunu görüyorsunuz. Eğer bu eksikleri gidermeden programı kurmayı denerseniz, paket yönetim sisteminde soruna neden olursunuz. Bu durumda, kurduğunuz paketleri kaldırmanız gerekir. Paket yöneticisini kullanarak, hatalı paketleri kaldırmanız mümkündür. Dilerseniz, Ubuntu gibi Debian tabanlı dağıtımlarda, konsoldan kullanacağınız "sudo apt-get install -f" komutuyla da sorunu çözebilirsiniz.

Şimdi de gelelim, eksik paketleri nasıl bulup, kuracağımıza. APT (Advanced Package Tool) kullanan dağıtımlarda bu iş oldukça basit. Konsola girin ve "sudo apt-get install apt-file" yazın. Bu komutla apt­file isminde bir program yüklemiş oldunuz. Hemen arkasından, "sudo apt-file update" komutunu kullanıp, sisteminizi güncelleyin.

Bundan sonra bağımlılık problemi yaratan bir şeylerle karşılaşırsanız, apt-file hangi paketi indirmeniz gerektiği bilgisini verecektir. Örneğin, libXrandr.a isimli bir dosya sisteminizde eksik olduğu için sorun çıkıyorsa, önce libXrandr.a'yı içeren paketi kurmak gerekir. Ancak bunu nereden bulup, kuracağımızı doğal olarak bilemeyiz. O zaman "sudo apt-file search libXrandr.a" yazarız ve karşımıza "libxrandr-dev: usr/lib/libXrandr.a" şeklinde bir sonuç çıkar. Bunun anlamı, "sudo apt-get install libxrandr-dev" yazarsak, eksik olan libXrandr.a dosyasının sisteme ekleneceğidir. Anlattığımız çözüm bütün Debian tabanlı dağıtımlarda kullanılabilir. İşin bir de RPM boyutu var.

RPM paket yönetim sistemi kullanıyorsanız, işler birazcık daha sizin elinize bakıyor. RPMFind.net ve RPMSeek.com adresleri sizin en büyük yardımcınız olacak. Bu adreslere girip, size lâzım olan dosyanın adını yazarsanız, bu dosyanın bulunduğu paketler listelenecektir. Debian'a göre, daha manuel bir işlem. Ancak sizi sonuca ulaştıracaktır. Bu arada not düşmekte fayda var, Mandriva Linux dağıtımında, Urpmi ile bu işler çok daha rahat yapılıyor.

Autopackage

  Açık kaynak kodun en güzel yanı, insanların alternatif çözümler üretebilmesi. Autopackage rahat program yükleyebilmek için üretilmiş alternatif bir yöntem. Aslında fikir çok basit: Her Linux dağıtımında script'ler sorunsuzca çalışabilirler. Autopackage da bunu kullanıyor. Aslında Autopackage, çalıştırılabilir bash script'ten başka bir şey değil.

Autopackage dosya formatında gelen programlarla, hiçbir sorun yaşamıyorsunuz. Hangi dosya veya program eksikse, kendiliğinden kuruluyor. Üstelik, paket yönetim sistemlerinde ki gibi, önceden verilmiş depo adresleri gerekmiyor. Kısacası siz hiçbir şey yapmasanız; işletim sisteminizde hiçbir paket yönetim sistemi bulunmasa dâhi, Autopackage ile program kurabiliyorsunuz. Şu ana kadar denediğim her şeyden daha güzel olduğunu düşünüyorum. Fakat önemli bir nokta var!

 
 

Autopackage, baştan aşağı bütün ihtiyaçlarınızı giderebileceğiniz bir paket yönetim sistemi değil. Esasında bir shell script olduğu için, paket yönetim sistemlerinden yavaş çalışıyor. Autopackage'in kullanılmasının en uygun olduğu alanlar, üçüncü parti yazılımlar. Yani Internet'te görüp, paket yöneticisinde bulunmayan programlar için uygun bir yöntem. Projenin resmi sitesine girip, hangi programların Autopackage desteğine sahip olduklarını görebilirsiniz. Şimdilik pek fazla olmasa da, zaman içinde ciddi bir yaygınlığa ulaşacaktır.

Bilgisayarınızı Multimedia Canavarına Dönüştürün!

Günümüz kullanıcısı için bilgisayarda olmazsa olmaz şeyler vardır. Bunların içine, bilgisayarda DivX film izleme, mp3 dinleme gibi aktiviteler girer. Lâfı uzatmaya gerek. Yazımızın bu kısmında, bunları nasıl yapabileceğinize değineceğiz.

Linux dağıtımlarının birçoğu avi, mp3 ve diğer birçok formatı desteklemeden gelir. Yasalar gereği, bu formatlar kullanıcıların kendi istekleriyle sonradan yüklenir. Yüklemeyi manuel olarak yapabilirsiniz, ancak bunu pek tavsiye etmiyorum. Mümkün mertebe hazır araçlar kullanmanız yararınıza...

Bu arada hatırlatmakta yarar var; Pardus dağıtımı, mp3, avi vb. birçok formatı destekler hâlde geliyor. Haber gruplarından okuduğum kadarıyla, Türkiye'deki yasalarla çelişen bir durum olmadığı söyleniyor. Yasaları irdelemeyi bırakırsak, Pardus dağıtımı kullanıyorsanız, yazının bundan sonrasına ihtiyacınız olmayacaktır. Çünkü anlatacağımız şeylere zaten sahipsiniz!

Hazır araçlardan bahsettik. Çeşitli dağıtımlara yönelik, bazı script dosyaları veya programlar hazırlanıyor. Bunları kullanarak, istediğiniz araçları kolayca kurabiliyorsunuz. Bizim bahsedeceğimiz örnek Ubuntu dağıtımı üzerindeki Automatix olacak.

Automatix

1. Konsolu açın ve "sudo gedit /etc/apt/sources.list" yazın. Size root şifresi sorulacaktır. Değişiklik yapmadığınız takdirde, kullanıcı şifrenizle aynıdır. (Elbette Debian tabanlı dağıtımlar için bu geçerli; farklı bir dağıtımda, root tamamen ayrı bir kullanıcı olarak ele alınabilir.)

2. Karşınıza çıkacak dosyanın sonuna, aşağıdaki satırı ekleyin ve dosyayı kaydedin.

deb http://www.getautomatix.com/apt dapper main

3. Aşağıda ki komutları konsolda sırayla yazın:

wget http://www.getautomatix.com/apt/key.gpg.asc
gpg --import key.gpg.asc
gpg --export --armor 521A9C7C | sudo apt-key add -d

4.Son olarak aşağıdaki komutları girip, Automatix yüklemesini bitirin:

sudo apt-get update
sudo apt-get install automatix

Artık bilgisayarınıza Automatix yüklendi; aşağıdaki resimde görüldüğü gibi Automatix kısayoluna tıklayın. Kısayola tıkladığınızda, Automatix programı çalışacak ve karşılama ekranları açılacaktır.

 

Karşılama ekranlarından sonra, programı çalıştırmaya devam etmek için root şifresini giriyoruz. Root şifresini doğru girince, Automatix kendi depolarını tarayıp, yüklemek için bir sürü program sunuyor. Bunlar içinde multimedia paketlerinden, yazılım geliştirme araçlarına kadar geniş bir skalada program bulabilirsiniz.

 

Yüklenecek araçların seçimini, yukarda gördüğünüz ekrandan yapıyorsunuz. Ev kullanıcılarından, yazılım geliştiricilerine kadar geniş bir yelpazede birçok program bulunuyor. O nedenle her şeyi işaretlemenize gerek yok. İlk önce video, müzik ve dosya paylaşım programlarını işaretleyerek bir başlangıç yapabilirsiniz. Yüklenecek programları belirledikten sonra OK'e basarak devam ediyoruz.

Bu aşamada programlarınız indirilecek ve kurulacaktır. Seçtiğiniz programların adedi ve boyutuna göre biraz sabırlı olmak gerekiyor. İşlem tamamlandıktan sonra aşağıdaki gibi bir uyarı mesajı çıkacaktır:

 

Bu mesaja Cancel derseniz, Automatix sistemde önceden tamamlanmış paket depolarını değiştirecektir. Bu mesaja OK demeniz daha uygun olacaktır. Böylece sisteminizdeki ayarlarınız değişmez.

Automatix işleri kolaylaştıran bir yazılım. Sorunsuz, sıkıntısız, müdahaleye gerek kalmadan, istediğiniz bütün araçları yükleyebiliyorsunuz. Sadece 1-2 saatte, kısıtlı Linux bilgisine rağmen, bilgisayarınızı multimedia merkezine dönüştürebilirsiniz. Ubuntu kullanan kişiler mutlaka denemeli. Bunun dışında EasyUbuntu isimli benzer bir programı da tavsiye ederim. EasyUbuntu'nun kullanımı, Automatix'ten bile daha kolay! Ama sunduğu yazılımların daha az olması nedeniyle, anlatım tercihimi Automatix'ten yana kullandım. Yazılım geliştirme araçları sizi çok fazla ilgilendirmiyorsa, ya da Automatix'in içerdiği benzer tonla programa ilgi duymuyorsanız, EasyUbuntu daha iyi bir tercih olabilir. Peki ya Ubuntu kullanmayanlar?

Birçok popüler dağıtımın, mp3, DivX vb. format desteklerine kavuşmasını manuel olarak sağlayabilirsiniz. Fakat Ubuntu dışındaki dağıtımlar için, Automatix'e alternatif olacak basit bir araç bulamadım. Buna rağmen, çözümsüz değilsiniz; klik isimli projeyle birçok programı yüklemeniz yine mümkün. Ancak bu uzun bir konu ve bunu bir başka yazıya saklıyorum. Yine de unutmayın, dağıtımınız n'olursa olsun, eğer anlatılan konularla ilgili sıkıntınız varsa, bana ulaşabilirsiniz. Belki beraber aşabileceğimiz bir durum vardır.

 
Reklamı Sola Kaydır

Resim Galerisi

Galeri'ye Git

Sosyal Medya'da Biz!

Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol