![为什么许多 GNOME 应用程序包依赖于“libunity9”?](https://linux22.com/image/965805/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%AE%B8%E5%A4%9A%20GNOME%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%8C%85%E4%BE%9D%E8%B5%96%E4%BA%8E%E2%80%9Clibunity9%E2%80%9D%EF%BC%9F.png)
在调查时这个问题我发现很多 GNOME 应用程序的软件包都依赖于libunity9
包裹。
如果我尝试libunity9
在 Precise 上卸载,它会尝试卸载许多 GNOME 应用程序:
Ubuntu 开发人员怎么会认为这是个好主意?Ubuntu 越来越像 Windows 了 :(
该libunity9
包的描述如下:
绑定以将位置放入启动器 - 共享库
libunity 是一个共享库,能够与启动器交互并在 Unity 环境中添加位置。
该软件包包含应用程序要使用的共享库
所以很明显它是 Unity 的一个组件。GNOME 应用程序依赖 Unity 很奇怪。由于 Unity 是 Ubuntu 特有的附加组件,因此上游 GNOME 应用程序不应该依赖它。
为什么有这些依赖关系?
答案1
对于 Shotwell 和 Geary(可能还有许多其他应用程序),libunity 支持是运行 ./configure 时设置的编译时选项。这样,Ubuntu 构建它时就会启用它,但其他发行版可以根据需要将其关闭。
不幸的是,这意味着不使用 libunity 的 Ubuntu 衍生产品要么必须在没有 Unity 支持的情况下重建 .deb,要么使用官方的 Ubuntu 编译包并接受它需要一个不必要的包。
请记住,libunity 不是 Unity。例如,Elementary OS 使用 libunity 作为他们自己的自定义 dock,在图标顶部显示徽章。
我无法理解这一切与使 Ubuntu“越来越像 Windows”有什么关系,特别是因为 Windows 没有包管理系统。
答案2
$ apt-cache rdepends libunity9
libunity9
Reverse Depends:
libunity9:i386
libunity9:i386
libunity-dev:i386
xchat-indicator
wallch
unity-china-music-scope
psensor
liferea
libunity-tools
geary
diodon-plugins
xchat-gnome-indicator
unity-webapps-service
unity-scope-musicstores
unity-lens-shopping
unity-lens-music
unity-lens-gwibber
unity-lens-files
unity-lens-applications
thunderbird-gnome-support
telepathy-indicator
shotwell
nautilus
libunity-dev
libunity-dev
libbrasero-media3-1
gir1.2-unity-5.0
evolution-indicator
empathy
deja-dup
所有依赖该库的应用程序libunity9
实际上都使用该库来实现 Unity 特定的集成,例如启动器徽章、进度条和紧急动画。如果我没有记错的话,对该库的依赖实际上是 Ubuntu 对每个 GNOME 应用程序的特定修改,可能与上游版本无关。
答案3
Psensor 的 Ubuntu 打包依赖于 Unity 来提供一些集成功能:
- 在应用程序启动器图标中直接显示最高温度作为徽章
- 在应用程序指示器中提供对传感器值的快速访问
- 当传感器发出警报时,应用程序指示灯颜色为红色
您可以重新编译 psensor 并重建没有此依赖项的 .deb。这就是 debian 打包的情况。