【问题标题】:Debian package install Dependency from Git?Debian软件包从Git安装依赖关系?
【发布时间】:2020-09-16 12:22:22
【问题描述】:

我有一个 Python 包,需要安装另一个包。该软件包可以从其他人的 github 页面下载。我需要把我的包变成一个 .deb 文件。我目前正在使用 stdeb 执行此操作。是否有可能在安装我的 deb 文件时,它还会从 git 下载文件并执行“pip install”。在他们的 setup.py 上?

【问题讨论】:

  • 这个问题似乎离题了。 (管理等安装包是姐妹网站的主题)。但我假设您是从程序员方面询问(例如创建或部署东西)。在这种情况下,我认为您做错了,但我们需要更多细节。为什么要为这种情况构建 .deb 文件?只安装文件就够了吗(可能只安装在本地用户上)?
  • 我创建了一个程序,它只是一个 python 脚本,既可以用作库,也可以用作 shell。我为它创建了一个 python 包。现在我需要将 python 包转换为我也做过的 debian 包,但是在从终端安装并运行程序或将其导入另一个脚本后,我收到另一个 python 包未安装的错误。这个 python 包可以在 github 上找到,虽然它可以手动安装,但我需要将它与我的 debian 包一起安装。这个包只能在git上找到python包形式(setup.py)
  • 在 Debian 中,当我们需要打包一个包时,我们必须同时打包所有依赖项。但总的来说:为什么?您可以只使用本地版本(在特定用户和虚拟环境上)。这种方法要好得多,然后安装包(与许多问题相关,例如在某些情况下无法升级系统python)。

标签: python git debian packaging debian-packaging


【解决方案1】:

Debian 软件包应该是自包含的。您不知道在安装软件包时远程 Git 服务器将存在并且它将包含您想要的内容(例如,它们可能已被删除或替换为恶意内容)。你甚至不一定知道那时你会有网络连接。

即使在您的环境中,您确实知道 Debian 软件包不会这样,所以您通过 Git 下载并使用 pip 生成的文件不会被您的软件包删除,而在用户的系统。这意味着未来的软件包安装可能会由于这些剩余的垃圾而中断,从而导致难以调试的错误。

可能使用postinst 脚本,但绝对不是一个好主意。您需要将依赖项打包到另一个 Debian 包中,或者使用开发者页面中的现有包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-18
    • 2022-11-11
    • 2014-06-24
    • 1970-01-01
    • 2012-02-15
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多