Ubuntu 16.04更新grub-pc提示脚本/var/lib/dpkg/info/grub-pc.postinst 执行错误

错误信息:

$ 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操作。

原文地址:https://www.cnblogs.com/wzc0066/p/6888141.html