[已解决]openSUSE 13.2 卸载自带 Firefox 50 却强制安装Thunderbird

用的是openSUSE13.2, 最新的42.3和笔记本不兼容,旧的用着也挺好。
问题:13.2的火狐版本停在50,我下载了最新的57(官方的貌似是绿色版?压缩包里直接双击文件就运行了),想卸载50,但是卸载50的时候提示要安装thunderbird这个邮件客户端,我想卸载完50再卸载雷鸟的时候,又提示我要安装50版本的火狐,真是难过。这个怎么回事?

怎么卸载的?用YAST?

@llyaomo

这似乎是“功能(capability)”这个功能搞的鬼。大概意思就是比如某个软件包或者 pattern 需要 “email client” 这个 capability,然后这个功能比如 Firefox 和 Thunderbird 这两个程序(还可以有更多)都提供了,就会导致卸载一个就安装另一个。

贴一下 sudo zypper info —provides firefox 和 thunderbird 的结果让我看看。

终端和yast是一样的结果。

火狐已经被我删除了,我就贴个雷鸟的

Information for package MozillaThunderbird:
-------------------------------------------
Repository: update-oss
Name: MozillaThunderbird
Version: 45.6.0-58.1
Arch: i586
Vendor: openSUSE
Installed: Yes
Status: up-to-date
Installed Size: 90.8 MiB
Summary: The Stand-Alone Mozilla Mail Component
Description: 
     Mozilla Thunderbird is a redesign of the Mozilla Mail component. It is
     written using the XUL user interface language and designed to be
     cross-platform. It is a stand-alone application instead of part of the
     Mozilla application suite.
Provides:
    appdata()
    appdata(thunderbird.appdata.xml)
    mozilla-kde4-version == 6
    thunderbird == 45.6.0
    MozillaThunderbird == 45.6.0-58.1
    MozillaThunderbird(x86-32) == 45.6.0-58.1

特地装上50的火狐,看了一下

Information for package MozillaFirefox:
---------------------------------------
Repository: update-oss
Name: MozillaFirefox
Version: 50.1.0-94.1
Arch: i586
Vendor: openSUSE
Installed: Yes
Status: up-to-date
Installed Size: 114.0 MiB
Summary: Mozilla Firefox Web Browser
Description: 
    Mozilla Firefox is a standalone web browser, designed for standards
    compliance and performance.  Its functionality can be enhanced via a
    plethora of extensions.
Provides:
    appdata()
    browser(npapi)
    web_browser
    appdata(firefox.appdata.xml)
    mozilla-kde4-version == 6
    firefox == 50.1.0
    firefox == 50.1.0-94.1
    MozillaFirefox == 50.1.0-94.1
    MozillaFirefox(x86-32) == 50.1.0-94.1

就是那个 web_browser 的问题:

sudo zypper se —installed_only —requires ‘web_browser’

看看是哪个软件包

搜了,没有web_browser这个包,不过搜browser倒是有结果,会不会和kde的konqueror有关?

browser 是什么结果?

S | Name | Type | Version | Arch | Repository
–±--------------------------±------------±-----------±-------±-----------------
i | Firefox Web Browser | application | | noarch | (System Packages)
i | PackageKit-browser-plugin | package | 1.0.3-13.1 | i586 | update-oss
i | gimp-help-browser | package | 2.8.16-3.1 | i586 | update-oss

呃,我看错了,Thunderbird 下面没有 provides web_browser 或者 browser。

解决方案在这里:

谢谢,没好好利用论坛搜索。惭愧!
不过这个问题却是让我想到:为什么在卸载火狐或是雷鸟的时候,系统不是提示一起卸载那个mozilla-kde4-integration,而是推荐安装其它软件来解决?

看起来是系统认为它通过安装新包解决了依赖问题,只有它认为无法解决依赖的时候才会提示用户卸载下游软件包

因为是 mozilla-kde4-integration 依赖 Firefox 而不是 Firefox 依赖 mozilla-kde4-integration。mozilla-kde4-integration 不是 Firefox 的依赖。方向是反的。

也就是说,比如A依赖B,B依赖C,卸载B的时候会自动卸载C,然后搜其它包来满足A?其实这样也可以接受,但是,zypper应该提示我卸载B的时候,有什么包会依赖B,这样就很简单明了了。我记得apt的包管理就是提示的。

不是,是 A 依赖 B C,那么卸载 B 的时候系统需要解决 A 的依赖,它找到了 C 于是自动装上 C。
如果是A依赖B,B依赖C,那么卸载B的时候系统会无法解决A 的依赖会提示用户依赖冲突,对C没有影响。

其实你可以试试在同一轮yast对话中同时卸载 B 和 C, 这时系统可能就会提示 A 的依赖无法满足了。