为什么许多 GNOME 应用程序包依赖于“libunity9”?

为什么许多 GNOME 应用程序包依赖于“libunity9”?

在调查时这个问题我发现很多 GNOME 应用程序的软件包都依赖于libunity9包裹。

依赖项

如果我尝试libunity9在 Precise 上卸载,它会尝试卸载许多 GNOME 应用程序:

卸载所有内容

MiJyn 在评论中说道

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 打包的情况。

相关内容