如果我创建一个FOSS命令行实用程序(即应用程序而不是库)并且我想将其作为包分发以方便安装,通过:
进行此更好的做法NB。如果您认为没有一般正确的做法,而是在某种情况下,其中一种或另一种方法明显最佳,那么这些情况又是什么呢?
答案 0 :(得分:1)
根据this blog entry,您应该
的主要原因从不在Debian系统上使用setuptools / ez_setup在系统范围内安装Python模块
是
您可以在不同的安装路径中使用相同的Python模块的不同版本(通过easy_install
和aptitude
安装)
没有easy_uninstall
。 (但是,pip
似乎可以执行此操作:How do I remove packages installed with Python's easy_install?)
这同样适用于CLI工具,它也是一种(Python)模块。
当然,easy_install
的打包所需的工作量少于所有系统包管理器的打包工作量。但是,为什么不用easy_install
打包工具并询问熟悉特定目标包装的人? (对于Debian,您可以尝试使用以“[needs-packaging]”开头的主题向submit@bugs.debian.org
发送电子邮件。)
让我仅从我作为用户的有限经验 - Python和Debian / Ubuntu来讲述。当我最终从Windows切换到Ubuntu时,其中一个主要原因是几乎所有为Debian打包的软件的无痛安装。第一个过渡期间的一个问题是:
“最新的多向差异工具是什么?好吧,有融合和弥漫。让我们看看......”
sudo apt-get install meld diffuse
“好的。这个剪贴板管理器叫做Parcellite?”
sudo apt-get install parcellite
“我喜欢任务教练。他们有吗?”
sudo apt-get install taskcoach
“现在为什么svn
没有开箱即用?”
sudo apt-get install svn
... (some error)
apt-file search svn
... (tl;dr)
apt-file search svn | grep /svn$
sudo apt-get install subversion
为了方便包装这么多。请注意,至少提到的前两个工具是纯Python工具,但我不关心 - 系统包管理器为我做了一切。如果这是唯一的选择,我甚至可以使用easy_install
安装它们,但是我可以使用easy_install
了解系统范围安装的风险,并且会丢弃它。
答案 1 :(得分:0)
在我看来,用户对其分发方式感到满意的应用程序所遵循的程序大致如下:
举个例子:
可能有比这更好的例子。此外,到目前为止,我的结论只是观察性的:我没有找到明确规定这一决策流程的参考资料。因此,我欢迎更全面的答复。
NB。流程图的代码为online,以防您希望根据自己的答案进行调整。为了能够使用它,您需要一个有效的LaTeX安装。