我需要将现有用户从一个或多个 PPA 转换到不同的 PPA,因此问题是如何以尽可能小的影响用户的方式实现转换自动化。
更确切地说:
我有以下 PPA:PHP 5.5和PHP 5.6它使用 Xenial 之前使用的旧式 PHP 打包,并且拥有相当多的用户。
现在我制作了一个新的 PPA,其中包括PHP 5.5、PHP 5.6 和 PHP 7.0我希望旧 PPA 的用户能够切换到这个新 PPA。我有一些关于如何实现这一目标的想法,但我希望从 Ask Ubuntu 社区获得更多意见。
请通过评论、直接编辑以下答案来贡献您的想法或添加您自己的建议。
答案1
选项 3——自动添加新的 PPA
这类似于 2,但php5-common
会自动添加新的 PPA,因此新软件包将在下次运行后可用apt-get update
。Debconf 可能会询问用户是否希望自动添加 PPA,或者他们自己添加。
- 优点:
- 只需一个存储库即可处理
- 无自动转换
- 用户可以准备过渡计划
- 软件包已准备好立即安装
- 从同一命名空间添加 PPA 可能会完美运行
- 缺点:
- 无论你如何努力,有些用户还是会错过公告
- 自动添加额外的 PPA 似乎存在安全风险
- 从不同的命名空间添加额外的 PPA 需要放入额外的 GPG 密钥
/etc/apt/trusted.gpg.d/
,这似乎也存在安全风险
答案2
选项 2——制定弃用计划并明确告知用户
- 优点:
- 只需一个存储库即可处理
- 无自动转换
- 用户可以准备过渡计划
- 缺点:
- 无论你如何努力,有些用户还是会错过公告
- 有人会说:“请不要这样做”
- 无自动转换
答案3
选项 1——不采取任何行动
- 优点:
- 用户很高兴
- 缺点:
- 每个重复的源包都必须有两个版本的构建脚本
- 负担过重且不快乐的 PPA 维护者
答案4
选项 4——全自动过渡
这类似于选项 3,但添加了虚拟包来替换旧包php5*
并提取新包php5.6*
- 优点(包括选项 3 的优点):
- 如果一切按预期进行,这可能是最好的选择,因为用户无需做任何工作即可获得新的软件包
- 缺点(包括选项 3 的缺点):
- 切换将删除人们对旧配置文件所做的更改,或者转换将需要一些复杂的维护脚本来将旧配置移动到新位置
- 虚拟包将需要至少携带一些配置来设置 FPM 套接字和旧名称,以免破坏与旧设置的兼容性(使用 update-alternatives 来设置
/usr/bin/php5
指向/usr/bin/php5.6
)