Ubuntu 16.04更新grub-pc提示的错误信息:
$ sudo aptitude upgrade
下列仅部分安装的软件包将被配置:
grub-pc
将不会安装,升级或者删除任何软件包。
0 个软件包被升级,新安装 0 个, 0 个将被删除, 同时 0 个将不升级。
需要获取 0 B 的存档。 解包后将要使用 0 B。
正在设置 grub-pc (2.02~beta2-36ubuntu3.10) ...
/var/lib/dpkg/info/grub-pc.postinst: 行 703: 未预期的符号 `fi' 附近有语法错误
dpkg: 处理软件包 grub-pc (--configure)时出错:
子进程 已安装 post-installation 脚本 返回错误状态 2
在处理时有错误发生:
grub-pc
E: Sub-process /usr/bin/dpkg returned an error code (1)
Failed to perform requested operation on package. Trying to recover:
正在设置 grub-pc (2.02~beta2-36ubuntu3.10) ...
/var/lib/dpkg/info/grub-pc.postinst: 行 703: 未预期的符号 `fi' 附近有语法错误
dpkg: 处理软件包 grub-pc (--configure)时出错:
子进程 已安装 post-installation 脚本 返回错误状态 2
在处理时有错误发生:
grub-pc
可以看出是/var/lib/dpkg/info/grub-pc.postinst 的703行 fi 语法异常。
跟703行对应的if语句是699行:
if dpkg --compare-versions "$2" lt-nl 2.02~beta2-36ubuntu3.10 then
仔细观察,发现then前缺少一个";",所以修改为:
if dpkg --compare-versions "$2" lt-nl 2.02~beta2-36ubuntu3.10; then
即可重新完成upgrade操作。