前几天更新ubuntu的时候,突然失败,仔细一看,是卸载老版本的gzip时候出了问题。错误信息:
install-info: No dir file specified; try --help for more information.
试了多个常用的手动卸载方法都没法搞定,于是求助google,很快找到答案。是GNU版的install-info代替了debian版的install-info造成的问题,覆盖回来就OK了。
不过作者分析问题的方法很值得学习,原文在blogspot上,所以全文转载之。
http://naveendageek.blogspot.com/2009/03/install-info-no-dir-file-specified-try.html
First, the problem.
I was trying to do sudo apt-get upgrade when it stopped on me giving this error
Setting up findutils (4.4.0-3) ...
install-info: No dir file specified; try --help for more information.
dpkg: error processing findutils (--configure):
subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
findutils
W: No priority (or zero) specified for pin
E: Sub-process /usr/bin/dpkg returned an error code (1)
Well, I tried googling it up, without considerable success. Finally, I found this on Debian Bug report logs.
Apparently, there are packages named install-info. One, a GNU version, another, a Debian provided package.
The-Matrix% whereis install-info
install-info: /usr/sbin/install-info /usr/local/bin/install-info /usr/share/man/man8/install-info.8.gz
The-Matrix% /usr/sbin/install-info --version
Debian install-info version 1.14.25.
Copyright (C) 1994,1995 Ian Jackson.
This is free software; see the GNU General Public Licence version 2 or
later for copying conditions. There is NO warranty.
The-Matrix% /usr/local/bin/install-info --version
install-info (GNU texinfo) 4.13
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
And they have problems. The idea of replacing the Debian's version with the GNU's has been forwarded, but I'm not sure of the progress. For all I care, the problem hasn't been solved.
As the link provided says, "It is not Debian's fault if someone has GNU's install-info in
$PATH before /usr/sbin/install-info - don't mess with the packaging system,
you'll just get in trouble."
Now, the solution.
Get the /usr/sbin into the $PATH variable before /usr/local/bin, or essentially, do something that would get dpkg to find the Debian's version of install-info. I did the latter, leaving $PATH as it was. Just renamed the GNU's version of install-info
The-Matrix% sudo mv /usr/local/bin/install-info /usr/local/bin/install-info-gnu
And it works. ;)