Snapcraft 基于操作系统的不同安装要求
我继承了一个python项目,该项目正好由1个python文件组成,设计用于在Linux上安装和运行。我对python知之甚少,对Linux知之甚少 目前Ubuntu、Fedora和Arch有单独的构建过程,分别生成一个DEB文件、一个RPM文件和一个PKG.TAR.XZ文件。然后,用户需要根据其系统经历不同的安装过程 我的首要任务之一是为我们的用户整合和简化这个过程。经过调查,这似乎是一个很好的解决方案。快照存储区似乎需要 不过,我的每种构建类型都取决于不同的需求。例如,DEB和RPM需要Snapcraft 基于操作系统的不同安装要求,snapcraft,Snapcraft,我继承了一个python项目,该项目正好由1个python文件组成,设计用于在Linux上安装和运行。我对python知之甚少,对Linux知之甚少 目前Ubuntu、Fedora和Arch有单独的构建过程,分别生成一个DEB文件、一个RPM文件和一个PKG.TAR.XZ文件。然后,用户需要根据其系统经历不同的安装过程 我的首要任务之一是为我们的用户整合和简化这个过程。经过调查,这似乎是一个很好的解决方案。快照存储区似乎需要 不过,我的每种构建类型都取决于不同的需求。例如,DEB和RPM需要py
python3 sud
,而ARCH需要python sud
。ARCH和RPM想要libappindicator-gtk3
,但DEB想要gir1.2-appindicator3-0.1
和gir1.2-gtk-3.0
我找不到明显的方法将这些条件要求包含在我的setup.pyinstall\u requires
属性中。你将如何着手实现这一点?还是说,我完全走错了方向
当你回答时,请记住我是新手!谢谢 首先,您可以检查它是否类似于Snap。只是稍微好一点
在使用Snap或Flatpak时,您不关心是需要python软件还是需要python软件。结果基本上是一个容器。您只需选择一个在其上构建的运行时,并在那里求解DEP。然后容器(无论是Flatpak的Snap)在每个操作系统上运行——无论是Ubuntu、Fedora还是Arch。它与包管理工具没有任何关系。它是孤立的。经过大量研究后,我发现,由于snap应用程序都是在Ubuntu VM上构建的,所以只需包含所有Ubuntu依赖项,snap过程就会将这些依赖项捆绑到应用程序中。该应用程序将在任何Linux版本上运行。因此,我没有必要尝试在
install\u requires
中编写条件依赖项。我所需要做的就是包含Ubuntu依赖项
通过这次非常有用的演练,我终于得出了这个结论,我自己的测试也证实了这一点:
我希望这对其他人有所帮助。从外观上看,这与Python或setuptools没有多大关系。您命名的依赖项不是Python依赖项,从某种意义上讲,在setuptools
install\u requires
中列出这些依赖项不会让您有任何收获,它们并不指可从中安装的Python项目。但它们似乎是应该从操作系统(Linux发行版)自己的包管理器(apt
,pacman
等)安装的依赖项。听起来正确吗?中华民国,是的,如果我理解你的意思,听起来正确。那你建议我怎么处理?不确定。似乎存在一个依赖项,因此可能可以将此依赖项添加到setuptoolsinstall\u requires
。我认为其他的都在Python生态系统之外,所以我不知道如何声明它们。但我改变了标签,希望能吸引具有这种知识的用户。Flatpak限制了对其他流程的访问。我的应用程序需要这个访问权限。除此之外,我不明白你建议我做什么,关于我必须处理的条件依赖性。。。?