要不要将 python-nautilus 作为依赖项?

要不要将 python-nautilus 作为依赖项?

就是那个问题!


好吧,抛开这些愚蠢的言论,我真的被迫做出一个艰难的决定。我的应用程序是用 C++ 编写的,允许其他脚本通过 XML-RPC 调用方法。其中一个脚本是用 Python 编写的 Nautilus 扩展。该扩展与应用程序的其余部分一起打包,并在安装时复制到适当的位置(/usr/share/nautilus-python/extensions)。

现在的问题是 Nautilus 扩展需要python-nautilus安装 python-nautilus要安装的包才能运行。因此我有三个选择:

  • 使该python-nautilus包成为依赖项。此选项将确保安装我的软件包的任何人都可以使用 Nautilus 扩展。但是,此选项对 XFCE 或 KDE 用户来说并不具有吸引力 - 大量python-nautilus的依赖项将安装在他们的机器上并占用大量空间 - 即使他们从未使用过 Nautilus。

  • 将包裹放入或字段python-nautilus中。suggests:recommends:此选项为最终用户提供了一种避免安装软件包的方法python-nautilus(通过提供--no-install-suggests--no-install-recommends参数apt-get)。但是,当用户在软件中心安装软件包时,这将不起作用。(我总是搞不清楚这两个字段中的哪一个是默认安装的。)

  • 在应用程序安装或首次启动时提示用户。此选项比其他选项更复杂,但它提供了最佳折衷方案,既便于用户安装(无需技术解释),又可在用户不需要(或不想要)时不安装。我猜实现此方案的最佳方法是在用户想要安装软件包时python-nautilus调用简单的提示。apt-get

  • 根本不要安装该包。此选项可确保没有人python-nautilus除非用户想要,否则我的 Nautilus 扩展将无法在最终用户的机器上运行,除非他们手动安装该软件包。

哪一个选项似乎是最佳选择?我是否遗漏了每个选项的利弊?

答案1

他们的机器上将安装大量 python-nautilus 的依赖项

你知道,我想“让我们看看这是非洲吨还是欧洲吨”,然后......

python-nautilus
  依赖: libc6
  依赖: libglib2.0-0
  依赖: libgtk-3-0
  依赖: libnautilus-extension1a
  依赖: libpython2.7
  依赖: python-gi
  依赖: gir1.2-nautilus-3.0
  • XFCE/Xubuntu桌面环境/Lubuntu

    将会安装以下额外的软件包:
    gir1.2-nautilus-3.0
    将会安装以下新软件包:
    gir1.2-nautilus-3.0 python-nautilus
    升级了 0 个,新安装了 2 个,删除了 0 个,并且未升级 3 个。
    需要获得25.2 千字节的档案。
    这次手术后,410 kB 额外磁盘空间将会被使用。
    
  • KDE/Ubuntu

    将会安装以下额外的软件包:
    gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-gtk-3.0
    gir1.2-nautilus-3.0 gir1.2-pango-1.0 libgtk-3-0 libgtk-3-bin libgtk-3-common
    libnautilus-扩展1a
    建议的软件包:
    librsvg2-通用 gvfs
    将会安装以下新软件包:
    gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-gtk-3.0
    gir1.2-nautilus-3.0 gir1.2-pango-1.0 libgtk-3-0 libgtk-3-bin libgtk-3-common
    libnautilus-extension1a python-nautilus
    升级了 0 个,新安装了 11 个,删除了 0 个,并且未升级 2 个。
    需要获得2,835 千字节的档案。
    这次手术后,8,672 kB 额外磁盘空间将会被使用。
    

因此,对于 XFCE/LXDE 来说几乎没有什么,而对于 KDE 来说只有 8.5MB(这并不是世界末日)。

我建议制定...建议。除非另有说明,否则将由 /Synaptic/Software Centerpython-nautilus作为依赖项进行安装。apt-get

对于少数拒绝使用apt-get但知道推荐和依赖项之间的区别并且不想要推荐的用户,APT::Install-Recommends=0Synaptic 和软件中心都会接受该属性。可以从 Synaptic 首选项中以图形方式设置该属性,也可以通过 手动设置/etc/apt/apt.conf.d/

答案2

这取决于 Nautilus 扩展对于你的应用程序有多重要:

  • python-nautilus如果你的应用程序没有依赖就无法使用
  • 如果你的应用程序没有它也可以正常使用,但缺少一些重要功能,那么就将其作为Recommends
  • 如果只是让它成为一个Suggests

我更愿意将扩展作为自己的包,而不是使用Suggests。这样,如果用户想使用该扩展,他就可以更轻松地找到需要安装的内容。

相关内容