![编译程序:: 如何处理以前的程序?](https://linux22.com/image/1108735/%E7%BC%96%E8%AF%91%E7%A8%8B%E5%BA%8F%3A%3A%20%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%E4%BB%A5%E5%89%8D%E7%9A%84%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我正在尝试进入开源开发的世界,并且有一个问题:
每次我想编译最新版本时,我通常都会下载 tar 包并进行编译。但是,最后我得到的是同一软件的两个版本。一个通过 sudo apt 获得,另一个通过编译获得。我该如何处理这个问题?
我应该删除 sudo apt 并保留开发版本还是让它们都保留?
另外,我知道这是一个愚蠢的问题,但我如何确保我的代码是最新的?我是否必须每天下载(或签出)夜间版本并进行编译每天?
答案1
如何处理不同版本取决于您。这取决于软件的类型。
是的,如果您选择自己编译软件,则必须手动更新。这意味着下载并应用新源代码。如果程序是用编译语言编写的,则在更改其源代码后,您需要重新编译该程序。
但是,您永远不必在 apt-get 版本和自编译版本之间做出选择。无论如何,在安装软件之前,您应该打包并安装它。您肯定想要获取并学习checkinstall
。它非常易于使用。sudo make install
您可以执行 ,而不是sudo checkinstall
。然后它会要求您填写有关软件包的表格,然后它会安装该软件包。
这听起来似乎需要付出一些努力。事实也确实如此。不过,还是有办法彻底改善这种情况的。
- 保留您自己的本地代码分支。
- 仅下载自您从上游拉取以来发生的更改。
- 如果您的分支中还没有 deb 打包信息,请将其添加到其中。这样,您可以轻松地保持其最新状态。
- 休息一下,真正体会一下分叉到底是何等激进的一步。您的分支和上游主干之间的变化越大,您需要手动执行的工作就越多。
- 编写脚本来自动执行上述任务。
- 保留一个PPA,以便您自己和其他人更轻松地安装和使用编译后的软件。
Launchpad 可以为您执行上述任务,因此您可以用最少的努力获得自己的每日仓库。这称为构建配方您仍然需要从上游主干分支,与您自己的主干合并,然后将新主干推送到 Launchpad。这很好,因为无论如何您都希望查看上游代码更改。
因此,这需要更多的学习,但一旦正确设置,您每天就可以省去大量的工作。花些时间好好学习是值得的。即使要花几周时间才能真正适应它,你也应该这样做。