![当某些 gnu 软件的最新版本无法通过 apt-get 获得时,“正确的做法”是什么](https://linux22.com/image/1008137/%E5%BD%93%E6%9F%90%E4%BA%9B%20gnu%20%E8%BD%AF%E4%BB%B6%E7%9A%84%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20apt-get%20%E8%8E%B7%E5%BE%97%E6%97%B6%EF%BC%8C%E2%80%9C%E6%AD%A3%E7%A1%AE%E7%9A%84%E5%81%9A%E6%B3%95%E2%80%9D%E6%98%AF%E4%BB%80%E4%B9%88%20.png)
我运行的是 Ubuntu 16.04,需要使用 gddrescue 包中的 ddrescue。(注意:这与 ddrescue 包中的 dd_rescue 完全不是同一款软件)。通过 apt-get 可获得的最新版本是 1.19,通过 apt-get 可获得的适用于任何 ubuntu 版本的最新版本是 1.22。但是,gnu.org 可获得的最新版本是 1.23,我想运行最新版本。我的问题是:
我可以轻松地从 ftp.gnu.org/ddrescue/ddrescue-1.23.tar.lz 构建最新版本,但是一旦我这样做了,是否有某种方法可以将其安装到我的系统上,以便 apt-get“知道”它?例如,如果我使用的某个存储库中出现了 1.20,我不希望 apt-get“升级”到这个版本,等等。
如果我将此软件的构建版本转换为 apt-get 可安装包并将其贡献给相应的存储库,那么这样做是否“得体/正确/良好/友好”?我无法想象这有多难,尽管我可以想象这可能有点麻烦,而且出于安全原因,随机的未知用户通常不允许上传已建立软件包的升级。
如果这是允许的贡献,有人可以告诉我 a. 制作 apt-get 包的官方说明?以及 b. 提交该包的官方说明吗?
我运行的是 Ubuntu 16.04,但我敢打赌,ddrescue 对于基于与该 Ubuntu 版本相同的 Debian 的任何发行版的构建都是相同的。我是否应该尝试为该 Debian 贡献一个软件包?
谢谢
答案1
您可以使用 checkinstall 从源代码构建它,请阅读此 wiki 页面以了解详细信息:https://wiki.debian.org/CheckInstall
TL;DR checkinstall 创建一个 .deb 包,然后您可以通过 apt 或 dpkg 将其卸载。