Paket İşlemleri

Linux işletim sistemleri için yazılım, dokümantasyon ve kütüphane gibi bileşenleri kolayca yüklemek, güncellemek ve kaldırmak için çeşitli yollar geliştirmiştir. Bir Linux bilgisayarına program yüklemenin en kolay ve sağlıklı yöntemi paket yöneticisini kullanarak ilgili paketi yüklemektir. Bu kitabın temel aldığı Raspberry Pi işletim sistemi olan Raspberry Pi OS Linux bir Debian türevidir ve paket yöneticisi olarak APT (Advanced Packaging Tool) adındaki aracı kullanır. APT ile yeni paketler yüklenebilir (install), mevcut paketler silinebilir (remove) veya güncellenebilir (update). Hatta tüm işletim sistemi de tek bir komutla güncellenebilir (distro-update).

Raspberry Pi OS paket yöneticisi APT

Paketler depo (REPOsitory) adı verilen sunucularda barındırılır ve apt aracı ilgili paketleri birçok depodan temin edebilir. APT paket yöneticisi paketleri yüklerken veya güncellerken hangi paket depolarının kullanılacağını /etc/apt/sources.list dosyasından öğrenir. sources.list  dosyasında paketleri bulunduran sunucuların adresleri (URL) yer alır. Dilerseniz bu dosyaya yeni depo adresleri ekleyerek paket yükleme işlemlerini hızlandırabilir veya resmi depo da olmayan paketleri de yükleme avantajına sahip olabilirsiniz. Yalnız resmi olmayan depolardan yükleyeceğiniz yazılımların uyumsuzluk ve güvenlik sorunları içerebileceğine de dikkat edin.

sources.list dosyasının içeriğine baktığınızda Raspberry Pi OS’un resmi depo adresini görebilirsiniz. Dilerseniz bulunduğunuz coğrafi konuma göre yansılardan birini kullanarak paket indirme hızını da artırabilirsiniz. Depo yansıları birbirinin kopyasıdır ve coğrafi olarak daha yakındaki depo sunucuları daha hızlı hizmet verirler. Kendinize daha yakın bir depo bulmak için resmi yansıların bir listesine şu adresten ulaşabilirsiniz:

https://www.raspbian.org/RaspbianMirrors

sources.list dosyasının her satırına bir depo adresi gelecek şekilde depo listenizi zenginleştirebilirsiniz. İkinci satırın başında yer alan # (sharp) karakteri ile etkisiz hale getirilmiş olan deb-src (paketlerin kaynak kodları) satırı, paketlerin kaynak kodlarını da yüklemek ve araştırmak için kullanılır. Yeterince disk alanınız varsa kaynak kodları da Raspberry Pi’a indirebilirsiniz. Yalnız Raspberry Pi’ın sınırlı işlem gücü nedeniyle, kaynak kodların derlemesi sırasında normalden çok daha fazla bekleyeceğinizi unutmayın.

Örneğin Bulgaristan’da bulunan bir depo yansısını, paketleri daha hızlı yüklemek için sources.list dosyasına aşağıdaki gibi ekleyebilirsiniz. Yalnız unutmayın ki paketler öncelikli olarak ilk satırdaki depodan başlanarak yüklenirler.

Paketleri yüklemek

apt aracı Raspberry Pi’a yazılım yükleme işini oldukça kolaylaştıran bir araçtır. Bir paketin kurulumunu apt ile beraber, install seçeneğine paketin adını belirterek kolayca gerçekleştirebilirsiniz. Paket depolardan araştırılacak, indirilecek ve otomatik olarak sisteme kurulumu yapılarak kullanıma hazır hale getirilecektir.

Yukarıdaki komut ile çok güçlü bir metin/konsol tabanlı dosya yöneticisi olan Midnight Commander’ın yüklenmesi gerçekleştirilmiştir. install seçeneğini kullanarak aynı anda birden fazla paketin yüklemesini de gerçekleştirebilirsiniz. Bunun için paket isimlerini aralarına boşluk bırakarak yazmanız yeterlidir. Paketlerin yüklenmesine başlanmadan önce sizden yükleme onayı istenir. Bu onayın otomatik olarak gerçekleşmesini isterseniz de –y seçeneğini kullanabilirsiniz. Grafik masaüstünün mevcut olduğu sisteme Firefox web tarayıcısını ve Filezilla FTP istemcisini kuran aşağıdaki örneği inceleyin:

Bir paketi sisteme kurmak yerine sadece paket dosyasını ilgili depodan indirmek isteyebilirsiniz. Bunun için download seçeneği kullanılır. Paket o anda bulunulan dizine indirilecektir:

Bazı özel durumlarda (en son paketin uyumsuz ya da hatalı olması) paketlerin son sürümü yerine belli sürümlerinin yüklenmesi gerekebilir. Bunun için -t seçeneği kullanılarak paketin sürüm numarasını belirtmek mümkündür:

Bir paketin kaynak kodlarını indirmek için download-only ve source seçenekleri kullanılabilir. Bir pakete ait kaynak kodların indirilebilmesi için sources.list dosyasında bir kaynak kod depo adresinin de tanımlı olması gerekir. Bunun için /etc/apt/sources.list dosyasını nano metin editörü ile açarak aşağıdakine benzer şekilde deb-src kaynağının tanımlamasını gerçekleştirin (ilgili satırın başındaki # karakterini silmeniz yeterli  olacaktır) ve apt update komutu ile paket önbelleğini güncelleyin:

Yukarıdaki örekte mc (Midnight Commander) adlı metin tabanlı dosya gezginine ait paketin kaynak kodları, o anda (komutu yazdığınız sırada) bulunduğunuz dizine indirilecektir.

/etc/apt/sources.list dosyası apt update komutu uygulandığında paket listesinin hangi depo ya da depolardan çekileceğini tanımlamak için kullanılır. Örneğin update komutu verildiğinde Raspberry Pi OS http://mirrordirector.raspbian.org/raspbian/ adresli depoya bağlanarak (depo adresi sources.list içinde tanımlıdır) depodaki paketler hakkındaki meta verileri indirir ve önbelleğine kaydeder (apt cache). sources.list dosyasına Raspbian’ın dışında resmi olmayan özel depo adresleri de tanımlanabilir. Yani, Raspbian’ın birden fazla depo içinde arama yapması ve paket yüklemesi mümkün hale gelir. Yalnızca eklediğiniz depoların güvenilir ve bilinen depolar olduğuna emin olun. Aksi takdirde sisteminizin kararlılığı bozulabilir ya da sisteminize kötücül yazılım bulaşabilir. Eğer sources.list dosyasında birden fazla depo adresi tanımlıysa bunların öncelik seviyesini apt-cache aracına policy seçeneğini vererek görebilirsiniz. Benzer olarak bir paketin öncelikli olarak hangi depodan indirileceğini ya da güncelleneceğini de görebilirsiniz. Bunun için paket adını belirtmeniz yeterlidir.

Sistemde yüklü tüm paketleri görmek için dpkg aracından faydalanılabilir. get-selections seçeneği sistemde yüklü paketleri listeler [1]:

aptitude paket yöneticisi

Komut satırında, paket işlemlerini gerçekleştirmek için menü tabanlı bir program olan aptitude kullanılabilir. aptitude sahip olduğu kategorik menü sistemi ile yüklü olan ve yüklenebilecek paketleri listeler. Bir paketi ve bağımlı olduğu paketleri yükleyebileceğiniz gibi yüklü olan paketleri de kaldırabilirsiniz.

aptitude paket yöneticisi

Paketleri güncellemek

Hali hazırda sistemde yüklü olan bir paketi güncellemek için –u seçeneğinden faydalanılır. Bu komut eğer paket sistemde yoksa yükler. Eğer paket sistemde yüklü ise sadece güncellemesini uygular. Aşağıdaki komut eğer apache2 sistemde varsa güncellenmesini sağlar, yok ise kurulumunu yapar.

Sistemde yüklü mevcut paketlerin sadece güncellemesini (yükleme yapmadan) gerçekleştirmek için only-upgrade seçeneğinden faydalanılabilir. Aşağıdaki komut apache2 sistemde kurulu ise güncellenmesini sağlar.

Sistemdeki tüm paketleri tek seferde güncellemek için full-upgrade seçeneğinden faydalanılır:

Güncelleme işlemini gerçekleştirmeden sadece güncellemesi hazır paketleri ve sürümlerini görüntülemek için aşağıdaki komut çalıştırılabilir:

Paketleri sistemden kaldırmak

Sistemde yüklü olan bir paketi silmek için iki alternatif komut vardır. Bunlardan ilki paketin kendisini silerken, purge seçeneği ise paket ile gelen kullanıcının düzenlemesine tabi olan yapılandırma (.conf) dosyalarını da sistemden kaldırır.

Yapılandırma dosyalarına sahip programların paketleri eğer purge seçeneği kullanılmadan kaldırılırsa[2] sistemde kalmaya devam ederler. Ancak purge komutu kullanıcının ev dizininde kayıtlı yapılandırma dosyalarına dokunmaz.

remove komutunu install komutu ile yüklediğiniz tüm paketler için kullanabilirsiniz. Bu ikisi kardeş komutlardır.

Sisteme bir paket kurduğunuzda paketin ihtiyacı olan diğer paketler de (bağımlılıklar) yüklenir. Fakat paketi kaldırdığınızda bu bağımlılıklar sistemden kaldırılmayabilir. Artık ihtiyaç olmayan bağlı paketleri de kaldırmak için autoremove seçeneğinden faydalanabilirsiniz:

Sisteme bir paket yüklenirken, apt ilgili paketin .deb uzantılı dosyasını depodan indirerek kurulum işlemini başlatır. Bu işlemin sonucunda kurulum dosyası olan .deb sistemde bulunmaya devam eder. Gereksiz olan ve disk alanı işgal eden bu dosyaları diskten silmek için aşağıdaki komutu kullanın:

Paketleri listelemek ve araştırmak

apt-cache (apt-önbelleği) aracı apt’in kullandığı depolarda yer alan paketlerin detaylı bir listesini tutar. Bu detayın içinde paketin adı, açıklaması, bağımlı olduğu diğer paketler, paketin içindeki dosyaların adları vb. bilgiler yer alır. Örneğin tam adını bilmediğiniz bir paketi bulmak için apt-cache (apt önbelleği) birçok yol sunar. Paket listesini güncelledikten sonra apt-cache ile paket araştırması yapabilirsiniz.

Paket listesinin güncellenmesi işlemi, daha önce sources.list dosyasında adı geçen depo adreslerinin taranarak, tüm paketler hakkındaki bilgilerin yerel paket veri tabanına kaydedilmesi işlemidir. Böylece bir paket yüklenmek istendiğinde en güncel sürümü veya sistemde bağımlı olduğu diğer paketler ile en iyi sürüm uyumu temin edilebilir. Paket veri tabanları güncellenirken apt aracı sources.list dosyasından depoların adreslerini öğrenir ve depolara bağlanarak kendi dağıtımına uygun (örneğin jessie) tüm paketlerin bir listesini kendine kopyalar. Paket veri tabanını güncellemek için ap-get update komutu kullanılır:

apt-cache ile apache2 adındaki paketin var olup olmadığını sorgulamak için aşağıdaki komutu kullanabilirsiniz:

Yukarıdaki komut tam adı apache2 olan paketi bulmaya çalışır. İsminde apache2 geçen paketleri görmek isterseniz aşağıdaki gibi kullanmalısınız:

search komutu yalnızca paket adına göre arama yapmaz. Bazen paketlerin içerisinde birden fazla araç bulunabilir. Bu araçlar için de arama yapar. Örneğin kitabın farklı bölümlerde değinilen ve S.M.A.R.T destekli diskleri araştırmak ve sınamak için kullanılan smartctl aracının kendine ait bir paketi yoktur. Bu araç smartmontools paketi içinde gelir. Aşağıdaki search çıktısından aracın hangi paketler içinde bulunduğu görülebilir.

Paket hakkında temel bilgileri listeletmek için show seçeneğine paketin adını verin:

Yukarıdaki detaylardan, paketin bağımlı olduğu (depends) diğer paketler, uyumsuz olduğu paketlerin sürüm numarası (conflicts), paketin kurulumu sırasında hangi kütüphanelerin güncelleneceği (replaces), geliştiricinin web sitesi (homepage) gibi zaman zaman kıymetli olabilecek bilgiler yer alır.

Paket hakkında detaylı bilgileri listelemek için showpkg seçeneğine paketin adını verin:

Paketin bağımlı olduğu diğer paketleri görmek için depends seçeneği kullanılabilir:

Paket önbelleği hakkında istatistikleri görmek için stats seçeneğini kullanabilirsiniz. Komutun ekran çıktısında paket veri tabanındaki toplam paket sayısını total package names alanında görebilirsiniz. Bu sayı eklenen yeni paketlerle her geçen gün artmaktadır:

Grafik ortamda paket işlemleri

Eğer grafik masaüstünü kurmuş ya da etkinleştirmişseniz ihtiyacınız olan paketleri görsel paket yöneticisi ile kurabilir, güncelleyebilir ya da kaldırabilirsiniz. Bunun için Raspberry Pi OS menüsü altındaki Preferences->Add / Remove Software seçeneğine tıklatın. Aşağıdaki gibi bir ekran görüntüsüne sahip paket yükleme yardımcısı açılacaktır.

Paket yöneticisi grafik arayüzünün ekran görüntüsü

Yükleyebileceğiniz paketler Admin tools, Games, Network, System ve Programming gibi türlere ayrılmıştır. Dilerseniz uygun bir kategoriye tıklatarak yüklenebilecek paketleri görebilir, dilerseniz de arama kutusu ile aratabilirsiniz. Arayüzü kullanarak paket yüklemeye başlamadan önce; Options menüsündeki “Refresh Package Lists…” seçeneğine tıklatarak paket listelerini güncelleyin. Paketleri yüklemek için kullanılacak depoları ise “Package Sources…” seçeneğinden görüntüleyebilir ve seçebilirsiniz. Options menü seçeneği altındaki “Check for Updates…” seçeneği sistemde hâlihazırda yüklü paketlerin güncellenmesi için kullanılır. Bunun için Package Updater penceresinin altındaki “Install Updates” butonuna tıklatmanız yeterlidir.

Bir paketi yüklemek istediğiniz de paket adının solundaki işaret kutusunu işaretleyin ve Apply düğmesine tıklatın. Paketin adı seçili olduğunda paket boyutu, lisans türü ve paketin açıklaması arayüzün altında görüntülenir. Paketi kaldırmak için ise paketin işaretini kaldırarak Apply düğmesine tıklatın. Paketin bağımlı olduğu ve ihtiyaç duyduğu diğer paketleri görmek için paket ismine sağ tıklatarak sırasıyla “Dependent Packages” veya “Required Packages” seçeneklerini kullanabilirsiniz.


[1]dpkg –get-selections komut çıktısında karşısında install yazan paketler sistemde hâlihazırda kurulu olan paketlerdir. deinstall yazanlar ise sistemden kaldırılan fakat hala bazı dosyaları sistemde yüklü olan paketleri gösterir. Bu dosyaları tamamen kaldırmak için apt’e purge seçeneği verilmelidir.

[2]dpkg –get-selections komutu ile kalıntısı olan paketleri görebilirsiniz. deselect etiketli paketler geride kalıntı dosyalar bırakan paketlerdir.

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.