最近重装系统后,好像出问题了,右键卸载软件,然后就会出现下面类似的情况,比如右键卸载那个地球仪 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”
右键的问题是 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: