因此我需要一些项目方面的帮助,而我对 linux/ubuntu 还很陌生。我有一个自己构建的工具,用于绘制图形并排序来自大型二进制文件和日志文件的有意义数据。
我的问题是,项目的一部分是为该工具构建一个安装程序,以便在 Linux 机器上运行(我可以假设该机器将运行 ubuntu)。我用 Python 为绘图工具做所有事情(不确定这是否有区别)。
我的问题是,我以前从未做过这样的事情,也不知道从哪里开始。我做了一些研究,并在谷歌上搜索了一些教程,但没有什么真正有帮助的,文档也很难理解。我已经阅读了关于使用 py2exe 的文章,但我不确定这是否正是我想要使用的。我的最终目标是能够通过电子邮件将安装程序发送给某人(或将其放在 USB 驱动器上),让他们运行它,安装绘图工具所需的依赖项,然后运行他们运行的程序。
我只是在寻求帮助,迈出正确的第一步,如果有人知道任何好的资源,或者能够指导我完成这个过程,那将是一个巨大的帮助!我听说过一种叫做 autotools 的工具,但我对它了解不多。
提前致谢!
PS:如果这有任何重要性的话,我正在 macbook pro 上构建一切,并在 virtualbox 上安装了 ubuntu。
答案1
这里似乎有两个问题:
- 如何包裹新的软件,因此依赖项也会被安装。
- 如何分发新软件
这两个问题与计算机一样古老,并且已经通过多种不同的方式得到解决。
标准 Debian/Ubuntu 解决方案是deb 软件包托管在 Debian 或 Ubuntu 中存储库。还有其他方法:Pip、PPA、Snaps、github 等。通常,使用标准 deb/repo 方法会遇到最少的麻烦并获得最多的支持。
创建一个 deb 并不容易- 主要是因为创建过程会让你问很多没有简单答案的问题:许可证、依赖版本、文件位置、与其他软件包的冲突等。这些问题确保与其他软件包的广泛兼容性,并防止很多用户问题。AskUbuntu 充斥着不必要的请求,因为打包者偷工减料。
Ubuntu 打包指南是一个很好的起点http://packaging.ubuntu.com/html/packaging-new-software.html
更新计划- 您可能需要发布软件包的新版本来解决错误和更改的依赖项。Ubuntu 六个月的更新周期对于这些更新来说很方便。
创建包后,您可以简单地将其发布到网站(或 GitHub)上,也可以简单地将其邮寄给您的同事。但是,最佳做法是将软件贡献给 Debian。从以下位置开始该过程http://mentors.debian.net。该软件包将在 Ubuntu 下一个六个月发布版本发布前的几个月合并到 Ubuntu 中。
巨大的好处使用 Debian 和 Ubuntu 进行分发的优点包括 apt 中的可发现性、社区的测试和反馈、在 AskUbuntu 等网站上为您的软件包提供的社区支持、Launchpad 中的错误跟踪以及 Alioth 和 Launchpad 中便捷的代码存储和软件包维护工具。