[ 已解决 ] 卸载火狐出现问题,要我装雷鸟

最近重装系统后,好像出问题了,右键卸载软件,然后就会出现下面类似的情况,比如右键卸载那个地球仪 marbel, 一段时间后会出现下列提示:
could find /usr/share/applications/kde4/marble.desktop
但是我进入那个目录看了下,marble.desktop 确实存在的。卸载火狐时也提示 firefox.desktop 不存在,于是我就用 zypper rm MozillaFirefox,居然出现下下面问题

zypper rm MozillaFirefox 
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  MozillaThunderbird 

The following package is going to be REMOVED:
  MozillaFirefox 

1 new package to install, 1 to remove.
Overall download size: 22.6 MiB. After the operation, additional 3.2 MiB will be used.
Continue? [y/n/p/?] (y): 

这是为什么呢 (⊙o⊙)?
系统是 64 位 opensuse12.3,kde4.10.5 “release 1”

关于那个右键卸载文件找不到的问题,我看到论坛上一个差不多的问题, forums.opensuse.org/english/get-technical-help-here/applications/489367-right-click-uninstall-link-plasma-desktop-doesnt-work-opensuse.html
不过这个问题好像没解决

右键的问题是 Apper 管的。

卸载火狐要你装雷鸟:

直观的想,一定是你还装着的某个软件包需要了 MozillaFirefox 和 MozillaThunderbird 共有的一个东西。导致卸载了这个就安装那个来提供这个东西。

这个东西肯定不是软件包名,因为 MozillaFirefox 和 MozillaThunderbird 完全不一样嘛。但是应该是某些 Mozilla 的东西。

RPM 有一个 tag 叫做 provides,就跟被大家熟知的 requires 和 recommends 一样。它就是说明这个软件包能够「提供」些什么功能或内容。

于是我们来找一下:

打开 s.o.o/search,分别搜索两个包名,点击那个「官方版本」「官方升级版本」这些工程名,可以进入到它们在 build.o.o 上的工程目录,找到它们的编译控制文件 *.spec

对比了火狐和雷鸟的 RPM spec 文件:

火狐:File MozillaFirefox.spec of Package MozillaFirefox - openSUSE Build Service

雷鸟:File MozillaThunderbird.spec of Package MozillaThunderbird - openSUSE Build Service

它们都有提供一个叫做:

Provides: mozilla-kde4-version = %{kde_helper_version}

的东西。那下面我们来找一下有哪些软件包 requires 依赖了这个东西吧:

sudo zypper search --requires --match-exact mozilla-kde4-version

返回的是 mozilla-kde4-integration。于是一下就明白了。这个 mozilla kde 整合是要服务于一个对象的,不服务 Firefox 就要服务 Thunderbird。

所以

sudo zypper rm -u MozillaFirefox mozilla-kde4-integration

即可。

要是觉得回答得还能入您的法眼,请点击感谢并标记已解决。

6赞

谢谢楼上专业又详细的解答!
Got it!
:1: