AÖF Soru Bankası

Unix Sistem YönetimiÜnite 5 Özeti

Linux Dağıtımlarında Paket Yönetimi

BİL211U-UNIX SİSTEM YÖNETİMİ

Ünite 5: Linux Dağıtımlarında Paket Yönetimi

Giriş

Paket yöneticisi veya paket yönetim sistemi, bir bilgisayarın işletim sistemi için bilgisayar programlarını tutarlı bir şekilde yükleme, yükseltme, yapılandırma ve kaldırma sürecini otomatikleştiren bir yazılım araçları topluluğudur. Paket yöneticisi, arşiv dosyalarındaki paketler, yazılım dağıtımları ve verilerden beslenmekle birlikte yazılım depoları, ikili yazılım deposu yöneticileri ve uygulama mağazaları ile çalışırlar. Paket yönetimi, bir Linux dağıtımının en ayırt edici özelliklerinden biridir. Büyük projelerin çoğu arasındaki mevcut eğilim, kullanıcıların bir paket seçip fare tıklamasıyla yükleyebilecekleri bir çeşit tıklanabilir arayüz sunmak olsa da (örneğin Debian’da kullanılan Synaptic ya da Pardus’ta kullanılan Pisi gibi), bu tür programlar genellikle paketleri bir Linux sistemine kurmakla ilgili görevleri yöneten düşük seviyeli yardımcı grafik arayüz programlardır. Birçok masaüstü Linux kullanıcısı bu sezgisel tasarımlarıyla kolayca kullanılabilen grafiksel araçlarla yazılım paketleri kurarken çok daha rahat hissetse de komut satırı paket yönetiminin herhangi bir grafik paket yönetim yardımcı programında bulunmayan güç ve hız gibi iki mükemmel özelliği bulunmaktadır. Paketler genellikle yazılımın adı, amacının açıklaması, sürüm numarası, dağıtıcı, sağlama toplamı (checksum) ve yazılımın düzgün çalışması için gerekli bağımlılıkların listesi gibi üst verileri içerir. Kurulumun ardından üst veriler yerel bir paket veri tabanında depolanır. Paket yöneticileri, yazılım uyumsuzluklarını ve eksik ön koşulları önlemek için genelde bir yazılım bağımlılıklarını ve sürüm bilgilerini veri tabanı tutar. Bu sayede manuel kurulum ve güncelleme ihtiyacı ortadan kaldırılmaktadır. Bu, özellikle Linux ve diğer Unix tabanlı işletim sistemleri için önemli yararlar sağlamaktadır. Yazılım paketleri yüzlerce hatta on binlerce farklı alt yazılım paketinden oluşurlar. Her dağıtımın kendi paket formatı (üst veri, yapılandırma ve yazılım kombinasyonu) ve yazılımın kurulmasını, güncellenmesini ve kaldırılmasını sağlayan yerleşik bir paket yöneticisi vardır. Her paket yöneticisinin, yazılımı indirme ve yükleme, sistemi koruma, bağımlılıkları yönetme ve yazılımı kaldırma için kendine özgü yöntemleri vardır.

Debian Tabanlı Linux Dağıtımlarında Paket Yönetimi

Debian tabanlı Linux dağıtımlarında sistemlerindeki tüm yazılım paketleri *.deb paketleme formatı ve araçları kullanılarak yönetilir. Debian tabanlı işletim sistemlerinde paket yöneticisi apt ve dpkg’dir. Yazılımı kurmak için apt komutunu kullanırken, kurulacak yazılım paketinin bağlı olduğu diğer paketler de kurulurken dpkg komutu kullanılarak gerçekleştirilen yazılım kurulumlarında yüklenmesi istenen yazılımın bağımlı olduğu diğer paketler dikkate alınmaz. Debian tabanlı sistemlerde yazılım paketlerini yönetmek için görsel veya metin tabanlı kullanıcı arayüze sahip yüksek seviyeli araçlardan komut satırı arayüzünde çalışan düşük seviyeli araçlara kadar çeşitli araçlar bulunmaktadır [5]. Bu paket yazılım yönetim

araçlarının tamamı doğru çalışmak için düşük seviyeli araçlardan destek alırlar. Aptitude ya da synaptic gibi yüksek seviye paket yönetim programları apt’den destek alırken apt’de sistemdeki yazılım paketlerinin yönetiminde dpkg paket yazılım yönetim programından destek almaktadır. apt-get uygulaması, APT adı verilen gelişmiş bir arayüze sahip Debian paketleme sistemi tarafından sağlanmaktadır. apt programı, apt-get ve apt-cache özelliklerini birleştirerek varsayılan olarak, estetik açıdan daha hoş görünen renkli bir çıktı formatı kullanır. Örneğin, apt-get update yerine apt update komutu kullanılabilir. Apt- get, komut dosyalarında veya karmaşık kullanım durumlarında kullanım için hâlâ önerilir veya gerekli olmaktadır. Apt-get sayesinde komut satırı kullanılarak birçok kaynaktan program hızlı bir şekilde indirilip kurulur. dpkg’den farklı olarak apt-get .deb uzantılı dosyaları kurmak için kullanılmaz ve yazılım paketinin doğru adı belirtildiği zaman çalışır. apt-get /etc/apt/sources.list dosyasında belirtilen .deb arşivlerini yükler. apt-get yapılandırılmış kaynaklardaki .deb arşivlerini indirdikten hemen sonra dpkg programını çalıştırır.

Debian

Debian işletim sistemi paket yöneticisi apt ve dpkg’dir. Apt komutu ile kurulan yazılım paketleri yazılımın bağlı olduğu diğer paketlerle birlikte yüklenirken dpkg komutu ile ihtiyaç duyulan diğer bağımlı yazılımlar varsa yüklenmez. İlk olarak kurulumu yapılan sunucuya ssh protokolü ile erişim sağlamak için komut satırı arayüzünden komut çalıştırılır. Sunucuya ilk defa bağlanıyorsak bilinen sunucular (known hosts) arasına eklenmesi için komut satırı arayüzünde onay istenecektir. Onay verildikten sonra Debian Linux işletim sisteminin komut satırı arayüzüne erişim sağlanmış olacaktır. Sisteme giriş yaptıktan sonra işletim sisteminin versiyonunu öğrenmek için lsb_release ya da cat / etc/os-release komutlarından biri çalıştırılabilir. Debian işletim sistemi kendisinden türetilen Ubuntu ya da Pardus varyantlarından farklı olarak kurulum aşamasında özellikle seçilmezse temel sistem paketleri hariç neredeyse hiçbir paket yüklü olmadan kurulmaktadır. Örneğin root yetkisine sahip kullanıcının bazı sistem komutlarını gerçekleştirebilmesi için gerekli olan sudo komutu bile Debian işletim sisteminde yüklü olarak gelmez. Bunun için öncelikle root kullanıcısı olup sonrasında apt install apt install sudo komutu ile sudo yazılım paketi yüklenmelidir.

Ubuntu

Öncelikle kurulumu yapılan Ubuntu işletim sistemine ssh protokolü ile erişim sağlamak için terminaldeki komut çalıştırılır. Sisteme giriş yaptıktan sonra işletim sisteminin versiyonunu öğrenmek için lsb_release ya da cat/etc/os- release komutlarından biri çalıştırılabilir. İşletim sisteminde kullanılacak yazılım deposunun güncellenmesi sudo apt update komutu ile gerçekleştirilirken güncellemesi var olan yazılımların güncellenmesi sudo apt upgrade komutu ile gerçekleştirilir.


Linux Mint

Yazılım paket yönetiminin gerçekleştirileceği Linux Mint işletim sistemine ssh protokolü ile erişim sağlamak için komut satırı arayüzündeki komut çalıştırılır. İşletim sisteminde kullanılacak yazılım deposunun güncellenmesi sudo apt update komutu ile gerçekleştirilirken güncellemesi var olan yazılımların güncellenmesi sudo apt upgrade komutu ile gerçekleştirilir. İşletim sistemi grafik arayüz ile günlük kişisel kullanıma uygun olduğu için varsayılan olarak opensshserver paketinin yüklenmesi kurulum sırasında bir seçenek olarak gelmez. Bunun için sistem kurulduktan sonra konsol ekranında kurulması gerekir. openssh-server ile unzip yazılım paketinin birlikte kurulması için apt install komutu kullanılır.

Kali Linux

Kali Linux grafik arayüz ile yüklenen ve genelde ssh protokolü ile erişime olanak sağlayan openssh server kurulu fakat sistem açılışında başlatılmadan gelen bir Linux dağıtımıdır. Bu yüzden Kali Linux işletim sistemine ssh protokolü ile giriş yapabilmek için kurulum yapıldıktan sonra işletim sistemi içinde systemctl start ssh komutunun çalıştırılarak openssh yazılımının başlatılması gerekmektedir. Dikkat edilirse apt install komutu önünde sudo olmadan çalıştırılmaktadır. Bunun nedeni Kali Linux işletim sistemi kurulurken yalnızca root kullanıcı hesabı oluşturulmaktadır. Kali Linux dışında Rocky, Alma, Fedora ve RedHat Enterprise Linux işletim sistemlerinde de kurulum aşamasında yalnızca root hesabı oluşturulmaktadır. Fakat Kali Linux’tan farklı olarak bu işletim sistemlerine root hesabı ile ssh protokolü üzerinden bağlantı sağlanabilmektedir. Linux işletim sistemlerinde root hesabı ile ssh protokolü üzerinden bağlantı sağlanabilmesi /etc/ssh/sshd_config dosyasındaki PermitRootLogin parametresinin prohibit-password değerinin yes yapılarak systemctl restart ssh komutu ile ssh servisinin yeniden başlatılması gerekmektedir. Fakat güvenlik önlemleri nedeniyle root hesabı ile ssh bağlantısına izin verilmek istenmiyorsa yeni bir kullanıcı oluşturulup bu kullanıcıya süper kullanıcı yetkisi verilebilir. sudo adduser kaliuser komutu ile işletim sisteminde kaliuser adında bir kullanıcı oluşturulmaktadır. Kullanıcı oluşturma aşamasında parola bilgisi zorunlu olup 2 kere girilmesi gerekirken kullanıcının tam adı, oda numarası, iş telefonu gibi zorunlu olmayan bilgiler de girilebilmektedir.

Pardus

Yazılım paket yönetiminin gerçekleştirileceği Pardus işletim sistemine ssh protokolü ile erişim sağlamak için terminaldeki komut çalıştırılır. İşletim sisteminde kullanılacak yazılım deposunun güncellenmesi sudo apt update komutu ile gerçekleştirilirken güncellemesi var olan yazılımların güncellenmesi sudo apt upgrade komutu ile gerçekleştirilir.

RedHat Tabanlı Linux Dağıtımlarında Paket Yönetimi

RPM (RPM Paket Yöneticisi) ve YUM/DNF (Yellow Dog Updater, Modified/Dandified YUM), Red Hat tabanlı dağıtımlar tarafından kullanılan paket yönetim araçlarıdır. RPM’nin paket bağımlılığını kontrol etmeme sorunu yum/dnf araçları ile çözülmektedir. Bu bağlamda rpm’i Debian sistemlerinde dpkg’ye ve yum ve dnf’i ise apt yazılım yönetim aracına benzetebiliriz. Red Hat Paket Yöneticisi (RPM) Genel Kamu Lisansı (GKL) altında oluşturulan standart açık kaynaklı paket yönetim aracıdır. Fedora, RHEL ve CentOS dahil olmak üzere Red Hat tabanlı tüm Linux çeşitleri için paket yönetim sisteminde RPM kullanılmaktadır. Paketleri kurmak, güncellemek, silmek, sorgulamak ve doğrulamak gibi paket yönetim işlemleri RPM paket yönetim yazılımı tarafından gerçekleştirilebilmektedir. Paket bağımlılığının tespit edilemediği durumlarda rpm’nin paketi yükleme girişimi başarısız olur. Yazılım paketinin başarılı bir şekilde yüklenebilmesi için kullanıcının bu paket bağımlılığına karşılık gelen bileşenleri de yüklemesi gerekmektedir. Ayrıca kullanıcı rpm komutlarını kullanırken RPM dosyasının konumunu belirtmelidir. DNF (Dandified yum), paketleri yükleyen, güncelleyen ve kaldıran RPM tabanlı Linux dağıtımları için bir yazılım paketi yöneticisidir. Geleneksel yum paket yöneticisinin yeni nesil versiyonu olduğu için yum’da bulunandan daha gelişmiş özelliklere sahiptir. DNF ve yum arasında özellikler açısından farklılıklar aşağıdaki gibidir:

• Modern bağımlılık çözme teknolojisi tabanlı bağımlılık hesaplama • Optimize edilmiş hafızaya duyarlı işlemler • Python 2 ve Python 3’te çalışabilmes ve • Python API’leri için tam bir dökümantasyonu bulunma

Red Hat Enterprise Linux

Yazılım yüklenip kaldırılacak sunucuya ssh protokolü ile erişim sağlamak için terminaldeki komut çalıştırılır. İşletim sisteminin versiyonunu öğrenmek için cat /etc/redhat- release komutu çalıştırılabilir. İşletim sisteminde kullanılacak yazılım deposunun güncellenmesi dnf check- update ile gerçekleştirilirken güncellemesi var olan yazılımların güncellenmesi dnf update ile gerçekleştirilir.

CentOS

Yazılım paket yönetiminin gerçekleştirileceği Centos işletim sistemine ssh protokolü ile erişim sağlamak için komut satırı arayüzündeki komut çalıştırılır. cat /etc/redhat- release ya da cat /etc/os-release komutlarından biri kullanılarak işletim sisteminin versiyonu öğrenilebilir. İşletim sisteminde kullanılacak yazılım deposunun güncellenmesi sudo yum check-update ile gerçekleştirilirken güncellemesi var olan yazılımların güncellenmesi sudo yum update ile gerçekleştirilir.


Fedora

Öncelikle kurulumu yapılan Fedora işletim sistemine ssh protokolü ile erişim sağlamak için terminaldeki komut çalıştırılır. İşletim sisteminin versiyonunu öğrenmek için cat /etc/redhat-release ya da cat /etc/osrelease komutlarından biri kullanılabilir. İşletim sisteminde kullanılacak yazılım deposunun güncellenmesi dnf check- update ile gerçekleştirilirken güncellemesi var olan yazılımların güncellenmesi dnf update ile gerçekleştirilir. Fedora 36 Linux işletim sisteminde dnf ile birlikte yum komutu da paket yönetimi için kullanılabilmektedir.

AlmaLinux

Yazılım yüklenip kaldırılacak sunucuya ssh protokolü ile erişim sağlamak için terminaldeki komut çalıştırılır. İşletim sisteminin versiyonunu öğrenmek için cat /etc/redhat- release ya da cat /etc/osrelease komutlarından biri kullanılabilir. İşletim sisteminde kullanılacak yazılım deposunun güncellenmesi dnf check-update ile gerçekleştirilirken güncellemesi var olan yazılımların güncellenmesi dnf update ile gerçekleştirilir.

Rocky Linux

Yazılım paket yönetiminin gerçekleştirileceği Rocky Linux işletim sistemine ssh protokolü ile erişim sağlamak için terminaldeki komut çalıştırılır. cat /etc/redhat-release ya da cat /etc/os-release komutlarından biri komutu kullanılarak işletim sisteminin versiyonu öğrenilebilir. İşletim sisteminde kullanılacak yazılım deposunun güncellenmesi dnf check-update ile gerçekleştirilirken güncellemesi var olan yazılımların güncellenmesi dnf update ile gerçekleştirilir. Rocky 9.0 Linux işletim sisteminde dnf ile birlikte yum komutu da paket yönetimi için kullanılabilmektedir.

Diğer Linux Dağıtımlarında Paket Yönetimi

Debian ve RedHat tabanlı farklı Linux dağıtımlarındaki paket yönetim araçlarında oluşturuldukları tabandan kaynaklanan ortaklıkla bulunmaktaydı. Örneğin Debian tabanlı Ubuntu, Kali ve Pardus dağıtımlarının tamamında apt paket yönetim yazılımı kullanılmaktadır. Benzer şekilde dnf yazılım paketi yönetme aracı Centos, Rocky ve Alma Linux gibi RedHat tabanlı dağıtımlarda kullanılmaktadır. Fakat bu bölümde ele alınacak Linux dağıtımları herhangi bir tabana dayanmadıklarından her birinde kullanılan paket yazılım yönetim araçları farklılık göstermektedir.

OpenSUSE

Kurulumu yapılan sunucuya ssh protokolü ile erişim sağlamak için komut satırı arayüzündeki komut çalıştırılır. OpenSuse işletim sisteminde yerel paket veritabanını paket sunucusuyla güncel tutmak için sudo zypper refresh komutu kullanılır.

SUSE

SUSE, ücretsiz ve açık kaynaklı Linux çekirdeği üzerine kurulu bir işletim sistemi olup diğer açık kaynaklı projelerdeki sistem ve uygulama yazılımlarıyla birlikte

dağıtılır. SUSE Linux “Software und System-Entwicklung” (yazılım ve sistem geliştirme) kelimelerinin kısaltmasıdır ve esas olarak Avrupa’da geliştirilmiştir. İlk sürüm 1994’ün başlarında ortaya çıkmıştır. 2003 yılında SUSE mevcut en eski ticari dağıtımlardan biri hâline gelmiştir. Günümüzde SUSE Linux Enterprise Server adı ile devam ettirilen proje OpenSUSE Leap tabanlıdır. OpenSUSE LEap sürümü aslında SUSE Linux Enterprise Server ve SUSE Linux Enterprise Desktop gibi ticari ürünlerin test ortamıdır. SUSE işletim sisteminde de OpenSUSE ile benzer şekilde zypper paket yöneticisi kullanılmaktadır. OpenSUSE için yukarıda kullanılan komut satırı arayüz komutları SUSE Linux Enterprise işletim sisteminde de kullanılabilir.

Gentoo

Yazılım paket yönetiminin gerçekleştirileceği Gentoo işletim sistemine ssh protokolü ile erişim sağlamak için terminaldeki komut çalıştırılır. İşletim sisteminde kurulu yazılımların güncellenmesi için emerge komutu çeşitli parametreler ile birlikte kullanılmaktadır.

Arch Linux

Kurulumu yapılan Arch Linux işletim sistemine ssh protokolü ile erişim sağlamak için terminaldeki komut çalıştırılır. İşletim sisteminin adı ve çekirdek (kernel) bilgilerini öğrenmek için hostnamectl komutu çalıştırılır. Arch Linux için paket yöneticisi olarak pacman’i kullanır. pacman -Suy komutunu her çalıştırdığınızda, sisteminiz en son durumuna tamamen güncellenir.

Bu ünitenin sorularını uygulamada çözŞıklar, doğru cevaplar ve süreli sınav modu AÖF Soru Bankası uygulamasında