与yum如何删除软件包,但不能同时删除其依赖项?


13

今天,如果我愿意,$ yum remove packageA我将受到欢迎:

Removing:
packageA                        noarch                 3.5.1.b37-15                                 @yumFS                 293 k
Removing for dependencies:
 packageB                      noarch                 3.5.1.b125-7                                 @yumFS                  87 M
..
Is this ok?

我想删除packageA而不删除packageB(等),这可能吗?


1
有可能吗 是。但是,程序包管理器的全部目的是为了防止这种情况。Google围绕着“ RPM Hell”一词做了一个很好的主意,以帮助您了解这样做的目的。
DopeGhoti

Answers:


18

通过使用rpm 可能出现:

$ rpm -e --nodeps packageA

尽管显然要非常小心,因为如果删除依赖项包而不放回原处,则可能导致仍然依赖于该包的包出现意外结果...


关于这个问题。我遇到了依赖版本问题,警告是Application built with libpng-1.6.16 but running with 1.5.13。我以为我会换掉它,但是yum如果我先移走,我想移走很多东西libpng。因此,我使用了此处显示的方法来删除libpnglibpng-devel,然后libpng-1.6.1从源代码中进行了构建和安装,而我的问题就消失了。当它适用于我急需的软件(Mapnik)时,我是否可以相信我并没有破坏上游的其他产品,例如yum最初想要与之一起移除的产品libpng
elrobis

因此,没有安装1.6的软件包选项吗?嗯,我的直觉是他们使用共享库,您还不错,但是它们也没有经过包管理器的测试,因此...我不知道包管理系统是如何工作的。
rogerdpack

1

我发现可以像这样用yum做到这一点:

sudo yum remove --noautoremove <package name>

2
嗯...我在CentOS 6和7上试用了它,但“没有这样的选择:--noautoremove”有什么想法吗?
rogerdpack

3
当我测试刚创建的新程序包时,我使用的是fedora 29。嗯..想知道它是否是软呢帽唯一的东西。
海梅(Jaime)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.