Fedora 17'ye bir rpm paketi kurdum. Bazı paketlerin çok fazla bağımlılığı vardı. Bazı paketleri kaldırdım ama yum remove ile kullanılmayan bağımlılıkları kaldırmayı unuttum.
Bunu şimdi nasıl yapabilirim?
Fedora 17'ye bir rpm paketi kurdum. Bazı paketlerin çok fazla bağımlılığı vardı. Bazı paketleri kaldırdım ama yum remove ile kullanılmayan bağımlılıkları kaldırmayı unuttum.
Bunu şimdi nasıl yapabilirim?
Yanıtlar:
Kolay değil. "O zamandan beri kaldırdığım bir şey için gerekli olan bir dosyayı" "gerçekten istediğim herhangi bir şey için gerekli olmayan bir dosyadan" nasıl ayırt edersiniz?
Paket bağımlılık grafiğinizdeki "yaprak düğümlerini" listelemek package-cleanup
için yum-utils
paketten komutu kullanabilirsiniz . Bunlar, başka hiçbir şeyi etkilemeden çıkarılabilen paketlerdir:
$ package-cleanup --leaves
Bu, başka hiçbir şeyin dayanmadığı bir “kütüphaneler” listesi üretecektir. Çoğu durumda bu paketleri güvenle kaldırabilirsiniz. --all
Komut satırına eklerseniz :
$ package-cleanup --leaves --all
Ayrıca, kitaplık olarak kabul edilmeyen paketleri de alacaksınız, ancak bu liste o kadar uzun olacak ki muhtemelen faydalı olmayacak.
Bir paket ile yüklerseniz yum install
, diyelim ki pdftk
, bu bağımlılıkları bir çok çeker:
Installed:
pdftk.x86_64 0:1.44-10.fc18
Dependency Installed:
bouncycastle.noarch 0:1.46-6.fc18
itext-core.noarch 0:2.1.7-14.fc18
libgcj.x86_64 0:4.7.2-8.fc18
bouncycastle-mail.noarch 0:1.46-6.fc18
java-1.5.0-gcj.x86_64 0:1.5.0.0-40.fc18
sinjdoc.x86_64 0:0.5-13.fc18
bouncycastle-tsp.noarch 0:1.46-5.fc18
java_cup.noarch 1:0.11a-10.fc18
itext.x86_64 0:2.1.7-14.fc18
javamail.noarch 0:1.4.3-12.fc18
Complete!
yum remove pdftk
tüm bağımlılıkları değil, yalnızca bu paketi kaldıracak.
Ancak tüm 'işlemlere' bakabilirsiniz (yükleme, kaldırma vb.):
$ sudo yum history list pdftk
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
88 | install pdftk | 2012-12-14 13:35 | Install | 11
Ve sonra bu işlemi geri alabilirsiniz:
$ sudo yum history undo 88
Undoing transaction 88, from Fri Dec 14 13:35:34 2012
Dep-Install bouncycastle-1.46-6.fc18.noarch @fedora
Dep-Install bouncycastle-mail-1.46-6.fc18.noarch @fedora
Dep-Install bouncycastle-tsp-1.46-5.fc18.noarch @fedora
Dep-Install itext-2.1.7-14.fc18.x86_64 @fedora
Dep-Install itext-core-2.1.7-14.fc18.noarch @fedora
Dep-Install java-1.5.0-gcj-1.5.0.0-40.fc18.x86_64 @fedora
Dep-Install java_cup-1:0.11a-10.fc18.noarch @fedora
Dep-Install javamail-1.4.3-12.fc18.noarch @fedora
Dep-Install libgcj-4.7.2-8.fc18.x86_64 @fedora
Install pdftk-1.44-10.fc18.x86_64 @fedora
Dep-Install sinjdoc-0.5-13.fc18.x86_64 @fedora
...
Complete!
yum history
. Teşekkürler!
Fedora 18'den başlayarak, bu komutu basitçe kullanabilirsiniz
yum autoremove
veya
yum remove --setopt=clean_requirements_on_remove=1
Autoremove komutunu belirli bir paketle de uygulayabilirsiniz
yum autoremove <package>
Bu, kurulu olan paketten gereksiz bağımlılıkları kaldıracaktır. autoremove
çok fazla bir takma isim remove --setopt=clean_requirements_on_remove=1
ancak bazı nedenlerden dolayı hala belgelenmemiş durumda.
yum remove --setopt=clean_requirements_on_remove=1
benim için centOS'ta çalışıyor
package-cleanup --leaves && yum autoremove
kaldırılan libvorbis ve böylece internet radyo yayını yapan "Ices" uygulamasının ölmesine neden oldu - muhtemelen repolarda olmadığı için ve onu derlemek zorunda kaldım.
yum autoremove
, CentOS 7.6'da da çalışmaktadır.
Larsks attım bir adım öteye cevap verdim.
$ package-cleanup -q --leaves | xargs -l1 yum -y remove
Bu, başka hiçbir şeyi etkilemeden giderilebilecek tüm bağımlılıkları alır ve sonra bunları kaldırır. Daha sonra birer birer geçiyor.
"-q", "yum" u ayarlayan bazı sistemlerde yararlıdır, aksi halde bu komut yum'u siler. Ve istediğin bu değil.
package-cleanup
Makinemde "Yum ayarlanması" çıktı; bu da Yum'un kendisini kaldırmasıyla sonuçlandı. Şimdi bunun nasıl çözüleceğini çözmeye çalışıyorum.
-q
paket temizleme için seçenek ekleyin . Bu da başıma geldi: D
package-cleanup -q --leaves | xargs -r -l1 yum -y remove
paket temizleme çıktısı boşsa, ansar, aşçı, kukla, serseri gibi otomatik komut dosyaları için yararlı olduğunda sessizce xargs atlayacak
İle daha yeni Fedoras'ta dnf
, dnf repoquery --unneeded
bunun yerine kullanabilirsiniz package-cleanup --leaves
.
yum
manpage: linux.die.net/man/8/yum ?