İçerik Menüsü

17.Doküman

Kurma-Kaldırma-Güncelleme İşlemleri

Konu Etiketleri

güncelleme , apt , apt-cache , apt-get , dpkg , update , upgrade , dist-upgrade , autoclean , autoremove , repo , depo , repository , install , remove , purge , kaynak koddan derleyerek kurulum

Kurma-Kaldırma-Güncelleme İşlemleri

Linux işletim sistemini kullanacaksak mutlaka bilmemiz gerekenler arasında; sistemi güncelleme, program kurma ve kurulu programları kaldırma gibi işlemleri yerine getirmek var. Bu işlemleri nasıl yerine getirebileceğimizi bu konunun devamında öğreneceğiz. Anlatıma ilk olarak sistemi güncelleme işlemi ile başlayalım.

Sistemi Güncelleme

Linux sistemleri, kullanıcının ihtiyacı olduğunda, programa kolayca ulaşabilmesini sağlayacak program paketlerini içinde bulunduran kendi paket depolarına(repository)* sahiptirler. Farklı Linux dağıtımları için bu paketler de farklılık gösterebiliyor. Bu yüzden farklı Linux dağıtımlarının da kendi paketleri üzerinde işlem yapabilmek için farklı komutları vardır.

Dağıtımlar ve kullanılan paketlere göre komutları aşağıdaki tabloda verilmiştir.

Dağıtım Paketler Komutlar
Debian .debapt , apt-cache , apt-get , dpkg
Ubuntu .debapt , apt-cache , apt-get , dpkg
CentOs .rpmyum
Fedora .rpmdnf
FreeBSD .txzmake , pkg

Debian paketlerinin .deb uzantılı olduğunu yukarıdaki tabloda gördük. Kullandığımız dağıtım olan Kali'de Debian tabanlı olduğu için anlatıma bu doğrultuda devam edeceğiz.

Anlatıma güncelleme işleminde kullanılan komutlarımızı tanıyarak devam edelim.

apt-get update

Komutu sources.list dosyasına eklemiş olduğumuz repolara bakarak paket listelerini kontrol edip paketlerin son sürümleri ve bağımlılıkları hakkında bilgi almak için bunları "günceller". Yani bu komutumuz; güncelleme işleminden önce, nelerin güncellenmesi gerektiğine bakarak sistemimizdeki sürümünden yüksek sürümleri bulunan yani güncellenmesi gereken doğru paketlerin güncellenmesini sağlıyor. Kısaca bu komutumuzun amacı sadece depolarda yer alan yenilikleri kontrol etmektir.


apt-get upgrade

Komutu da apt-get update komutunun depolardan kontrol edip bildirmiş olduğu güncellenmesi gereken paketleri en son versiyonlarına günceller.


apt-get dist-upgrade

Komutu ise apt-get upgrade komutundan farklı olarak sadece güncelleme yapmakla kalmaz, sistemimizdeki gereksiz paketleri de siler.


apt-get clean

Komutuyla, kurmak üzere indirmiş olduğumuz paketlerin hepsini silebiliyoruz. Depodan indirmiş olduğumuz tüm paketler ve uygulamanın çalışması için gereken bağımlılıklar .deb uzantısı ile arşivlenerek /var /cache /apt /archives dizini içerisinde daha sonra tekrar kullanılma ihtimaline karşı tutuluyorlar. İşte bizler de apt-get clean komutu yardımıyla eğer internet bağlantımızda sorun yoksa yani bu paketleri tekrar indirirken sorun yaşamayacaksak bu paketleri silerek sistemimizde yer işgal etmelerini önlemiş oluyoruz.


apt-get autoclean

Komutu da apt-get clean komutuyla benzer şekilde arşivlenmiş paketleri silme işlemini yapar. Fakat burada silinen arşivler bütün arşiv paketleri değil sadece eski sürüm olup artık kullanımda olmayan ve depolardan kaldırılmış paketlerdir.


apt-get autoremove

Komutu ise silmiş olduğumuz uygulamadan geriye kalan ve artık ihtiyaç duyulmayan bağımlılıkları kaldırmamızı sağlıyor.


-y

-y parametresinin göreviyse; çıkacak olan onay sorularına evet(yes) cevabını otomatik olarak vermektir. Bu sayede gerekli işlemler bizden onay beklemeden otomatik olarak zaman kaybedilmeden yapılmış olur.

Yani bir bütün olarak eğer sistemimizi güncellemek istersek ilk başta /etc/apt/sources.list konumunda yer alan sources.list dosyasına kullandığımız versiyona uygun depoları ekliyoruz.

Bunun için buradaki kaynaktan kullandığınız versiyona uygun olan repository kaynağını kopyalayarak sources.list dosyasına eklemeniz gerekiyor. Ben Kali 2016.1 sonrası (bu anlatımda kullandığım versiyon 2017.3) versiyonunu kullandığım için aşağıdaki repoları(repository) sources.list dosyasına ekliyorum.

deb http://http.kali.org/kali kali-rolling main contrib non-free

Ancak dediğim gibi sizler kullandığınız versiyona uygun olan repoları seçmelisiniz.

Kali 1.0 ve sonrası için: deb http://old.kali.org/kali moto main non-free contrib

Kali 2.0 ve sonrası için: deb http://old.kali.org/kali sana main non-free contrib

Kali 2016.1 ve sonrası için: deb http://http.kali.org/kali kali-rolling main contrib non-free

Repoları, leafpad /etc/apt/sources.list komutu ile açarak sources.list dosyasına ekledim.

Gerekli depo kaynağını ekledikten sonra sıra geldi güncelleme işlemine, bunun için ilk olarak paket bilgilerini güncellemek üzere apt-get update , daha sonra güncel paket bilgileri alınan uygulamaları güncellemek için de apt-get upgrade -y komutunu verelim. Ayrıca bu komutları apt-get update && apt-get upgrade -y şeklinde birleşik olarak da kullanabiliriz. Özellikle sistemimizi kurulum sonrası ilk defa güncellediğimizde bu güncelleme işlemi internetimizin de hızına bağlı olarak oldukça uzun sürebiliyor. Bunun dışında zaten üst kısımlarda hangi komutun hangi işlevde olduğunu öğrendiğimiz için tek tek kullanımlarına örnek vermiyorum sizler yerine göre ilgili komutları kullanabilirsiniz.

Güncelleme işlemi boyunca, kullandığımız -y parametresi sayesinde herhangi bir soru sorulmadan bütün işlemler otomatik olarak gerçekleşecek ve güncelleme işlemi hızlı bir biçimde tamamlanacaktır.

Program Kurmak

Linux'ta program kurmak için birden fazla yöntem bulunuyor. Bunlardan bir tanesi kullandığımız dağıtıma uygun programı, paket yönetim sistemi ile kurmaktır. Diğer bir yol, programı kaynak koddan derleyerek kurmaktır. Diğer seçenek ise dağıtımın kullandığı depolardan(repository) otomatik kurulum yapmaktır.

Depodan Kurulum

Depoda bulunan programların kurulumlarını yaparken apt-get install program_adı komut bütünü kullanılıyor. Unutmayın depodan(repository) kurulum yaparken sisteminizin güncel olması önemlidir. Şayet sisteminizi güncel tutmuyorsanız yani repolarınız güncel değilse depodan program yükleme çabalarınız hüsranla sonuçlanabilir.

Ancak programın yüklenmeme sebebi bir tek güncelleme işlemi ile ilgili değil. Şayet yüklemek istediğimiz program depolarda yer almıyorsa depodan yükleme işlemimiz de haliyle başarısız olacaktır.

Bu yüzden öncelikle kurmak istediğimiz program depolarda yer alıyor mu ona bakalım. Ben örnek olması açısından depolarda filezilla aracını araştırıyorum eğer depolarda varsa kurulum yapabiliriz. Depoları kontrol etmek üzere konsola apt-cache search filezilla şeklinde komutumu vererek filezilla aracını depolarda var mı diye kontrol ediyorum.

Ve gördüğünüz gibi filezilla aracı depolarda mevcutmuş. Sizler de bu şekilde depolarda yer alan programları apt-cache search program_adı şeklinde aratarak sorgulayabilirsiniz.

Örnek olması açısından filezilla isimli bir programın depodan kurulumunu yapmak için konsola apt-get install filezilla komutunu girdim.

Ve program kurulmuş oldu. Konsola filezilla yazarak da bu durumu teyit ettim.

Şayet kurduğunuz programı kaldırmanız(silmeniz) gerekirse konsola apt-get remove program_adı şeklinde girdiğinizde ilgili program otomatik olarak sistemden kaldırılacaktır.

Sadece programı kaldırmakla yetinmeyip bir de programın yapılandırma dosyalarını da sistemden kaldırmak isteyebilirsiniz. Yapılandırma dosyaları ile birlikte programı kaldırmak için komutu;

apt-get --purge remove program_adı

veya

apt-get purge program_adı

şeklinde kullanabilirsiniz.

Bu sayede program yapılandırma dosyaları ile birlikte tamamen silinmiş oluyor.

İşte sizler de bu şekilde depolarda yer alan programları oldukça kolay şekilde kurup kaldırabilirsiniz.

Paket Yönetim Sistemi İle Kurulum

Bu işlem için kullandığımız dağıtıma uygun derleyiciyi kullanmalıyız. Daha önce Kali'nin .deb uzantılı paketleme sistemi olduğunu öğrenmiştik. Bu yüzden biz .deb uzantılı kurulum paketlerini açmak için dpkg komutunu kullanıyoruz. Sanırım kodun kısaltmasının nereden geldiğini bilirsek daha kolay akılda kalabilir. Kodun kısaltması "debian package(debian paketi)" kısaltmasından gelmektedir. Ayrıca dpkg komutunu kullanmadan yardımcı bir paket yöneticisi programı(synaptic) kullanarak da kurulum işlemlerini yerine getirebiliriz. Konumuza ilk olarak dpkg komutu ve kullanımı ile devam edelim.

Örnek olması açısından ben "master pdf" adında bir programın kurulumunu ele aldım. Bunun için öncelikle programın .deb uzantılı dosyasını programın kendi sitesinden indirdim.

Şimdi programı kurmak için dpkg -i paket_adı.deb şeklinde komutumu giriyorum.

Ve programım kurulmuş oldu.

Kurduğumuz programı kaldırmak istersek komutumuzu dpkg -r program_adı şeklinde yani -r parametresini ekleyerek kullanıyoruz.

Program otomatik olarak kaldırılmış oldu. Ancak /etc dizini altındaki konfigürasyon dosyaları silinmedi. Eğer bu dosyaları da kaldırmak istersek -P parametresini kullanabiliriz.

Bu sayede programa ait konfigürasyon dosyaları da tamamen kaldırılmış oldu.

Konfigürasyondan bahsetmişken aklınızda bulunsun eğer yüklediğimiz paketin konfigürasyon ayarlarını tekrar yapılandırmamız gerekirse dpkg-reconfigure paket_adı şeklinde komutumuzu kullanabiliriz.

Kurulu olan tüm paketler hakkında bilgi almak için -l parametresi kullanılabilir.(Çıktı uzun olduğundan kısa kesilmiştir.)

Çıktıda yer alan paketlerin sol tarafındaki ifadelerin anlamı:

ii : paket normal olarak sisteme yüklendi.

rc : paket yüklendikten sonra silindi ancak konfigürasyon dosyaları halen mevcut.

pn : paket konfigürasyon dosyaları ile birlikte sistemden kaldırıldı.

Kurulu paketin durumunu öğrenmek için -s parametresini kullanabiliriz. Ben örnek olması açısında leafpad programı hakkında bilgi almak için komut satırına dpkg -s leafpad komutunu giriyorum.

Kurulu paketin içeriğini öğrenmek istersek -L parametresini kullanırız.

Eğer indirmiş olduğumuz .deb uzantılı dosyanın içeriğini henüz kurmadan görmek istersek -c parametresini kullanabiliriz.

Sistemde kurulmuş ve kaldırılmış tüm paketleri görmek istersek dpkg --get-selections komutunu kullanabiliriz.

Bu paket listesini daha sonra kullanmak üzere bir dosya içerisine yedeklemek istersek komutumuzu dpkg --get-selections >dosya_adı.txt şeklinde kullanmamız yeterli olacaktır.

Yedeklediğimiz bu program listeleri sayesinde başka bir sisteme aynı paketleri tek seferde yüklememiz mümkün. Bunun için komutlar aşağıdaki şekildedir.

dpkg --set-selections > yedek_dosya_adı.txt

Daha sonra tanıma işlemi bittikten sonra eksik olanların yüklenmesi için konsola aşağıdaki komutu giriyoruz.

apt-get deselect-upgrade

Ayrıca bu işlemin uzun süreceğini unutmayın. Yani çok fazla spesifik programlarınız yoksa, bu yöntemi kullanmanızı tavsiye etmem. Bunun yerine kendiniz de pekâla elle kurulumları gerçekleştirebilirsiniz.

Şimdi sıra geldi ikinci yol olan yardımcı paket yöneticisi programı aracılığı ile program kurma-kaldırma-güncelleme işlemlerini yapmaya. Bunun için ilk olarak paket yönetim programı olan synaptic programını kurmamız gerek. Komut satırına apt-get install synaptic yazarak yardımcı programı depolardan indiriyoruz.

Evet "y" diyerek kuruluma onay veriyoruz ve programımız kurulmuş oluyor. Programı açmak için komut satırına synaptic komutunu vermemiz yeterli. Bu program(synaptic) sayesinde depolarda yer alan programları çok kolay şekilde kurup kaldırabilir ve programlar için diğer gerekli işlemleri yerine getirebiliriz. Programın kullanımı oldukça kolay olduğundan keşfini sizlere bırakarak anlatıma devam ediyorum.

Kaynak Koddan Derleyerek Kurulum

Linux'a uyumlu sürümü bulunan açık kaynak kodlu yazılımların kaynak kod paketleri bu yazılımların internet sitelerinde, genellikle tar.gz biçiminde arşivlenmiş olarak indirilmeye sunulurlar. Bu arşivlenmiş olan kaynak kod paketi daha önce gördüğümüz .deb uzantılı paketlerin aksine ham şekilde yani derlenmemiş (kuruluma hazır olmayan) şekilde gelirler. Bu derleme işlemini bizim yaparak kurulumu gerçekleştirmemiz gerekir. Ancak her kurulum aynı olmayabilir. tar.gz veya tar.bz2 benzeri uzantılı paketlerde genellikle programın nasıl kurulacağına dair "install", "readme", "configure" ve benzeri isimlerde yönergeler bulunur. Bu dosyalar okunarak yükleme işlemi gerçekleştirilmelidir. Çünkü her programın gereksinimleri birbirinden farklıdır, yani kurulum için geliştirici ekibin verdiği kurulum yönergesini takip etmek en doğru tercih olacaktır. Ancak biz şimdi burada genel kurulum hakkında bilgi edinelim. Kaynak koddan derleyerek kurulum işleme genel olarak aşağıdaki şekildedir:

İndirdiğimiz program arşivini klasöre çıkartırız.

Ve arşiv içeriğini çıkarmış olduğumuz klasörden komut satırımızı çalıştırırız. İlgili konumda olduğumuzdan emin olduktan sonra;

Programı derlemeden önce gerekli kütüphaneler ve bağımlılıkları kontrol etmek için aşağıdaki komutu kullanırız.

./configure

Bu işlemin sonunda eksik paketler ve bağımlılıklar çıkarsa bunları tek tek kurmamız gerekecek.

Eğer bu aşamada;

bash: ./configure: Böyle bir dosya ya da dizin yok

gibi bir hata çıktısı alıyorsanız:

O program configure dosyası içermiyordur yani o program için ./configure aşamasına gerek yoktur. Böyle bir durumla karşılaştığınızda bu aşamayı atlayarak direk make aşamasına geçin. Ancak configure dosyası varsa mutlaka ./configure diyerek programın ihtiyacı olan bağımlılıkları kontrol edip eksik olanları yükleyin. Aksi halde program kurulum işlemi başarısız olacaktır. Şimdi devam edelim.

Gerekli kütüphaneler ve bağımlılıkları kontrol edip varsa eksik olanların kurulumlarını yaptıktan sonra, make aşaması için derleme yapacak paketleri apt-get install build-essential komutu ile kuruyoruz.

Daha sonra make diyerek programımızı derlemiş oluyoruz.

Son olarak make install komutu ile programı sistemimize kuruyoruz.

Silme işlemleri için de programa göre farklı durumlar ve dosyalar oluşabildiği için; kurulum yaparken olduğu gibi silme işlemi için de aynı şekilde programla birlikte gelen yönergeleri okumanız en doğru silme yönetimini size gösterecektir.

Alıştırmalar Hakkında

Öğrendiğiniz bilgilerin kalıcı olması için mutlaka bolca alıştırma yapmalısınız.Burada belirtilen alıştırmalar dışında da kendi kendinize özellikle de zorlandığınız konularda bol bol alıştırmalar yapın. Aksi halde öğrendiğiniz bilgiler kısa sürede unutulup gidecektir. Yani gerçekten öğrenmek istiyorsanız lütfen öğrendiğinizi hissede kadar alıştırmalar yapın.

figlet isimli aracın depolarda olup olmadığını kontrol edin.

Depolan figlet isimli aracı kurun.

Kurmuş olduğunuz figlet isimli aracı konsoldan kaldırın(silin).

Paket yönetim sistemini kullanarak .deb uzantılı bir kurulum paketini kurun.

Paket yönetim sistemi ile kurduğunuz programı kaldırın.

Sistem kurulu olan tüm paketleri konsoldan listeleyin.

Geri Bildirimde Bulunun

Sizlere daha verimli bir kaynak sunabilmemiz için, uygulamada veya dokümantasyonlarda yer alan tüm hata ve eksiklerimizi bize bildirebilirsiniz.