使用自定义包覆盖Distro包?

Ubuntu 12.04 LTS提供OpenSSL 1.0.1e,但它禁用TLSv1.1和TLSv1.2。 在过去,由于客户端实施的破坏,它是一个互操作决策。 在2014年,它真的不合适,因为客户有时间来解决他们的坏事。 任何剩余的破碎客户都会对大多数符合条件的客户进行处罚。

我想提供相同版本的OpenSSL 1.0.1e,但我想提供[当前]禁用的协议。 我知道我可以创建个人包存档(PPA) ,但如果我可以使用它来覆盖Ubuntu基础包,我不清楚它。

(我也意识到静态链接的客户不会受益于改进的包装)。

如何为Ubuntu中的特定包提供覆盖?

是的,您可以在PPA中提供将安装在标准Ubuntu软件包之上的软件包。 但是,每当新版本发布到Ubuntu时,您都必须花时间使软件包保持最新。 您可能还想检查它是否仍未在Trusty的软件包中启用。 如果它已经在Trusty中启用,那么当2014年4月发布14.04 LTS时,升级可能会更好。 如果它尚未启用,您可能需要通过提交错误报告并订阅它来与Ubuntu安全团队讨论启用它。

您可以通过修复版本号来完成。 例如,如果Ubuntu中的当前版本是1.0.1e-0ubuntu1 ,那么您需要将您的版本指定为1.0.1e-0ubuntu1.1~12.04.1以便在PPA中构建。 附加.1~12.04.1使其高于当前的Ubuntu版本,但低于下一个Ubuntu版本(因此如果Ubuntu中存在安全更新,则优先)。 12.04部分指定它是为12.04构建的,最后的.1是你的内部版本号(如果你犯了一个错误并且需要重建相同的包,你可以将其设置为.2 )。 您还需要在debian/changelog文件中将相应的版本系列代码名称指定为12.04的precise值,但是如果在12.04上构建现有的12.04软件包,则应该默认设置。