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-cleanupiçin yum-utilspaketten 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. --allKomut 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=1ancak bazı nedenlerden dolayı hala belgelenmemiş durumda.
yum remove --setopt=clean_requirements_on_remove=1benim için centOS'ta çalışıyor
package-cleanup --leaves && yum autoremovekaldı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-cleanupMakinemde "Yum ayarlanması" çıktı; bu da Yum'un kendisini kaldırmasıyla sonuçlandı. Şimdi bunun nasıl çözüleceğini çözmeye çalışıyorum.
-qpaket temizleme için seçenek ekleyin . Bu da başıma geldi: D
package-cleanup -q --leaves | xargs -r -l1 yum -y removepaket 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 --unneededbunun yerine kullanabilirsiniz package-cleanup --leaves.
yummanpage: linux.die.net/man/8/yum ?