Paket Yönetimi

(Package Management sayfasından yönlendirildi)
Şuraya atla: kullan, ara
Bu makalenin geliştirilmeye ihtiyacı vardır. Eğer yardım edebilirseniz lütfen OpenSUSE Style Guide içerisinde yapın.

Eger yapacak birşeyler arıyorsanız articles that need expanding

Bir Linux dağıtımı, SUSE Linux da dahil, Paketlerde depolanan bir uygulamalar ve bu uygulamaları bir bütün olarak yönetebilecek zorunluluklar topluluğudur. Paketler, uygulamayı oluşturan tüm dosyaları içeren arşiv dosyaları (Mozilla paketi Mozilla dosyalarından oluşur) ve sonuçta onları çalıştıran yönergelerdir.

Temelde üç tür paket bulunur;

  • tgz (tar gzip dosyaları). Bu dosyalar temel olarak arşivdir. Paket sağlayıcısının yararlı olduğunu düşündüğü her şeyi tutar. Sıkıştırılmış dosyaları açmak için gerekli arşiv biçimi dışında, bir tgz dosyasının içeriği hakkında bir standart yoktur.
  • deb (Debian). Bu standard Debian paket sistemidir. apt tarafından yönetilir.
  • rpm (Red Hat Package Manager). İlk olarak Red Hat Linux tarafından yaratılmış olup, bir çok Linux dağıtımı tarafından paketleme sistemi olarak kullanılmaktadır.

SUSE Linux tgz kullanarak başladı, daha sonra RMP kullandı ve hâlen bu paketleme sistemini kullanıyor. SUSE Linux herhangi bir paketleme sistemini yönetecek tüm paketleme araçlarını sağlar, ama yalnızca RPM sistemi resmi olarak desteklenmektedir ve burada anlatılacaktır.

RPM Paketleri

SUSE Linux'ta yerel yazılım RPM paket biçiminde paketli olarak gelir. RPM güzel, güçlü bir paket yöneticisidir, ama RPM arşivlerini birer birer yönetir. İçeriğindeki komut satırı aracında sorun giderici eksiği vardır. Soruna ilk bakışta RPM yalnızca sorunu ortaya koyar ve kullanıcıdan ne yapacağına karar vermesini bekler.

Örneğin, B RPM paketine bağlantıları olan bir A RPM paketi kurmak istiyorsanız, RPM, B paketini otomatik olarak kurmayacak, yalnızca size B paketine ihtiyacınız olduğunu bildirecek ve duracaktır. Paket B 'yi ve ardından paket Ayı yükleyip yüklememek kullanıcıya kalmıştır. Şimdi, B paketinin C ve D paketine ve D paketinin de E paketine (böyle gidiyor) bağımlılıkları olduğunu düşünün. Sonuçta, bu muazzam ağacın tüm dalları arasında el ile paket bağımlılıklarının peşinde koşmaya başlayacaksınız.

Bu nedenle bunu yapmak için RPM'in üzerinde programlara ihtiyacımız var. Bu noktada bir çok seçeneğiniz var. Aşağıdakiler size en uygun yazılım kurucusunu bulmanız konusunda yardım edecektir.

Sözcük Dağarcığı

Sunuculardaki Paket Kaynak Dizinleri

Genel kapsamlı ve en uygun terim "repository" (depo)dur. Sunucu tarafındaki depo, örneğin

(1) http://ftp.g(...).de/pub/linux/misc/suser-guru/rpm/10.1
(2) http://ftp.g(...).de/pub/linux/misc/suser-guru/rpm/10.1/RPMS
(3) http://ftp.g(...).de/pub/linux/suse/apt/SuSE/10.1-i386
  • (1) bir Yast2 deposu
  • (2) bir RPM-MD (/repomd/yum, see below) deposu;
  • (3) bir APT-RPM deposu.

Aşağıdaki terimler farklı paket yöneticileri tarafından kullanılır ve tümü depolar için referanstır. Böyle referanslar genelde şu bilgileri içerir:

  • Temel bir URL, metadata ve paketleri geri alacak
  • bir isim

Ayrıca, paket yöneticisinin nelerle başa çıkabileceğine bağlı olarak, ek bilgi .


  • YaST2 onları "installation sources" (kurulum kaynakları) olarak adlandırır;
  • ZMD/rug onları "catalogs" (kataloglar) olarak adlandırır;
  • smart onları "channels" (Kanallar) olarak adlandırır. (Red Carpet da aynı şekilde "channels" olarak adlandırır);
  • apt-rpm "sources" (kaynaklar) olarak adlandırır;
  • yum "repos" (repositories)(depo) olarak adlandırır.

Ama hepsi aynı şeydir : RPM paket depoları için referans ;).


Genel olarak Metadata

Paket depolaro "metadata"lardan oluşur.

Bu metadata, depoda erişilebilecek olan RPM paketleri hakkında çeşitli bilgiler içerir; şöyle ki:

  • paket adı, sürüm, yayım, hedef mimâri, dağıtım;
  • özet, tanım, lisans, proje ağ sitesi;
  • gerektirdikleri;
  • sağladıkları, ve paketin içerdiği dosyaların listesi.

Bu metadata bilgisine libzypp, ZMD/rug, apt-rpm, smart, yum... gibi paket yöneticileri tarafından, paket kurulumları, yükseltmeler, kaldırmalar (gereksinim/sağlama bilgisi burada özellikle önemlidir) nın nasıl yapılacağını hesaplama konusunda ihtiyaç duyulur.

Farklı metadata biçimleri mevcuttur:

  • RPM-MD (RPM-MetaData), "repomd" (Repository MetaData)olarak da, "yum" olarak da (çünkü, yum paket yöneticisi için yerel formattır) adlandırılır;
  • yast2;
  • apt-rpm (RPM için) ve apt-deb (DEB için);
  • Red Carpet (Open Carpet olarak da adlandırılır);
  • RPM-HDL (RPM Header List);
  • URPMI ( Mandriva'nın paket yöneticisi için);
  • slack, Slackware'in paket yöneticisi için;

belki başka bir kaç tane daha..

Yani, ne yazık ki, her bir paket yöneticisi için öyle veya böyle bir metadata biçimi vardır.

Bugünlerde, çoğu paket yöneticisi,gitgide standart hale gelen RPM-MD desteğine yönelmektedir:

  • YaST2 SUSE Linux 10.0'da destekler;
  • libzypp SUSE Linux 10.1'de destekler;
  • yum , belli ki destekler; bu bir yum-özel biçimdir ;);
  • apt-rpm da destekler, bir ya da iki yayımı ( SUSE Linux 10.1 ile gelen sürümü değil ne yazık ki);
  • smart elbette destekler;) (bunu hakkında daha fazla bilgi aşağıda)

RPM-MD

RPM-MD, XML'de gösterilir, depo metadatası, sunucudaki bir "repodata" altdizininde, gzip ile sıkıştırılmış XML dosyalarında saklanır, örneğin:

http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.1/RPMS/repodata/

aşağıdaki dosyalar ile birlikte:

repomd.xml
ana depo dosyarı, çok küçük, diğerleri için referans ve, aynı zamanda checksums ve timestamps içerir;
primary.xml.gz
en önemli bilgiyi içerir: paketlerin listesi (sürüm, yayım, mimâri), gerektirdikleri, paketin büyüklüğü, özet, tanım vb..
filelists.xml.gz
paketlerde yer alan dosyaların listesini içerir
other.xml.gz
tüm paket yöneticilerince kullanılmaz, tüm paketlerin changelog bilgisini içerir.

[ http://linux.duke.edu/projects/metadata/ Read here for more information on RPM-MD]

YaST Yazılım Yönetimi

YaST Yazılım Yönetimi birimi çoğu kullanıcının kullanacağı ve seveceği bir yazılım kurucudur. Bu YaST birimi için belgelendirme aşağıdaki adreste bulunabilir:

SUSE Linux Startup Manual.

rug

Kurulum Depoları

Paketler

y2pmsh

y2pmsh YaST Paket Yöneticisi için bir komut satırı önucudur. y2pmsh iki "modes" (biçimi) vardır. Doğrudan savları geçirebilir ya da bir kabuk olarak kullanabilirsiniz. Yani, ya aşağıdakini çalıştırabilir;

Shellscript.png earth:~ # y2pmsh command argument <enter>

bu yalnıca bu y2pmsh komutunu çalıştıracak ve sonra çıkacaktır. Ya da y2pmsh'i kabul olarak aşağıdaki ile başlatabilirsiniz:

Shellscript.png earth:~ # y2pmsh <enter>

ve sonra bu kabuk oturumundaki komutları çalıştırın

Shellscript.png

[0] y2pm > command1 argument <enter> [0] y2pm > command2 argument <enter> [0] y2pm > exit <enter>

Kurulum Depoları

y2pmsh source komutu Kurulum Depolarını ele alır.

SUSE Linux CD'nizi kurulum deposu olarak ekleyin

Shellscript.png earth:~ # y2pmsh source -a cd:///

Mevcut, sabit SUSE Linux 'u kurulum kaynağı olarak ekleyin

Shellscript.png earth:~ # y2pmsh source -a http://download.opensuse.org/distribution/SL-stable/inst-source/

Eklediğiniz kurulum depolarını gösterin

Shellscript.png

earth:~ # y2pmsh source -s Known sources: 0: [x] SUSE Linux 10.0 (cd:///) 1: [x] SUSE LINUX Version 10.0 (http://download.opensuse.org/distribution/SL-stable/inst-source/)

CD kurulum deposunu yeniden kaldırın

Shellscript.png earth:~ # y2pmsh source -R 0

SUSE Linux 10.0 KDE ek kurulum deposunu ekleyin

Shellscript.png earth:~ # y2pmsh source -a http://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/i386/supplementary/KDE/update_for_10.0/yast-source/

SUSE Linux 10.0 KDE ek kurulum deposunun metadatasını güncelleyin

Shellscript.png earth:~ # y2pmsh source -u 1

y2pmsh kaynak komutu için bir çok seçenek mevcuttur. Bunları aşağıdaki ile görebilirsiniz

Shellscript.png earth:~ # y2pmsh source --help

Paketler

y2pmsh ile paketlerle uğraşmak her zaman üç adımlık bir yoldur. Paketin durumunu (status) değiştirin, bağımlılıklar ile bırakın paket yöneticisi uğraşsın ve değişikliklerinizi yapın.

Bir paketi kurmak için install (kurulum) olarak işaretleyin, sonra bağımlılıkları solve(çözün); daha sonra değişiklikleri commit (işleyin)

Shellscript.png

earth:~ # y2pmsh <enter> [0] y2pm > install kdegames3-arcade <enter> [0] y2pm > install bzflag <enter> [0] y2pm > install chromium <enter> [0] y2pm > solve <enter> [0] y2pm > commit <enter> [0] y2pm > exit <enter>

Bu üç adımı kabuk kipinde bir kerede yürütmek için y2pmsh isc komutu mevcuttur.

kdegames3-arcade, bzflag ve chromium paketlerini bağımlılıkları ile birlikte kurun.

Shellscript.png

earth:~ # y2pmsh <enter> [0] y2pm > isc kdegames3-arcade bzflag chromium

ya da

Shellscript.png earth:~ # y2pmsh install kdegames3-arcade bzflag chromium

Paketlerin kaldırılması da aynı şekilde üç adımlıdır. Paketleri kurulum için işaretlemek yerine remove (kaldır) olarak işaretleyeceksiniz. Sonra paketlerin bağımlılıklarını solve çözecek, ve değişiklikleri işleyeceksiniz commit.

Shellscript.png

earth:~ # y2pmsh <enter> [0] y2pm > remove kdegames3-arcade <enter> [0] y2pm > remove bzflag <enter> [0] y2pm > remove chromium <enter> [0] y2pm > solve <enter> [0] y2pm > commit <enter>

Sisteminizi en yeni paketlere yükseltmek için y2pmsh upgrade komutunu kullanabilirsiniz.

Shellscript.png

earth:~ # y2pmsh <enter> [0] y2pm > upgrade <enter> [0] y2pm > solve <enter> [0] y2pm > commit <enter> [0] y2pm > exit <enter>

smart

smart göreceli olarak genç bir yazılım kurma aracıdır. smart'ın amacı yazılım yükseltme ve kurulum yönetimi sorunlarını layıkıyla olarak çözmektir. Yani, tam olarak RPM ne yapıyorsa o.

Geliştirme/OSS Fabrika Kurulumlarında Güncellemeler için smart Kullanmak

Smart, bir geliştirme yapısını güncel tutmak için oldukça kullanışlıdır. Son geliştirme yapısında bir depo eklemek için şunun gibi bir şey yapacaksınız:

Not 
Büyük olasılıkla konumunuz için makul bir yansı kullanmak isteyeceksiniz, bu örnek, mirrors.kernel.org kullanmaktadır.
smart channel --add suse-devel-yast2 type=yast2 name="SUSE Development Build (yast2)" \
baseurl=http://mirrors.kernel.org/opensuse/distribution/SL-OSS-factory/inst-source

Kurulum Depoları

smart ile depolar channels (kanallar) olarak adlandırılır. Yani, Kurulum Depolarıyla uğraşmak için komut smart channeldır.

SUSE Linux CD'nizi kurulum deposu olarak ekleyin

Shellscript.png earth:~ # smart channel --add /media/cdrom

Burada 10.1RC 'de smartın nasıl kullanılacağı ve fabrika deposu için smart kanalı yapılandırma hakkında daha uzun bir tanımlama yer almaktadır : How to use smart with SUSE Linux Factory

Paketler

smart *all* of the metadata formats above ( smart-özel biçimi yoktur).

Bir smart "channel" (kanal) (depo bilgisi) eklediğinizde, kullanabileceğiniz türler aşağıdaki gibidir : ( "smart channel --help" dışında):

 apt-deb    - APT-DEB Repository
 apt-rpm    - APT-RPM Repository
 deb-dir    - DEB Directory
 red-carpet - Red Carpet Channel
 rpm-dir    - RPM Directory
 rpm-hdl    - RPM Header List
 rpm-md     - RPM MetaData
 slack-site - Slackware Repository
 up2date-mirrors - Mirror Information (up2date format)
 urpmi      - URPMI Repository
 yast2      - YaST2 Repository
not
*-sys kanalları kaldırıldığında, RPM veri tabanına (ya da Debian'da DEB veri tabanına vb..) kurulmuş olan paketleri temsil ederler

Ve evet, hatta onları karıştırabilirsiniz.. Smart için kanallar listesinde, yast2, rpm-md ve apt-rpm depolarını karıştırabilirsiniz.

smart, RPM (SUSE/Redhat/Fedora/Mandriva), Deb (Debian/Ubuntu) ve Slackware için çalıştığından paket altsisteminden bağımsızdır.

Sonuç olarak, bir .deb Debian/Ubuntu paketini SUSE Linux üzerine smart ile kurabilirsiniz, ancak DEB paket veritabanında (RPM veri tabanı hakkında bir şey bilmeyen) saklanacağından bunun hiç bir anlamı olmayacaktır... (yani bu kullanım anlamsızdır ve hiçbir şekilde smart'ın hedefi değildir). Aslında, ilginçtir, çünkü, smart'ı (değiştirilmemiş) RPM, Deb ve Slackware temelli dağıtımlarda kullanabilirsiniz.

apt4rpm

Kurulum Depoları

Packages

Paket Listesini Saklama

SUSE Linux 10.1 bu konuda sorunludur, see a workaroud here