DNF
DNF, paketler hakkında bilgi sorgulayabilen, depolardan paketleri alabilen, otomatik bağımlılık çözümlemeyi kullanarak paketleri kurabilen ve kaldırabilen ve tüm sistemi kullanılabilir en son paketlere güncelleyebilen The Fedora Project paket yöneticisidir. DNF güncellediğiniz, kurduğunuz veya kaldırdığınız paketler üzerinde otomatik bağımlılık çözümlemesi gerçekleştirir ve böylece kullanılabilir tüm bağımlı paketleri otomatik olarak belirleyebilir, alabilir ve kurabilir. DNF yeni, ek depolar veya paket kaynakları ile yapılandırılabilir ve ayrıca yapabildiklerini geliştiren ve genişleten birçok eklenti sağlar. DNF, RPM ile aynı görevlerin çoğunu gerçekleştirebilir; ayrıca, komut satırı seçeneklerinin çoğu benzerdir. DNF, tek bir makinede veya makine gruplarında kolay ve basit paket yönetimi sağlar.
GPG imzalı paketlerle güvenli paket yönetimi
DNF, tüm paket depoları (paket kaynakları) veya bireysel depolar için GPG imzalı paketlerde GPG (Gnu Privacy Guard; GnuPG olarak da bilinir) imza doğrulamasını etkinleştirerek güvenli paket yönetimi sağlar. İmza doğrulama etkinleştirildiğinde DNF, o depo için doğru anahtarla GPG imzalı olmayan paketleri kurmayı reddedecektir. Bu, sisteminize indirip kurduğunuz RPM paketlerinin The Fedora Project gibi güvenilir bir kaynaktan geldiğine ve aktarım sırasında değiştirilmediğine güvenebileceğiniz anlamına gelir. DNF ile imza denetimini etkinleştirmeyle ilgili ayrıntılar için DNF ve DNF Depolarını Yapılandırma kısmına, genel olarak GPG imzalı RPM paketleriyle çalışma ve bunları doğrulama hakkında bilgi için Paket İmzalarını Denetleme kısmına bakın. |
DNF ayrıca, diğer makinelere indirmek ve kurmak için kendi RPM paket depolarınızı kolayca ayarlamanıza olanak tanır.
DNF’yi öğrenmek değerli bir yatırımdır çünkü genellikle sistem yönetimi görevlerini gerçekleştirmenin en hızlı yoludur ve yapabilecekleri PackageKit grafiksel paket yönetim araçları tarafından sağlananların ötesindedir.
DNF ve süper kullanıcı ayrıcalıkları
Paketleri sisteminize kurmak, güncellemek veya kaldırmak üzere dnf komutunu kullanmak için süper kullanıcı ayrıcalıklarına sahip olmanız gerekir. Bu bölümdeki tüm örnekler, su veya sudo komutunu kullanarak süper kullanıcı ayrıcalıkları elde etmiş olduğunuzu varsaymaktadır. |
Paketleri Denetleme ve Güncelleme
Güncellemeleri Denetleme
Güncellemeleri denetlemenin en hızlı yolu, aşağıdaki gibi dnf upgrade komutunu kullanarak kullanılabilir güncellemeleri kurmaya çalışmaktır:
~]# dnf upgrade Last metadata expiration check performed 1:24:32 ago on Thu May 14 23:23:51 2015. Dependencies resolved. Nothing to do. Complete!
dnf upgrade komutunun yalnızca kurulabilen güncellemeleri kurduğunu unutmayın. Bir paket, örneğin bağımlılık sorunları nedeniyle güncellenemiyorsa, atlanır.
dnf check-update komutu sisteminizde kurulu paketlerden hangilerinin yeni sürümlerinin var olduğunu görmek için kullanılabilir, ancak bu, başarıyla kurulabilecekleri anlamına gelmez. Bu nedenle bu komut, çoğunlukla betiklerde ve dnf upgrade çalıştırıldıktan sonra kurulmayan güncellenen paketleri denetlemek için kullanışlıdır.
Örneğin:
~]# dnf check-update Using metadata from Mon Apr 20 16:34:10 2015 (2:42:10 hours old) python.x86_64 2.7.9-6.fc22 updates python-cryptography.x86_64 0.8.2-1.fc22 updates python-libs.x86_64 2.7.9-6.fc22 updates
Yukarıdaki çıktıdaki paketler, güncellenen sürümlere sahip olarak listelenmiştir. Örnek çıktıdaki satır bize şunu söylemektedir:
-
python
— paketin adı, -
x86_64
— paketin oluşturulduğu CPU mimarisi, -
2.7.9
— güncellenen paketin sürümü, -
6.fc22
— güncellenen paketin yayın numarası, -
updates-testing
— güncellenen paketin bulunduğu depo.
Paketleri Güncelleme
Tek bir paketi, birden çok paketi veya tüm paketleri bir kerede güncellemeyi seçebilirsiniz. Güncellediğiniz paketin veya paketlerin herhangi bir bağımlılığının güncellemeleri varsa, onlar da güncellenir.
Tek bir paketi güncellemek için root
olarak şu komutu çalıştırın:
dnf upgrade paket_adı
Örneğin, python paketini güncellemek için şunu yazın:
~]# dnf upgrade python Using metadata from Mon Apr 20 16:38:16 2015 (2:42:14 hours old) Dependencies resolved. ================================================================== Package Arch Version Repository Size ================================================================== Upgrading: python x86_64 2.7.9-6.fc22 updates 92 k python-libs x86_64 2.7.9-6.fc22 updates 5.8 M Transaction Summary ================================================================== Upgrade 2 Packages Total download size: 5.9 M Is this ok [y/N]:
Bu çıktı şunları içerir:
-
python.x86_64
— yeni python paketini indirip kurabilirsiniz. -
python-libs.x86_64
— DNF, python-libs-2.7.9-6.fc22.x86_64 paketinin python paketinin gerekli bir bağımlılığı olduğunu çözümledi. -
DNF, güncelleme bilgilerini gösterir ve ardından güncellemenin gerçekleştirilmesini isteyip istemediğinizi sorar; DNF öntanımlı olarak etkileşimli çalışır. DNF’nin hangi işlemleri gerçekleştirmeyi planladığını zaten biliyorsanız, DNF’nin sorabileceği tüm sorulara otomatik olarak yes yanıtı vermek için
-y
seçeneğini kullanabilirsiniz (bu durumda etkileşimsiz bir şekilde çalışır). Ancak, ortaya çıkabilecek sorunları kolayca giderebilmeniz için DNF’nin sistemde hangi değişiklikleri yapmayı planladığını her zaman incelemelisiniz.Bir işlem ters giderse, İşlem Geçmişiyle Çalışma kısmında açıklandığı gibi dnf history komutunu kullanarak DNF’nin işlem geçmişini görüntüleyebilirsiniz.
DNF ile çekirdekleri güncelleme ve kurma
rpm -i kernel komutunu kullandığınızda RPM'nin yeni bir çekirdek kurmasıyla aynı şekilde DNF her zaman yeni bir çekirdek kurar. Bu nedenle, dnf komutunu kullandığınızda bir çekirdek paketini kurma ve yükseltme arasındaki fark konusunda endişelenmenize gerek yoktur: dnf upgrade veya dnf install komutlarından hangisini kullanırsanız kullanın doğru olanı yapacaktır. Öte yandan RPM kullanılırken, (geçerli çekirdeği değiştiren) rpm -u kernel yerine (yeni bir çekirdek kuran) rpm -i kernel komutunun kullanılması önemlidir. RPM ile çekirdek kurma ve güncelleme hakkında daha fazla bilgi için Paketleri Kurma ve Yükseltme kısmına bakın. |
Tüm paketleri ve bunların bağımlılıklarını güncellemek için, herhangi bir argüman olmadan dnf upgrade komutunu çalıştırın:
dnf upgrade
Yapılandırma Dosyası Değişikliklerini Koruma
Fedora sisteminizi kullanırken paketler tarafından kurulan yapılandırma dosyalarında kaçınılmaz olarak değişiklikler yapacaksınız. DNF’nin sistemde değişiklik yapmak için kullandığı RPM, onların bütünlüklerini korumak için bir mekanizma sağlar. Paket yükseltmelerinde yapılandırma dosyalarındaki değişikliklerin nasıl yönetileceğine ilişkin ayrıntılar için Paketleri Kurma ve Yükseltme kısmına bakın.
Paketler ve Paket Grupları
Paketleri Arama
Aşağıdaki komutu kullanarak tüm RPM paket adlarını ve özetlerini arayabilirsiniz:
dnf search
terim…
Açıklamalar ve URL’lerle eşleştirmek için all
ekleyin.
dnf search all
terim…
Bu komut, her terim için eşleşmelerin listesini görüntüler. Örneğin, "meld" veya "kompare" ile eşleşen tüm paketleri listelemek için şunu yazın:
~]# dnf search meld kompare Loaded plugins: langpacks, presto, refresh-packagekit ============================ N/S Matched: meld =============================== meld.noarch : Visual diff and merge tool python-meld3.x86_64 : HTML/XML templating system for Python =========================== N/S Matched: kompare ============================= komparator.x86_64 : Kompare and merge two folders Name and summary matches only, use "search all" for everything.
Paketleri Listeleme
dnf list ve ilgili komutlar paketler, paket grupları ve depolar hakkında bilgiler sağlar.
DNF’nin tüm listeleme komutları, argüman olarak bir veya daha fazla glob ifadesi ekleyerek sonuçları filtrelemenize olanak tanır. Glob ifadeleri, bir veya daha fazla * (herhangi bir karakterle birden çok kez eşleşir) ve ? (herhangi bir karakterle eşleşir) joker karakterlerini içeren normal karakter dizgeleridir.
Sonuçları glob ifadeleriyle filtreleme
dnf komutuna argüman olarak geçirirken glob ifadelerini kaçırmaya dikkat edin, aksi takdirde Bash kabuğu bu ifadeleri yol adı genişletmeleri olarak yorumlayacak ve geçerli dizindeki globlarla eşleşen tüm dosyaları DNF’ye iletebilecektir. Glob ifadelerinin amaçlandığı gibi DNF’ye iletildiğinden emin olmak için:
DNF, glob ifadeleri kullanırken yalnızca paket adlarını arar. Bir paketin sürümünü aramak için, bir tire ve sürüm numarasının bir kısmını aşağıdaki gibi ekleyin: ~]# dnf list kernel*-4* Last metadata expiration check performed 2:46:09 ago on Thu May 14 23:23:51 2015. Installed Packages kernel.x86_64 4.0.0-1.fc22 @System kernel.x86_64 4.0.2-300.fc22 @System kernel-core.x86_64 4.0.0-1.fc22 @System kernel-core.x86_64 4.0.2-300.fc22 @System [çıktı yarıda kesildi] Bu yöntemlerin her ikisinin de örnek kullanımı için Tüm ABRT eklerini ve eklentilerini glob ifadeleri kullanarak listeleme ve Kullanılabilir paketleri kaçırılan joker karakterlerle tek bir glob ifadesi kullanarak listeleme kısımlarına bakın. |
- dnf list glob_ifadesi…
-
Tüm glob ifadeleriyle eşleşen kurulu ve kullanılabilir paketlerle ilgili bilgileri listeler.
Örnek 1. Tüm ABRT eklerini ve eklentilerini glob ifadeleri kullanarak listelemeÇeşitli ABRT ekleri ve eklentileri olan paketler ya "abrt-addon-" veya "abrt-plugin-" ile başlar. Bu paketleri listelemek için bir kabuk isteminde aşağıdakini yazın:
~]# dnf list abrt-addon\* abrt-plugin\* Last metadata expiration check performed 0:14:36 ago on Mon May 25 23:38:13 2015. Installed Packages abrt-addon-ccpp.x86_64 2.5.1-2.fc22 @System abrt-addon-coredump-helper.x86_64 2.5.1-2.fc22 @System abrt-addon-kerneloops.x86_64 2.5.1-2.fc22 @System abrt-addon-pstoreoops.x86_64 2.5.1-2.fc22 @System abrt-addon-python.x86_64 2.5.1-2.fc22 @System abrt-addon-python3.x86_64 2.5.1-2.fc22 @System abrt-addon-vmcore.x86_64 2.5.1-2.fc22 @System abrt-addon-xorg.x86_64 2.5.1-2.fc22 @System abrt-plugin-bodhi.x86_64 2.5.1-2.fc22 @System Available Packages abrt-addon-upload-watch.x86_64 2.5.1-2.fc22 fedora
- dnf list all
-
Tüm kurulu ve kullanılabilir paketleri listeler.
Örnek 2. Tüm kurulu ve kullanılabilir paketleri listeleme~]# dnf list all Last metadata expiration check performed 0:21:11 ago on Mon May 25 23:38:13 2015. Installed Packages NetworkManager.x86_64 1:1.0.2-1.fc22 @System NetworkManager-libnm.x86_64 1:1.0.2-1.fc22 @System PackageKit.x86_64 1.0.6-4.fc22 @System PackageKit-glib.x86_64 1.0.6-4.fc22 @System aajohan-comfortaa-fonts.noarch 2.004-4.fc22 @System abrt.x86_64 2.5.1-2.fc22 @System [çıktı yarıda kesildi]
- dnf list installed
-
Sisteminizde kurulu tüm paketleri listeler. Çıktıdaki en sağdaki sütun, paketin alındığı depoyu listeler.
Örnek 3. Kurulu paketleri çift tırnak içindeki bir glob ifadesi kullanarak listeleme"krb" ile başlayan ve arkasından tam olarak bir karakter ve bir tire gelen tüm kurulu paketleri listelemek için şunu yazın:
~]# dnf list installed "krb?-*" Last metadata expiration check performed 0:34:45 ago on Mon May 25 23:38:13 2015. Installed Packages krb5-libs.x86_64 1.13.1-3.fc22 @System krb5-workstation.x86_64 1.13.1-3.fc22 @System
- dnf list available
-
Tüm etkin depolardaki kullanılabilir tüm paketleri listeler.
Örnek 4. Kullanılabilir paketleri kaçırılan joker karakterlerle tek bir glob ifadesi kullanarak listelemeAdında "gstreamer" ve ardından "plugin" bulunan kullanılabilir tüm paketleri listelemek için aşağıdaki komutu çalıştırın:
~]# dnf list available gstreamer\*plugin\* Last metadata expiration check performed 0:42:15 ago on Mon May 25 23:38:13 2015. Available Packages gstreamer-plugin-crystalhd.i686 3.10.0-8.fc22 fedora gstreamer-plugin-crystalhd.x86_64 3.10.0-8.fc22 fedora gstreamer-plugins-bad-free.i686 0.10.23-24.fc22 fedora gstreamer-plugins-bad-free.x86_64 0.10.23-24.fc22 fedora gstreamer-plugins-bad-free-devel.i686 0.10.23-24.fc22 fedora gstreamer-plugins-bad-free-devel.x86_64 0.10.23-24.fc22 fedora [çıktı yarıda kesildi]
- dnf group list
-
Tüm paket gruplarını listeler.
Örnek 5. Tüm paket gruplarını listeleme~]# dnf group list Loaded plugins: langpacks, presto, refresh-packagekit Setting up Group Process Installed Groups: Administration Tools Design Suite Dial-up Networking Support Fonts GNOME Desktop Environment [çıktı yarıda kesildi]
- dnf repolist
-
Her etkin depo için depo kimliğini, adını ve sağladığı paket sayısını listeler.
Örnek 6. Etkinleştirilen depoları listeleme~]# dnf repolist Last metadata expiration check performed 0:48:29 ago on Mon May 25 23:38:13 2015. repo id repo name status *fedora Fedora 22 - x86_64 44,762 *updates Fedora 22 - x86_64 - Updates 0
- dnf repository-packages depo_kimliği list
-
Belirtilen depodaki paketleri listeler.
Örnek 7. Tek bir depodan paketleri listeleme~]# dnf repository-packages fedora list [option] Last metadata expiration check performed 1:38:25 ago on Wed May 20 22:16:16 2015. Installed Packages PackageKit.x86_64 1.0.6-3.fc22 @System PackageKit-glib.x86_64 1.0.6-3.fc22 @System aajohan-comfortaa-fonts.noarch 2.004-4.fc22 @System [çıktı yarıda kesildi]
Öntanımlı eylem, belirtilen depodan tüm kullanılabilir ve kurulu paketleri listelemektir. Belirtilen depodan yalnızca kullanılabilir veya kurulu paketleri listelemek için
available
veyainstalled
seçeneğini ekleyin.
Paket Bilgilerini Görüntüleme
Bir veya daha fazla paket hakkındaki bilgileri görüntülemek için aşağıdaki gibi bir komut kullanın:
dnf info paket_adı…
Örneğin, abrt paketiyle ilgili bilgileri görüntülemek için şunu yazın:
~]# dnf info abrt Last metadata expiration check: 1:09:44 ago on Tue May 31 06:51:51 2016. Installed Packages Name : abrt Arch : x86_64 Epoch : 0 Version : 2.8.1 Release : 1.fc24 Size : 2.2 M Repo : @System From repo : updates-testing Summary : Automatic bug detection and reporting tool URL : https://abrt.readthedocs.org/ License : GPLv2+ Description : abrt is a tool to help users to detect defects in applications and : to create a bug report with all information needed by maintainer to fix it. : It uses plugin system to extend its functionality.
dnf info paket_adı komutu, rpm -q --info paket_adı komutuna benzerdir, ancak ek bilgi olarak RPM paketinin kurulduğu DNF deposunu belirtir (çıktıda From repo:
satırına bakın). dnf info komutu, kurulu olandan daha yeni bir sürüm varsa yalnızca kullanılabilir en yeni paketi gösterir. dnf repoquery komutu tüm kurulu ve kullanılabilir paketleri gösterebilir.
Hem kurulu hem de bir depodan kullanılabilir tüm paketler hakkındaki bilgileri görüntülemek için aşağıdaki gibi bir komut kullanın:
dnf repoquery paket_adı --info
Örneğin, abrt paketiyle ilgili bilgileri görüntülemek için şunu yazın:
~]# dnf repoquery abrt --info Last metadata expiration check: 1:01:44 ago on Tue May 31 06:51:51 2016. Name : abrt Version : 2.8.1 Release : 1.fc24 Architecture: x86_64 Size : 2318452 License : GPLv2+ Source RPM : abrt-2.8.1-1.fc24.src.rpm Build Date : 2016-05-25 08:54 Packager : Fedora Project URL : https://abrt.readthedocs.org/ Summary : Automatic bug detection and reporting tool Description : abrt is a tool to help users to detect defects in applications and to create a bug report with all information needed by maintainer to fix it. It uses plugin system to extend its functionality.
Daha fazla seçenek için dnf repoquery kullanım ifadesine bakın:
~]$ dnf repoquery -h
usage: dnf [options] COMMAND
çıktı yarıda kesildi
Paketleri Kurma
DNF, hem tek bir paketi hem de birden çok paketi ve ayrıca seçtiğiniz bir paket grubunu kurmanıza olanak tanır.
Tek bir paketi ve kurulu olmayan tüm bağımlılıklarını kurmak için aşağıdaki şekilde bir komut girin:
dnf install paket_adı
Ayrıca, adlarını argüman olarak ekleyerek birden çok paketi aynı anda kurabilirsiniz:
dnf install paket_adı paket_adı…
AMD64 veya Intel64 gibi bir çoklu kütüphane (multilib) sistemine paketler kuruyorsanız, paket adına .mimari ekleyerek, etkinleştirilmiş bir depoda bulunduğu sürece paketin mimarisini belirtebilirsiniz. Örneğin, i586
için sqlite2 paketini kurmak için şunu yazın:
~]# dnf install sqlite2.i586
Benzer ada sahip birden çok paketi hızlı bir şekilde kurmak için glob ifadelerini kullanabilirsiniz:
~]# dnf install audacious-plugins-\*
Paket adlarına ve glob ifadelerine ek olarak, dnf install komutunu dosya adlarıyla da kullanabilirsiniz. Kurmak istediğiniz programın adını biliyorsanız ancak paket adını bilmiyorsanız, dnf install komutuna yol adını belirtebilirsiniz:
~]# dnf install /usr/sbin/named
dnf daha sonra paket listelerini arar, varsa /usr/sbin/named
dosyasını sağlayan paketi bulur ve onu kurmak isteyip istemediğinizi sorar.
Bir dosyaya hangi paketin sahip olduğunu bulma
~]# dnf provides "*bin/named" Using metadata from Thu Apr 16 13:41:45 2015 (4:23:50 hours old) bind-32:9.10.2-1.fc22.x86_64 : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server Repo : @System dnf provides "*/dosya_adı",dosya_adı dosyasını içeren tüm paketleri bulacaktır. |
Paket grubu bir pakete benzer: kendi başına bir işe yaramaz, ancak bir tanesini kurmak, ortak bir amaca hizmet eden bir grup bağımlı paketi çeker. Bir paket grubunun bir adı ve bir grup kimliği (GID) vardır. dnf group list -v komutu, tüm paket gruplarının adlarını ve her birinin yanında parantez içinde grup kimliklerini listeler. Grup kimliği, aşağıdaki örnekteki kde-desktop-environment
gibi her zaman son parantez çiftinin içindeki terimdir:
~]# dnf -v group list kde\* cachedir: /var/cache/dnf/x86_64/22 Loaded plugins: builddep, config-manager, copr, playground, debuginfo-install, download, generate_completion_cache, kickstart, needs-restarting, noroot, protected_packages, Query, reposync, langpacks initialized Langpacks plugin DNF version: 0.6.5 repo: using cache for: fedora not found deltainfo for: Fedora 22 - x86_64 not found updateinfo for: Fedora 22 - x86_64 repo: using cache for: updates-testing repo: using cache for: updates not found updateinfo for: Fedora 22 - x86_64 - Updates Using metadata from Thu Apr 16 13:41:45 2015 (4:37:51 hours old) Available environment groups: KDE Plasma Workspaces (kde-desktop-environment)
Tam grup adını (grup kimliği kısmı olmadan) group install komutuna ileterek bir paket grubu kurabilirsiniz:
dnf group install grup_adı
Birden çok sözcükten oluşan adlar tırnak içine alınmalıdır.
Grup kimliğini kullanarak da kurabilirsiniz:
dnf group install
grup_kimliği
Başına bir @ karakteri eklerseniz (dnf komutuna bir group install yapmak istediğinizi söyler) grup kimliğini veya tırnak içindeki adı install komutuna bile iletebilirsiniz:
dnf install
@grup
Örneğin, KDE Plasma Workspaces
grubunu kurmanın alternatif ancak eş değer yolları şunlardır:
~]# dnf group install "KDE Plasma Workspaces" ~]# dnf group install kde-desktop-environment ~]# dnf install @kde-desktop-environment
Paketleri Kaldırma
Paket kurulumuna benzer şekilde, DNF hem bireysel paketleri hem de bir paket grubunu kaldırmanıza (RPM ve DNF terminolojisinde remove) izin verir.
Belirli bir paketi ve ona bağımlı olan paketleri kaldırmak için root
olarak şu komutu çalıştırın:
dnf remove paket_adı…
Birden çok paket kurduğunuzda olduğu gibi, komuta daha fazla paket adı ekleyerek birkaçını aynı anda kaldırabilirsiniz. Örneğin totem, rhythmbox ve sound-juicer paketlerini kaldırmak için, bir kabuk isteminde şunu yazın:
~]# dnf remove totem rhythmbox sound-juicer
install komutuna benzer şekilde, remove komutu şu argümanları alabilir:
-
paket adları
-
glob ifadeleri
-
dosya listeleri
-
paket sağlayanları
Diğer paketler ona bağımlıyken bir paketi kaldırma
DNF, ona bağımlı paketleri de kaldırmadan bir paketi kaldıramaz. Bu tür bir işlem yalnızca RPM tarafından gerçekleştirilebilir, tavsiye edilmez ve sisteminizi çalışmaz durumda bırakabilir veya uygulamaların hatalı çalışmasına ve beklenmedik şekilde sonlandırılmasına neden olabilir. Daha fazla bilgi için RPM bölümündeki Paketleri Kaldırma kısmına bakın. |
install komutunun söz dizimiyle benzer bir söz dizimi kullanarak bir paket grubunu kaldırabilirsiniz:
dnf group remove
grup
dnf remove
@grup
KDE Plasma Workspaces
grubunu kaldırmanın alternatif ancak eş değer yolları şunlardır:
~]# dnf group remove "KDE Plasma Workspaces" ~]# dnf group remove kde-desktop-environment ~]# dnf remove @kde-desktop-environment
İşlem Geçmişiyle Çalışma
dnf history komutu, kullanıcıların DNF işlemlerinin zaman çizelgesi, gerçekleştikleri tarihler ve saatler, etkilenen paket sayısı, işlemlerin başarılı olup olmadığı veya iptal edilip edilmediği ve işlemler arasında RPM veri tabanının değiştirilip değiştirilmediğine ilişkin bilgileri incelemesine olanak tanır. Ek olarak, bu komut belirli işlemleri geri almak veya yeniden yapmak için kullanılabilir.
Tüm işlemlerin bir listesini görüntülemek için, root
olarak, ya hiçbir ek argüman olmadan dnf history komutunu çalıştırın ya da şu komutu girin:
dnfhistory
list
Yalnızca belirli bir aralıktaki işlemleri görüntülemek için komutu şu şekilde kullanın:
dnf history list başlangıç_kimliği..bitiş_kimliği
Ayrıca yalnızca belirli bir paket veya paketlerle ilgili işlemleri de listeleyebilirsiniz. Bunu yapmak için, komutu bir paket adı veya bir glob ifadesi ile kullanın:
dnf history list glob_ifadesi…
Örneğin, ilk beş işlemin listesi aşağıdaki gibi görünebilir:
~]# dnf history list 1..4 Using metadata from Thu Apr 16 13:41:45 2015 (5:47:31 hours old) ID | Login user | Date a | Action | Altere ------------------------------------------------------------------------------- 4 | root <root> | 2015-04-16 18:35 | Erase | 1 3 | root <root> | 2015-04-16 18:34 | Install | 1 2 | root <root> | 2015-04-16 17:53 | Install | 1 1 | System <unset> | 2015-04-16 14:14 | Install | 668 E
dnf history list komutu, her satırda aşağıdaki sütunlar olacak şekilde bir tablo çıktısı üretir:
-
ID
— belirli bir işlemi tanımlayan bir tam sayı değeri. -
Login user
— bir işlemi başlatmak için oturumu kullanılan kullanıcının adı. Bu bilgi genellikleTam Ad <kullanıcı_adı>
şeklinde gösterilir, ancak bazen işlemi gerçekleştirmek için kullanılan komut görüntülenir. Bir kullanıcı tarafından yapılmayan işlemlerde (otomatik sistem güncellemesi gibi) bunun yerineSystem <unset>
kullanılır. -
Date and time
— bir işlemin yapıldığı tarih ve saat. -
Action(s)
— Action(s) alanının olası değerleri kısmında açıklandığı gibi bir işlem sırasında gerçekleştirilen eylemlerin listesi. -
Altered
— bir işlemden etkilenen paketlerin sayısı ve muhtemelen ardından ek bilgiler.
[options="header"] |
Eylem |
Kısaltması |
Açıklaması |
|
|
En az bir paket eski bir sürüme indirildi. |
|
|
En az bir paket kaldırıldı. |
|
|
En az bir yeni paket kuruldu. |
|
|
En az bir paket kullanım dışı olarak işaretlendi. |
|
|
En az bir paket yeniden kuruldu. |
|
|
En az bir paket daha yeni bir sürüme güncellendi. |
dnf history komutu, işlem geçmişini gözden geçirmenin yanı sıra, seçilen bir işlemi geri almak veya tekrarlamak için araçlar sağlar. Bir işlemi geri almak için, root
olarak bir kabuk isteminde şunu yazın:
dnfhistory
undo
kimlik
Belirli bir işlemi tekrarlamak için, root
olarak şu komutu çalıştırın:
dnfhistory
redo
kimlik
Her iki komut da en son işlemi geri almak veya tekrarlamak için last
anahtar sözcüğünü kabul eder.
Hem dnf history undo hem de dnf history redo komutlarının yalnızca bir işlem sırasında gerçekleştirilen adımları geri aldığını veya yinelediğini ve gerekli paketler kullanılabilir değilse başarısız olacağını unutmayın. Örneğin, işlem yeni bir paket kurduysa dnf history undo komutu onu kaldıracak ve ayrıca güncellenen tüm paketleri önceki sürümlerine indirmeye çalışacaktır, ancak gerekli paketler kullanılabilir değilse komut başarısız olacaktır.
DNF ve DNF Depolarını Yapılandırma
DNF ve ilgili yardımcı programlar için yapılandırma dosyası /etc/dnf/dnf.conf
konumunda bulunur. Bu dosya, DNF seçeneklerini ayarlamanıza izin veren genel etkiye sahip zorunlu bir [main]
bölümü içerir ve ayrıca bir depoya özgü seçenekleri ayarlamanıza izin veren bir veya daha fazla [repository]
bölümü içerebilir. Ancak, her bir depoyu /etc/yum.repos.d/
dizinindeki yeni veya mevcut .repo
dosyalarında tanımlamanız tavsiye edilir. /etc/dnf/dnf.conf
dosyasının ayrı [repository]
bölümlerinde tanımladığınız değerler, [main]
bölümünde ayarlanan değerleri geçersiz kılar.
Bu bölüm size şunları nasıl yapacağınızı gösterir:
-
/etc/dnf/dnf.conf
yapılandırma dosyasının[main]
bölümünü düzenleyerek genel DNF seçeneklerini ayarlamak; -
/etc/dnf/dnf.conf
dosyasındaki[repository]
bölümlerini ve/etc/yum.repos.d/
dizinindeki.repo
dosyalarını düzenleyerek her bir depo için seçenekleri ayarlamak; -
dinamik sürüm ve mimari değerlerinin doğru şekilde işlenmesi için
/etc/dnf/dnf.conf
dosyasındaki DNF değişkenlerini ve/etc/yum.repos.d/
dizinindeki dosyaları kullanmak; -
komut satırında DNF depoları eklemek, etkinleştirmek ve devre dışı bırakmak; ve,
-
kendi özel DNF deponuzu kurmak.
[main] Seçeneklerini Ayarlama
seçeneklerini ayarlama] /etc/dnf/dnf.conf
yapılandırma dosyası tam olarak bir [main]
bölümü içerir ve bu bölümdeki bazı anahtar/değer çiftleri dnf komutunun çalışma şeklini etkilerken, diğerleri DNF’nin depoları nasıl ele alacağını etkiler.
/etc/dnf/dnf.conf
dosyasındaki [main]
bölüm başlığı altına birçok ek seçenek ekleyebilirsiniz.
Örnek bir /etc/dnf/dnf.conf
yapılandırma dosyası şöyle görünebilir:
[main] gpgcheck=1 installonly_limit=3 clean_requirements_on_remove=true
[main]
bölümünde en sık kullanılan seçenekler şunlardır:
debuglevel
=değer-
…burada değer
0
ile10
arasında bir tam sayıdır. Daha yüksek birdebuglevel
değeri ayarlamak, dnf komutunun daha ayrıntılı hata ayıklama çıktısı görüntülemesine neden olur.debuglevel=0
hata ayıklama çıktısını devre dışı bırakır vedebuglevel=2
öntanımlı değerdir. exclude
=paket_adı daha_fazla_paket_adı-
Bu seçenek, kurulum ve güncellemeler sırasında paketleri anahtar kelimeye göre hariç tutmanıza olanak tanır. Dışlama için birden fazla paketin listelenmesi, boşlukla sınırlandırılmış bir paket listesini tırnak işareti içine alarak gerçekleştirilebilir. Joker karakterler (örneğin,
*
ve?
) kullanan kabuk globlarına izin verilir. gpgcheck
=değer-
…burada değer şunlardan biridir:
0
— Yerel paket kurulumu da dahil olmak üzere tüm depolardaki paketlerde GPG imza denetimini devre dışı bırak.1
— Yerel paket kurulumu dahil tüm depolardaki tüm paketlerde GPG imza denetimini etkinleştir.gpgcheck=1
öntanımlı değerdir ve bu nedenle tüm paketlerin imzaları denetlenir.Bu seçenek
/etc/dnf/dnf.conf
dosyasının[main]
bölümünde ayarlanırsa tüm depolar için GPG denetimi kuralını ayarlar. Ancak, bunun yerine her bir depo içingpgcheck=değer
ayarını da yapabilir, GPG denetimini bir depoda etkinleştirirken diğerinde devre dışı bırakabilirsiniz. Bir deponun ilgili.repo
dosyasındakigpgcheck=değer
seçeneğini ayarlamak, varsa/etc/dnf/dnf.conf
dosyasındaki öntanımlı ayarı geçersiz kılar.GPG imza denetimi hakkında daha fazla bilgi için Paket İmzalarını Denetleme kısmına bakın.
installonlypkgs
=paketlerin boşlukla ayrılmış bir listesi-
Burada, dnf tarafından kurulabilen, ancak asla güncellenmeyecek paketlerin boşlukla ayrılmış bir listesini sağlayabilirsiniz. Öntanımlı olarak yalnızca kurulan paketlerin listesi için dnf.conf(5) kılavuz sayfasına bakın.
/etc/dnf/dnf.conf
dosyasınainstallonlypkgs
yönergesini eklerseniz, dnf.conf(5) kılavuz sayfasınıninstallonlypkgs
bölümünde listelenenler de dahil olmak üzere, yalnızca-kur olması gereken tüm paketleri listelediğinizden emin olmalısınız. Özellikle, çekirdek paketleri her zamaninstallonlypkgs
olarak listelenmelidir (öntanımlı olarak oldukları gibi) veinstallonly_limit
her zaman2
değerinden büyük bir değere ayarlanmalıdır, böylece öntanımlı olanın önyükleme yapmaması durumunda her zaman bir yedek çekirdek kullanılabilir olacaktır.
installonly_limit
=değer-
…burada değer,
installonlypkgs
yönergesinde listelenen herhangi bir tek paket için aynı anda kurulu olabilecek en fazla sürüm sayısını temsil eden bir tam sayıdır.installonlypkgs
yönergesinin öntanımlı değeri birkaç farklı çekirdek paketi içerir, bu nedenleinstallonly_limit
değerinin değiştirilmesinin aynı zamanda herhangi bir tek çekirdek paketinin en fazla kurulu sürüm sayısını etkileyeceğini unutmayın./etc/dnf/dnf.conf
dosyasında listelenen öntanımlıinstallonly_limit=3
değerinin özellikle2
değerinin altına düşürülmesi tavsiye edilmez. keepcache
=değer-
…burada değer şunlardan biridir:
0
— Başarılı bir kurulumdan sonra başlıkların ve paketlerin önbelleğini saklama. Bu öntanımlı olandır.1
— Başarılı bir kurulumdan sonra önbelleği sakla.
Kullanılabilir [main]
seçeneklerin tam listesi için dnf.conf(5) kılavuz sayfasının [MAIN] OPTIONS
bölümüne bakın.
[repository] Seçeneklerini Ayarlama
repository kısmının kisisel_depom (boşluklara izin verilmez) gibi benzersiz bir depo kimliği olduğu [repository]
bölümleri, bireysel DNF depoları tanımlamanıza izin verir.
Aşağıda [repository]
bölümünün küçük bir örneği bulunmaktadır:
[repository] name=depo_adı baseurl=depo_adresi
Her [repository]
bölümü aşağıdaki yönergeleri içermelidir:
name
=depo_adı-
…burada depo_adı, depoyu tanımlayan kolayca okunup anlaşılabilen bir dizgedir.
- parametre=depo_adresi
-
…burada parametre şunlardan biridir:
baseurl
,metalink
veyamirrorlist
;…depo_adresi, bir deponun
repodata
dizinini içeren bir dizinin, bir üst bağlantı dosyasının veya bir yansı listesi dosyasının URL’sidir.-
Depo HTTP aracılığıyla kullanılabilirse şunu kullanın:
http://deponun/yolu
-
Depo FTP aracılığıyla kullanılabilirse şunu kullanın:
ftp://deponun/yolu
-
Depo yerel olarak makine üzerindeyse şunu kullanın:
file:///deponun/yolu
-
Belirli bir çevrim içi depo, temel HTTP kimlik doğrulaması gerektiriyorsa kullanıcı adınızı ve parolanızı URL’nin başına
kullanıcı_adı:parola@bağlantı
olarak ekleyerek belirtebilirsiniz. Örneğin, http://www.example.com/depo/ adresindeki bir depo, kullanıcı adı olarak "kullanici" ve parola olarak "parola" gerektiriyorsa,baseurl
seçeneğihttp://kullanici:parola@www.example.com/depo/
olarak belirtilebilir.Bu URL genellikle bir HTTP bağlantısıdır, örneğin:
baseurl=http://deponun/yolu/releases/$releasever/server/$basearch/os/
DNF’nin URL’lerdeki
$releasever
,$arch
ve$basearch
değişkenlerini her zaman genişlettiğini unutmayın. DNF değişkenleri hakkında daha fazla bilgi için DNF Değişkenlerini Kullanma kısmına bakın.
-
Öntanımlı depo kümesini yapılandırmak için enabled
seçeneğini şu şekilde kullanın:
enabled
=değer-
…burada değer şunlardan biridir:
0
— Güncellemeler ve kurulumlar gerçekleştirirken bu depoyu bir paket kaynağı olarak dahil etme.1
— Bu depoyu bir paket kaynağı olarak dahil et.Depoları açma ve kapatma,
--set-enabled depo_adı
veya--set-disabled depo_adı
seçeneklerinden biri dnf komutuna geçirilerek veya PackageKit programınınYazılım Ekle/Kaldır
penceresinden de yapılabilir.
Daha birçok [repository]
seçeneği bulunmaktadır. Tam bir liste için dnf.conf(5) kılavuz sayfasının [repository] OPTIONS
bölümüne bakın.
DNF Değişkenlerini Kullanma
Değişkenler yalnızca DNF yapılandırma dosyalarının uygun bölümlerinde, yani /etc/dnf/dnf.conf
dosyasında ve /etc/yum.repos.d/
dizinindeki tüm .repo
dosyalarında kullanılabilir. Depo değişkenleri şunları içerir:
$releasever
-
DNF’nin RPMDB’de bulunan bilgilerden türettiği işletim sisteminin yayın sürümünü ifade eder.
$arch
-
Sistemin CPU mimarisini ifade eder.
$arch
için geçerli değerler şunları içerir:i586
,i686
vex86_64
. $basearch
-
Sistemin temel mimarisini ifade eder. Örneğin, i686 ve i586 makinelerinin her ikisi de
i386
temel mimarisine, AMD64 ve Intel64 makinelerix86_64
temel mimarisine sahiptir.
Geçerli Yapılandırmayı Görüntüleme
Tüm yapılandırma seçeneklerini ve bunlara karşılık gelen değerleri ve depoları listelemek için dnf config-manager komutunu --dump
seçeneğiyle çalıştırın:
~]$ dnf config-manager --dump ============================= main ====================================== [main] alwaysprompt = True assumeno = False assumeyes = False bandwidth = 0 best = False bugtracker_url = https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=dnf cachedir = /var/cache/dnf/x86_64/22 [çıktı yarıda kesildi]
DNF Deposu Ekleme, Etkinleştirme ve Devre Dışı Bırakma
[repository Seçeneklerini Ayarlama] kısmı, bir DNF deposunu tanımlamak için kullanabileceğiniz çeşitli seçenekleri açıklamaktadır. Bu kısım, dnf config-manager komutunu kullanarak bir deponun nasıl ekleneceğini, etkinleştirileceğini ve devre dışı bırakılacağını açıklar.
Yeni bir depo tanımlamak için, /etc/dnf/dnf.conf
dosyasına veya /etc/yum.repos.d/
dizinindeki bir .repo
dosyasına bir [repository]
bölümü ekleyebilirsiniz. /etc/yum.repos.d/
dizinindeki .repo
dosya uzantısına sahip tüm dosyalar DNF tarafından okunur ve depolarınızı /etc/dnf/dnf.conf
yerine burada tanımlamanız tavsiye edilir.
DNF depoları genellikle kendi .repo
dosyalarını sağlar. Sisteminize böyle bir depo eklemek ve etkinleştirmek için root
olarak şu komutu çalıştırın:
dnf config-manager --add-repo depo_adresi
…burada depo_adresi, .repo
dosyasına bir bağlantıdır.
http://www.example.com/example.repo adresinde bulunan bir depoyu eklemek için, bir kabuk isteminde şunu yazın:
~]# dnf config-manager --add-repo http://www.example.com/example.repo adding repo from: http://www.example.com/example.repo
Belirli bir depoyu veya depoları etkinleştirmek için, root
olarak bir kabuk isteminde şunu yazın:
dnf config-manager --set-enabled
depo…
…burada depo, benzersiz depo kimliğidir. Geçerli yapılandırmayı görüntülemek için --dump
seçeneğini ekleyin.
Bir DNF deposunu devre dışı bırakmak için, root
olarak şu komutu çalıştırın:
dnf config-manager --set-disabled
depo…
…burada depo, benzersiz depo kimliğidir. Geçerli yapılandırmayı görüntülemek için --dump
seçeneğini ekleyin.
Ek Kaynaklar
.Kurulu Belgeler
-
dnf(8)
— DNF komutunun kılavuz sayfası. -
dnf.conf(8)
— DNF Yapılandırması kılavuz sayfası.
- https://dnf.readthedocs.org/en/latest/index.html
-
DNF wiki sayfası daha birçok belgelendirme içermektedir.
Want to help? Learn how to contribute to Fedora Docs ›