Türkiye
Az konuş, çok çalış..

Pacman komutları, Pacman kullanımı ve ipuçları

PACMAN PAKET YÖNETİCİSİ NEDİR? NASIL ÇALIŞIR? NASIL KULLANILIR?

Pacman Nedir?

Pacman paket yöneticisi, Arch Linux’un ayırt edici özelliklerinden biridir. Basit bir ikili paket formatını, kullanımı kolay bir derleme sistemiyle birleştirir. Pacman paket yönetiminin amacı, paketleri ister resmi depolardan isterse kullanıcının kendi inşa etiiği veya bağımsız olarak indirdiği yerel paketler olsun kolayca yüklenmesini, kaldırılmasını ve yönetilmesini sağlamaktır.

Pacman, paket listelerini ana sunucu ile senkronize ederek sistemi güncel tutar. Bu sunucu/istemci modeli aynı zamanda kullanıcının gerekli tüm bağımlılıkları içeren basit bir komutla paketleri indirmesini/yüklemesini sağlar.

Pacman, C programlama dilinde yazılmıştır ve paketleme için tar tar.zst formatını kullanır.

Not: Pacman paketi makepkg ve vercmp gibi araçlar içerir. pactree ve checkupdates gibi diğer faydalı araçlar  pacman-contrib üzerinde bulunur (eskiden pacman’in bir parçasıydı)

1. Pacman Kullanımı:

Aşağıdaki veriler, pacman’ın gerçekleştirebileceği işlemlerin sadece küçük bir örneğidir. Daha fazlasını okumak için, pacman ( 8 )‘e bakın.
İpucu: Daha önce diğer Linux dağıtımlarını kullananlar için yararlı bir Pacman Rosetta makalesi var.

1.1 Paket Yükleme
Not:
* Paketler genellikle uygulamaya ek işlevler sağlayan bağımlılıklara sahiptir ancak bazı paketler zorunlu olmayan isteğe bağlı bağımlılıklara sahiptir. Bir paketi kurarken, pacman bir paketin isteğe bağlı bağımlılıklarını listeler, ancak pacman.log raporunda bulunmazlar. Bir paketin isteğe bağlı bağımlılıklarını görüntülemek için #Querying package databases komutunu kullanın.

* Yalnızca başka bir paketin (isteğe bağlı olarak) bağımlılığını gerektiren bir paket yüklerken (yani, açıkça belirtmeniz gerekmez), –asdeps seçeneğini kullanmanız önerilir. Ayrıntılar için #Kurulum prosedürü bölümüne bakın.

Uyarı:
Arch linuxa paketleri kurarken, sistemi yükseltmeden paket listesini yenilemekten kaçının (örneğin, bir paket artık resmi depolarda bulunmadığında). Uygulamada, bağımlılık sorunlarına yol açabileceğinden, pacman -Syu paket_adı yerine pacman -Sy paket_adı komutunu çalıştırmayın. Bkz. Sistem bakımı # Kısmi güncellemeler desteklenmiyor ve BBS#89328.

1.1.1 Belirli paketleri yükleme
Tek bir paket veya bağımlılıklar dahil bir paket listesi kurmak için aşağıdaki komutu verin:

# pacman -S paket_adı1 paket_adı2 ...

Regex içeren bir paket listesi kurmak için (bu forum başlığına bakınız):

# pacman -S $(pacman -Ssq package_regex)

Bazen bir paketin farklı depolarda birden fazla sürümü vardır (örneğin, ekstra ve test). Bu örnekteki sürümü ek depodan yüklemek için, depo adının önünde tanımlanması gerekir:

# pacman -S extra/paket_adı

Adlarında benzerlik paylaşan birkaç paket kurmak için küme ayracı genişletme kullanabilirsiniz. Örneğin:

# pacman -S plasma-{desktop,mediacenter,nm}

Bu, ihtiyaç duyulan birçok seviyeye genişletilebilir:

# pacman -S plasma-{workspace{,-wallpapers},pa}

gibi

1.1.2 Paket gruplarını yükleme
Bazı paketler, hepsi aynı anda kurulabilen bir paket grubuna aittir. Örneğin, şöyle bir komut verip grubun hepsini kurabilirsiniz:

# pacman -S gnome

Sizden yüklemek istediğiniz gnome  grubundan paketleri seçmenizi isteyecektir.
Bazen bir paket grubu çok miktarda paket içerecektir ve yalnızca birkaç tanesini kurmak istediğiniz veya kurmak istemediğiniz olabilir. İstemediğiniz numaralar dışındaki tüm sayıları girmek zorunda kalmak yerine, aşağıdaki sözdizimine sahip paketleri veya paket aralıklarını seçmek veya hariç tutmak daha uygun olur:

Enter a selection (default=all): 1-10 15

kurulum için 1 ila 10 ve 15 arasındaki paketleri seçecektir, ya da:

Enter a selection (default=all): ^5-8 ^2

kurulum için 5 ila 8 ve 2 dışındaki tüm paketleri seçecektir.

Hangi paketlerin gnome grubuna ait olduğunu görmek için şunu çalıştırın:

# pacman -Sg gnome

Ayrıca hangi paket gruplarının uygun olduğunu görmek için https://www.archlinux.org/groups/ adresini ziyaret edin.
Not: Listede bir paket sisteme zaten yüklüyse, güncel olsa bile yeniden yüklenir. Bu davranış, –needed seçeneği ile geçersiz kılınabilir

1.2 Paketleri kaldırma
Tek bir paketi kaldırmak için bağımlılıklarının tümünü kurulu bırakın:

# pacman -R paket_adı

Bir paketi ve kurulu diğer paketlerin gerektirmediği bağımlılıkları kaldırmak için:

# pacman -Rs paket_adı

Bir paketi, bağımlılıklarını ve hedef pakete bağlı tüm paketleri kaldırmak için:
Uyarı: Bu işlem özyinelemelidir ve potansiyel olarak ihtiyaç duyulan birçok paketi kaldırabileceğinden dikkatli kullanılmalıdır.

# pacman -Rsc paket_adı

Başka bir paketin gerektirdiği bir paketi, bağımlı paketi kaldırmadan kaldırmak için:
Uyarı: Aşağıdaki işlem bir sistemi kırabilir ve bundan kaçınılmalıdır. Bkz. Sistem bakımı #Bazı pacman komutlarından kaçının.

# pacman -Rdd paket_adı

Pacman, bazı uygulamaları kaldırırken önemli konfigürasyon dosyalarını kaydeder ve bunları şu uzantıyla adlandırır: .pacsave. Bu yedekleme dosyalarının oluşturulmasını önlemek için -n seçeneğini kullanın:

# pacman -Rn paket_adı

Not: Pacman, uygulamanın kendisinin oluşturduğu konfigürasyonları kaldırmaz (örneğin, ev dizinindeki klasördeki “dotfiles” nokta ile başlayan dizinler veya dosyalar).

1.3 Paketleri yükseltme
Uyarı:
* Kullanıcıların, sistemlerini düzenli olarak güncellemek ve aşağıdaki komutu görmeden kör çalıştırmamak için Sistem bakımı # Sistem yükseltmesi bölümündeki yönlendirmeleri takip etmeleri gerekir.
* Arch yalnızca tam sistem yükseltmelerini destekler. Detaylar için bkz. Sistem bakımı # Kısmi güncellemeler desteklenmiyor ve #Kurulum paketleri bölümü.

Pacman sistemdeki tüm paketleri tek bir komutla güncelleyebilir. Sistemin ne kadar güncel olduğuna bağlı olarak bu işlem biraz zaman alabilir. Aşağıdaki komut, depo veritabanlarını senkronize eder ve yapılandırılmış depolarda bulunmayan “yerel” paketleri hariç olmak üzere, sistemin paketlerini günceller:

# pacman -Syu

1.4 Paket veritabanlarını sorgulama
Pacman, yerel paket veritabanını -Q bayrağıyla, senkronizasyon veritabanını -S bayrağıyla ve dosya veritabanını -F bayrağıyla sorgular. Her bayrağın ilgili alt önerileri için pacman -Q –help , pacman -S –help ve pacman -F –help bölümüne bakınız.

Pacman veritabanındaki paketleri arayabilir, hem paket adlarını hem de açıklamalarını arayabilir:

$ pacman -Ss girdi1 girdi2 ...

Bazen, -s’in yerleşik GNİ’si (Genişletilmiş Normal İfadeler) çok fazla istenmeyen sonuçlara neden olabilir, bu nedenle yalnızca paket adıyla eşleşmesi sınırlandırılmalıdır; açıklama veya başka bir alan değil:

$ pacman -Ss '^vim-'

Zaten kurulu paketleri aramak için:

$ pacman -Qs girdi1 girdi2 ...

Uzak dosyalarda paket dosya adlarını aramak için:

$ pacman -Fs girdi1 girdi2 ...

Belirli bir paket hakkında kapsamlı bilgi görüntülemek için:

$ pacman -Si paket_adı

Yerel olarak kurulan paketler için:

$ pacman -Qi paket_adı

İki -i bayrağı geçmek aynı zamanda yedekleme dosyalarının listesini ve değişiklik durumlarını da gösterir:

$ pacman -Qii paket_adı

Paket tarafından yüklenen dosyaların listesini almak için:

$ pacman -Ql paket_adı

Uzak bir paket tarafından yüklenen dosyaların listesini almak için:

$ pacman -Fl paket_adı

Bir paket tarafından yüklenen dosyaların varlığını doğrulamak için:

$ pacman -Qk paket_adı

-k bayrağını iki kere geçmek daha kapsamlı bir kontrol yapacaktır.

Dosya sistemindeki bir dosyanın hangi pakete ait olduğunu bilmek için veritabanını sorgulamak için:

$ pacman -Qo /dosya/yolu/dosya_adı

Bir dosyanın hangi uzak pakete ait olduğunu bilmek için veritabanını sorgulamak için:

$ pacman -Fo /dosya/yolu/dosya_adı

Artık bağımlılık olarak gerekmeyen tüm paketleri listelemek için (sahipsizler):

$ pacman -Qdt

İpucu: Yukarıdaki komutu, bir işlemin artık bir paket sahipsiz kalması durumunda bilgilendirilmek üzere bir işlem sonrası kancaya ekleyin. Bir paket depodan atıldığında, bir paket bırakıldığında yerel bir kurulumda yetim kaldığı için bu durum bildirilmek için kullanışlıdır (açıkça kurulmadıkça). Hiçbir yetişme bulunmadığında “komut yürütülemedi” hatalarını önlemek için, kancanızda Exec için aşağıdaki komutu kullanın:

/usr/bin/bash -c "/usr/bin/pacman -Qtd || /usr/bin/echo '=> None found.'"

Açıkça kurulmuş ve bağımlılık gerektirmeyen bütün paketleri listelemek için:

$ pacman -Qet

Daha fazla örnek için bkz. Pacman / İpuçları ve püf noktaları.

1.4.1 Pactree
Not: Pactree artık pacman paketinin bir parçası değil. Bunun yerine pacman-contrib te bulunabilir.

Bir paketin bağımlılık ağacını görüntülemek için:

$ pactree paket_adı

Bir paketin bağımlı ağacını görüntülemek için, -r tersini bayrakla pactree’ye geçin ya da pkgtools AUR‘dan whoneeds kullanın.

1.4.2 Veritabanı yapısı
Pacman veritabanları normalde /var/lib/pacman/sync konumunda bulunur. /etc/pacman.conf dosyasında belirtilen her depo için orada bulunan ilgili bir veritabanı dosyası olacaktır. Veritabanı dosyaları, her paket için bir dizin içeren, örneğin, which paket için tar-gzip’li arşivlerdir:

% tree which-2.20-6 
which-2.20-6
|-- depends
`-- desc

Bağımlı dosya, bu paketin dayandığı paketleri listeler; bunun yerine, dosya boyutu ve MD5 karması gibi paketin bir açıklaması vardır.

1.5 Paket önbelleğini temizleme
Pacman indirilen paketlerini /var/cache/pacman/pkg/ dizininde saklar ve eski veya kaldırılmış sürümleri otomatik olarak kaldırmaz. Bunun bazı avantajları vardır:
1- Arch Linux Arşivi başka bir yöntemle önceki sürümü geri almaya gerek kalmadan bir paketi düşürmeyi sağlar.
2- Kaldırılan bir paket, depodan yeni bir yükleme gerektirmeden doğrudan önbellek klasöründen kolayca yeniden yüklenebilir.

Bununla birlikte, klasörün süresiz boyutta büyümesini önlemek için kaseti düzenli aralıklarla temizlemek gerekir.
Pacman-contrib paketi içinde sağlanan paccache betiği, en son sürüm 3 dışında, yüklü ve kaldırılmış paketlerin önbelleğe alınmış sürümlerini varsayılan olarak siler:

# paccache -r

Kullanılmayan paketleri haftalık olarak atmak için paccache.timer‘i etkinleştirin ve başlatın.
İpucu: Her pacman işleminden sonra bunu otomatik olarak çalıştırmak için #Hooks oluşturabilirsiniz, örneklere bakın.
Ayrıca kaç yeni sürüme sahip olmak istediğinizi de tanımlayabilirsiniz. Yalnızca bir geçmiş sürümü kullanmak için şunları kullanın:

# paccache -rk1

Paccache eylemini kaldırılan paketlerle sınırlandırmak için u anahtarını ekleyin. Örneğin, kaldırılan paketlerin önbelleğe alınmış sürümlerinin tümünü kaldırmak için aşağıdakileri kullanın:

# paccache -ruk0

daha fazla seçenek için paccache -h komutunun çıktısına bakabilirsiniz.

Pacman ayrıca önbellek ve artık veritabanı dosyalarını artık /etc/pacman.conf yapılandırma dosyasında listelenmeyen havuzlardan temizlemeye yarayan bazı dahili seçeneklere sahiptir. Bununla birlikte pacman, geçmiş sürümlerin çoğunda kalma imkanı sunmaz ve bu nedenle paccache varsayılan seçeneklerinden daha agresiftir.

Şu anda yüklü olmayan tüm önbelleğe alınmış paketleri ve kullanılmayan eşitleme veritabanını kaldırmak için aşağıdakileri komuları çalıştırın:

# pacman -Sc

Tüm dosyaları önbellekten kaldırmak için iki kez onay verin, bu en agresif yaklaşımdır ve önbellek klasöründe hiçbir şey bırakmaz:

# pacman -Scc

Uyarı: Disk alanını boşaltmak zorunda olmadığınız sürece, yüklü paketlerin tüm geçmiş sürümlerinin ve kaldırılmış paketlerin tümünü önbellekten silmekten kaçınmanızda fayda var. Bu, paketleri tekrar indirmeden düşürmeyi veya yeniden yüklemeyi önleyecektir.
pkgcacheclean ve pacleaner, ile önbelleği temizlemek için iki alternatif mevcuttur ve bunlar AUR depolarında bulunur.

1.6 Ek komutlar
Bir paketi kurmadan indirebilirsiniz:

# pacman -Sw paket_adı

Uzak bir depodan olmayan bir ‘yerel’ paket kurun (ör. Paket AUR’dan):

# pacman -U /dosya/yolu/paket/paket_adı-sürümü.pkg.tar.zst

Yerel paketin bir kopyasını pacman’ın önbelleğinde tutmak için, aşağıdakileri kullanın:

# pacman -U file:///dosya/yolu/paket/paket_adı-sürümü.pkg.tar.zst

Bir ‘uzak’ paket kurun (pacman’ın yapılandırma dosyalarında belirtilen bir depodan değil):

# pacman -U  http://www.example.com/repo/paket_adı-sürümü.pkg.tar.zst

-S, -U ve -R eylemlerini engellemek için -p kullanılabilir.
Pacman her zaman kurulacak veya kaldırılacak paketleri listeler ve harekete geçmeden önce izin ister.

1.7 Kurulum nedeni
Pacman veri tabanı, kurulu paketleri neden kurulduğuna göre iki grupta ayırır:
* Doğrudan yüklenenler: Genel olarak pacman -S veya -U komutu ile kurulumuş paketler;
* Bağımlılıklar: Hiçbir zaman (genel olarak) bir pacman kurulum komutu ile kurulmamış olmasına rağmen, açıkça kurulmuş bir başka paketin gereksinim duyduğu ve kısmen istem dışı ama mecburen kurulmuş paketler.

Bir paketi kurarken, kurulum nedenini aşağıdakilere bağlı kalmaya zorlamak mümkündür:

# pacman -S --asdeps paket_adı

İpucu: –asdeps ile isteğe bağlı bağımlılıkları ve sahipsiz bağımlılık paketlerini kaldırırsanız, pacman’in artık isteğe bağlı bağımlılıkları da kaldıracağını kabul etmiş olursunuz. Bu diğer paketlerin çalışmasını da olumsuz etkileyebilir.

Bir paketi yeniden yüklerken olsa da, geçerli yükleme nedeni varsayılan olarak korunur.
Doğrudan kurulmuş paketlerin listesi pacman -Qe ile gösterilebilirken, bağımlılıkların tamamlayıcı listesi pacman -Qd ile gösterilebilir.

Önceden kurulu bir paketin yükleme nedenini değiştirmek için aşağıdakileri çalıştırın:

# pacman -D --asdeps paket_adı

Ters işlemi yapmak için –asexplicit kullanın.
Not: pacman -Syu paket_adı ve –asdeps gibi, yükseltme yaparken –asdeps ve –asexplicit seçeneklerinin kullanması önerilmez.

1.8 Belirli bir dosyayı içeren bir paketi arayın
Dosya veritabanını senkronize et:

# pacman -Fy

Bir dosyayı içeren bir paket arayın, örneğin:

$ pacman -Fs pacman
core/pacman 5.0.1-4
    usr/bin/pacman
    usr/share/bash-completion/completions/pacman
extra/xscreensaver 5.36-1
    usr/lib/xscreensaver/pacman

İpucu: Dosya veritabanını düzenli olarak senkronize etmek için bir cron işi veya sistem zamanlayıcısı ayarlayabilirsiniz.
Gelişmiş işlevsellik için, tüm dosyaları ve ilişkili paketlerini içeren ayrı bir veritabanı kullanan pkgfile dosyasını yükleyin.

 

Daha fazla bilgi edinmek için  PACMAN BELGELERİNİ ve PACMAN ÇÖZÜMLERİNİ tıklayıp inceleyiniz

Translate »