只是为了扩展之前的答案,这里是如何远程执行与接受的答案相同的操作,使用无密码升级通过ssh将您的系统升级到最新版本。这是从
我的博客文章中复制过来的。
所有这些步骤都假设您的软件包仓库正常工作。也就是说,如果您执行apt-get update命令时没有因为版本过旧而出现大量404错误。您需要先解决这个问题,所以请参考
这个答案。
0. 更新所有现有的软件包
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
1. 设置无密码执行
将自己添加到可以使用sudo执行do-release-upgrade而无需输入密码的用户列表中,可以通过执行以下命令来实现
sudo visudo -f /etc/sudoers.d/do-release-upgrade.
并添加以下行,当然要将my-username替换为您自己的用户名:
my-username ALL=NOPASSWD: /usr/bin/do-release-upgrade
2. 开始增量升级
登出并在您的计算机上执行以下命令。它将进行一个无需询问输入(接受所有默认答案)的升级,等待计算机重新启动,然后再次尝试升级。它会一直运行,直到您升级到最新版本为止。
while true; do
ssh my-user@my-server sudo do-release-upgrade -f DistUpgradeViewNonInteractive;
sleep 120;
done
3. 修复配置文件至其先前状态
之后,您需要将备份的配置文件移回到它们先前的位置,因为升级过程已经将默认配置放在了这些位置。
对默认答案不满意吗?
这个人有一种预先准备答案的方法,适用于每个提示,但缺点是您必须知道有多少个提示...
sudo apt-get install grub-emu
? - rubo77sudo mv /etc/apt/sources.list.d /etc/apt/sources.list.d-NO
,因为这样可以解决我进行交互式升级时遇到的99%问题。然后,我会使用Ansible重新填充该目录。 - dannyman/etc/logrotate.d/apache2'
做的一些自定义修改。 - Cerin