之前装了一个msttcorefonts,由于到sourceforge的网络不通,所以安装没有完成,结果每次装其他的包apt都会烦人得试图完成这个安装,

--14:14:34--  http://umn.dl.sourceforge.net/sourceforge/corefonts/andale32.exe
=> `./andale32.exe'
正在解析主机 umn.dl.sourceforge.net... 128.101.240.209
正在连接 umn.dl.sourceforge.net &brvbar128.101.240.209 ¦:80... 失败
:Connection timed out
已放弃。

--14:14:39--  http://switch.dl.sourceforge.net/sourceforge/corefonts/andale32.exe
=> `./andale32.exe'
正在解析主机 switch.dl.sourceforge.net... 130.59.138.20
正在连接 switch.dl.sourceforge.net &brvbar130.59.138.20 ¦:80... 失败
:Connection timed out。 

andale32.exe: No such file or directory

All done, errors in processing 1 file(s)
dpkg:处理 msttcorefonts (--configure)时出错:
子进程 post-installation script 返回了错误号 1
在处理时有错误发生:
msttcorefonts
E: Sub-process /usr/bin/dpkg returned an error code (1)

很是烦人,搜了一下解决办法,居然都不管用。

自己动手修改了下dpkg的配置文件遂解决:

1. 因为每次试图sudo apt-get remove msttcorefonts的时候,实际上是dpkg --remove出错,然后又试图完成上次剩余的没有完成的apt-get install的工作,所以先要骗它完成install

cd /var/lib/dpkg/info

ls msttcorefonts*  //这里列出了dpkg的msttcorefonts有关的一些配置文件

sudo vim msttcorefonts.postinst

在第二行 set -e 后添上一行 exit 0    保存退出

执行一次或两次sudo apt-get install msttcorefonts ,直到看到“msttcorefonts 已经是最新的版本了。”这样的提示

2. 卸载

sudo vim msttcorefonts.prerm

注释掉以下几行

# Automatically added by dh_installdefoma
FILE='/etc/defoma/hints/msttcorefonts.hints'
if [ "$1" = remove ]; then
test -x /usr/bin/defoma-font && /usr/bin/defoma-font purge-all $FILE
fi
# End automatically added section

注释掉  rm -f `cat /var/lib/msttcorefonts/ms-fonts`  这一行,保存退出

sudo apt-get purge msttcorefonts

3. 删掉defoma里面的hints

sudo rm /etc/defoma/hints/mstt*

4. 删掉可能留下的文件,基本没有留下

sudo rm -fr /var/lib/msttcorefonts
sudo rm -f /etc/defoma/hints/msttcorefonts.hints
sudo rm -fr /usr/share/fonts/truetype/msttcorefonts

sudo rm -fr /usr/share/doc/msttcorefonts

 

 

===================这个问题可以这样解决===================

1.去 http://sourceforge.net/project/showfile ... _id=105355 下载 the fonts final 里面的 andale32.exe arialb32.exe courie32.exe impact32.exe trebuc32.exe webdin32.exe arial32.exe comic32.exe georgi32.exe times32.exe verdan32.exe

2.将 /tmp/ 里面的 msttcorefonts.* 这些目录 rm -r 一下。现在开始 apt-get install msttcorefonts 。

3.在出现如下字符提示的时候:

You are free to download these fonts and use them for your own use,
but you may not redistribute them in modified form, including changes
to the file name or packaging format.
--22:44:46-- http://belnet.dl.sourceforge.net/sou...ts/andale32.exe
=> `./andale32.exe'

迅速将刚才下载的12个 exe 文件 cp 到 /tmp/msttcorefonts.* (也有可能是/tmp/ttf-mscorefonts-installer.*,比如我的就是/tmp/ttf-mscorefonts-installer.2NiOBT)目录里面。注意这个 msttcorefonts.*(ttf-mscorefonts-installer.*) 就是刚刚 apt 时生成的。

这样安装便可顺利完成。

这个问题出现的原因是 sourceforge 的多个镜像里都已经不包含上面的那些 exe 文件了,所以需要手动下载到本地安装。