迅雷协议与BASE64算法

    BASE64算法是一个可逆的算法,所以可以用来进行简单的加密!在Windows上使用的迅雷,它的协议地址就是一个例子!
我们在下载一些网络资源的时候,常常会见到类似于如下的链接地址:
        thunder://QUFodHRwOi8vaGkuYmFpZHUuY29tL3lqc3dvcmQvWlo=
    在Windows中如果安装了迅雷,就可以正确解析这样的地址,其实这样一串字符就是用BASE64算法经加密后得到的,下面我用“http://hi.baidu.com/yjsword/”为例说明一下整个加密和解密的过程(当然,我这个例子不是一个合法的可下载的资源)!

加密:
在完整的下载链接前冠以“AA”,后缀以“ZZ”:
AAhttp://hi.baidu.com/yjsword/ZZ
用BASE64算法进行加密,得到:
QUFodHRwOi8vaGkuYmFpZHUuY29tL3lqc3dvcmQvWlo=
在前面加上迅雷自己的协议头:
thunder://QUFodHRwOi8vaGkuYmFpZHUuY29tL3lqc3dvcmQvWlo=
大功告成!

解密:
把以上过程“倒行逆施”一下即可:
去掉迅雷协议头;用BASE64算法解密;去掉“AA”、“ZZ”!

BASE64算法

    BASE64算法是一个常见的加密算法,可以实现对文本的加密,据说还可以将二进制的文件转换成文本文件,通常电脑中的所有的文件都是以二进制流的形式存储在硬盘上的,这样一来,也许所有的文件都可以转换为文本了吧:)!不管怎么说,其转换的算法都是想同的,下面以简单的ASCII文本为例,介绍一下BASE64算法的转换过程!
    我们知道通常的计算机系统当中,一个字节是由8个二进制位组成的,例如“A”的ASCII编码值是十进制数的65,转换成二进制数就是“01000001”,而BASE64算法就是在这样的二进制的基础上进行编码的。算法首先取3个字节的数据,转换成二进制,我们就用可爱的企鹅举个例子吧:
        “TUX”
转换成二进制:
        “01010100 01010101 01011000”
注意:这里每个字节间的空格实际上是不存在的
这样我们就得到了8*3=24个二进制位组成的序列,然后再将这24个位每6个分一组,分成24/6=4组:
        “010101 000101 010101 011000”
将这四个分组高位补零,形成可以转换为一个字节的8位:
        “00010101 00000101 00010101 00011000”
再将这四个字节转换成十进制数:
        “21 5 21 24”
接下来我们要构建一个编码表:
        0    A     17 R     34 i     51 z

        1    B     18 S     35 j     52 0

        2    C     19 T     36 k    53 1

        3    D     20 U    37 l   54 2

        4    E     21 V     38 m    55 3

        5    F     22 W    39 n    56 4

        6    G     23 X    40 o    57 5

        7    H     24 Y    41 p    58 6

        8 I     25 Z     42 q    59 7

        9    J     26 a     43 r    60 8

        10 K     27 b     44 s    61 9

        11 L     28 c     45 t     62 +

        12 M     29 d    46 u    63 /

        13 N     30 e     47 v    (pad) =

        14 O     31 f     48 w

        15 P     32 g     49 x

        16 Q     33 h     50 y

用刚才我们得到的四个十进制数在表中查到相应的字符值:
        “VFVY”
这样就完成了编码过程,得到了加密后的文本!
    因为在编码过程中把3个8位的二进制数实际上转换成了4个6位的二进制数,而6位的二进制数只能表示0~(2^6-1)这个区间内的64个数,所以该算法被命名位BASE64算法!
    可是这里就有一个问题了,如果待加密的数据的长度不是3的整数倍怎么办,我们怎么做到每次取3个数进行加密呢?
        例:加密“Linux”
        =>“01001100 01101001 01101110 01110101 01111000 (pad)”
用(pad)来暂时补齐3的整数倍个字节;
        =>“010011 000110 100101 101110 011101 010111 1000(00) (pad)”
注意:最后两个“0”是补上的,保证每个分组6位数;
        =>“00010011 00000110 00100101 00101110 00011101 00010111 00100000 (pad)”
        =>“19 6 37 46 29 23 32 (pad)”
        =>“TGludXg=”
这样就完成了编码!
    其实“(pad)”就是个记号,用了几个“(pad)”,就在末尾补几个“=”!因此很多编码后得到的字符串都是以一个或两个“=”结尾的,这也是可以识别BASE64编码的一个重要的特点!

发行注记──HysBlue Manager(unstable)

    HysBlue Manager(海之蓝管理器)是一个基于Linux的图形化蓝牙设备管理器。用C语言以及GTK+2.0库写成,因此是Gnome的一个图形前端程序!

    本程序依赖于bluez-utils和gnome-bluetooth两个软件包,因此使用本程序前请确保您的系统中已经安装了上述软件包,本程序的功能其实就是调用上述两个软件包中的程序来实现蓝牙设备的扫描、接受以及发送文件。本程序所加强的功能在于蓝牙设备的管理──把扫描到的蓝牙设备的名称和设备地址保存在一个XML文件中,下一次需要交换文件的时候就无须重新扫描设备,只要用界面中的“打开”按钮就可以加载一个以前保存过的XML设备文件,再选中一个设备就可以向设备发送文件了!
本程序以源代码和二进制两种形式提供,编译时请保证bluez-utils、gnome-bluetooth、libgtk2.0-dev和libxml2-dev已经安装在系统中,解压代码文件,进入解压后的目录,直接执行“make”即可完成编译。如果您无法完成编译或者您需要使用二进制的程序,请直接运行程序目录中的“blue”程序即可!

项目主页:http://code.google.com/p/hysblue/
作者主页:http://hi.baidu.com/yjsword/

期待您的宝贵意见!

马克.沙特沃兹【译】

    原文出自:http://www.ubuntulive.com/cs/ubuntu/view/e_spkr/2669

    Ubuntu/Canonical有限公司创始人。
    马克.沙特沃兹是一位热衷于技术、改革和太空飞行的非洲企业家。

    他创建了HBD风险基金──一个位于南非的投资公司,以及沙特沃兹基金会──一个非盈利性的组织,致力于南非社会,尤其是教育方面的改革。目前他居住于伦敦,在那儿他是一名Ubuntu社区的积极分子,专注于创建一个对每个人都能够通用的、可以自由使用的高质量的桌面软件环境。

    沙特沃兹出生于尘埃密布的掘金之乡──南非的Welkom,成长于风景如画的开普敦。他对技术的热忱初次展现于他对电脑游戏的热爱,直到今天也是这样。当他在开普敦大学的金融和信息系统专业攻读商业科学学位时,他第一次接触到了Internet,很快对它所能带给商业和社会的变革产生了浓厚的兴趣。

    1995年,在开普敦大学的最后一年,沙特沃兹创建了Thawte咨询公司,经营Internet咨询业务。公司的重点很快转移到了电子商务的互联网安全领域,Thawte公司成为了美国以外的第一个提供全面的电子商务安全的Web服务商。这将Thawte带入了公钥基础设施领域,这是所有加密和认证互联网事务的基础。Thawte是第一个通过网景和微软双方认证的可信赖的第三方Web站点证书的公司之一,而且很快确立了自己在使全世界的公司接受Web安全事务领域的领导地位。到1999年,Thawte已经成为了成长最快的互联网证书认证机构,主导了美国以外的证书认证市场。1999年12月,沙特沃兹将Thawte卖给了VeriSign,并开始寻找新的挑战。

    经过了1999年的那些令人眼花缭乱的日子之后,他组织了一个新的项目团队,叫HBD,这个名字来源于一句成语“Here Be Dragons”──过去常用来描述那些在古老的地图上没有被标注出来的区域。HBD是一个风险基金公司,旨在投资南非的那些有创新而且有潜力能够服务于世界市场的公司。HBD已经投资了数家分别涉足不同业务领域的公司,如软件、制药、电子以及移动电话服务。除了创始人之外,沙特沃兹还是公司的非执行董事。

    风险资本对社会的发展起到的作用和对经济的发展起到的作用同等重要,怀着这样的一种期待,沙特沃兹创立了一个非盈利组织来支持南非的教育创新。沙特沃兹基金会为那些能够给部分教育系统带来巨大进步并且希望提高南非教育的质量和影响的项目提供资金支持。基金会在南非的9个省全部都做过工作,着眼于教师、小企业以及个人。基金会同时也提倡开源软件在教育以及发展中国家之中扮演角色。

    2002年的四月,沙特沃兹实现了人生的一个理想──飞向太空。他花了一年的时间为此努力,包括:在俄罗斯Star City的为期七个月的常规训练,差不多同样长时间的体能测试,科研计划的规划,以及协调。他毫无疑问地成为了太空项目中的非洲第一人──许多人梦寐以求并且充满挑战、富于激情的事业!他作为Soyuz TM-34上的一名成员,从Kazakhstan的Baikonur起飞,两天后停靠在国际空间站。他的工作包括:关于离子散射能谱的为期八天的工作;领导一个南非的科学试验工作以及在撞回地球前体验不同寻常的失重环境。从那以后,他就开始给南非各地的小学生做巡回演讲,分享他的经历以及对科学、数学还有技术的兴奋。他的关于科学和数学的演讲吸引了附近2000所学校的超过100000名小学生。并由此催生出很多基于Hip2BSquare品牌的创新,旨在使那些想在将来选择数学和科学专业深造的孩子们对这些学科更加感兴趣。

    投身不同的项目,沙特沃兹始终关注于技术领域,尤其是软件和网络,并不断寻找新的想法和机遇。

    2004年初,沙特沃兹建立了Ubuntu项目,一个致力于创建一个对全世界都可自由使用的高质量的桌面软件工作环境的项目。项目聚集了最好的自由软件,并创造了一大批用于自由软件开发者的独一无二的工具,例如:Bzr版本控制系统和Launchpad.net。该项目的子项目包括满足学校以及特殊地区和行业领域需要的桌面环境,如:Edubuntu和Kubuntu。

在clist中获取所选行的索引

    clistGTK编程当中使用频率很高的一个控件,我们常常需要在clist中排列出若干条“记录”项,用户通过使用鼠标来选择其中的一项,并对该数据项进行操作,一个最先遇到的问题常常是:我怎么知道用户选择了列表中的哪一项?换句话说,用户选择了第几行的数据项?

    查遍API Manual,觅之不得!

    其实在Manual里已经有答案了。只是相关内容不在接口(Implemented Interfaces)部分,而是在信号(Signals)部分里。

    这里用到的是“select_row”信号,原型如下:

void user_function

GtkCList *clist, gint row, gint column,GdkEventButton *event,gpointer user_data)

    函数说明:

This signal is emitted when the user selects a row in the list. It is emitted for every row that is selected in a multi-selection or by calling gtk_clist_select_all().

clist : The object which received the signal.

row : The row selected.

column : The column where the selection occured.

event : A GdkEvent structure for the selection.

user_data : user data set when the signal handler was connected.

    所以我们只要为我们的clist的“select row”信号连接一个回调函数,就可以从中得到关于所选行的行、列信息了。

    一个简单的完整的例子如下:

#include <gtk/gtk.h>

int main(int argc,char *argv[])

{

GtkWidget *main_window,*clist;

gchar *title[2]={"title1","title2"},*item[2];

void selection_made(GtkCList *,gint,gint,GdkEventButton *,gpointer);

gtk_init(&argc,&argv);

main_window=gtk_window_new(GTK_WINDOW_TOPLEVEL);

g_signal_connect(G_OBJECT(main_window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);

gtk_window_set_default_size(GTK_WINDOW(main_window),300,300);

clist=gtk_clist_new_with_titles(2,title);

g_signal_connect(G_OBJECT(clist),"select_row",G_CALLBACK(selection_made),NULL);

gtk_clist_set_column_width(GTK_CLIST(clist),0,150);

gtk_clist_set_column_width(GTK_CLIST(clist),1,150);

gtk_container_add(GTK_CONTAINER(main_window),clist);

item[0]="Row 0,column 0";

item[1]="Row 0,column 1";

gtk_clist_append(GTK_CLIST(clist),item);

item[0]="Row 1,column 0";

item[1]="Row 1,column 1";

gtk_clist_append(GTK_CLIST(clist),item);

gtk_widget_show_all(main_window);

gtk_main();

return 0;

}

void selection_made(GtkCList *clist,gint row,gint column,GdkEventButton *event,gpointer user_data)

{

printf("You have chosen:row %d,column %d.n",row,column);

}

我从Debian转向Ubuntu的十个理由

  时间是419号晚,刚刚从论坛看到Ubuntu 7.04(Feisty)发布了,大概一个多礼拜前,Debian发布了3.1R6 (Sarge)的升级版和4.0(Etch)稳定版,我用Ubuntu差不多有一个月了,对它的稳定和易用十分满意,所以就目前来看,我不太可能再去用Debian了,但是作为一个完全自由的、非商业的发行版,我会一直关注它的。

1、对硬件的良好支持

一个典型的例子就是Debian对显卡的支持很不理想,包括NvidiaAti,在没有安装显卡驱动程序的情况下甚至无法启动X服务器,而值得称道的是,Ubuntu竟然能识别我的MOTO E398手机;

2、继承了Debian的优良血统,比RedHat先天优越的维护方式

以前用RedHat的时候,常常会被没完没了的依赖关系弄得焦头烂额,有了APT,一切变得简单了,而且即便是dpkg命令也比rpm命令更加上手、好用;另外“新立得”也比Fedora里的包管理器强大得多;

3、更多预编译的软件包

虽然用源代码编译软件很酷,但是当你用三十分钟编译的程序别人只需三十秒就能完成的时候你也许就不会这么想了,而很多程序都优先提供为Ubuntu优化的deb和为Fedora优化的rpm的预编译安装包;

4、更多、更完善的社区及文档支持

UbuntuWiki包含了比Debian的官方手册更多、更全面的资料;另外Ubuntu的社区也十分地活跃;

5、完善的本地化及社区建设提供了很强的可参与性

想为文档的翻译贡献一些力量吗?UbuntuDebian更加容易使你融入进去;

6、更新的应用程序,更人性化的GUI

虽然CLI更加稳定,但GUI更加易用,精制的GUI会使得Linux更加适合桌面使用;

7、更快地更新速度

Linux的桌面应用还远远地不够成熟,应用程序的数量和质量还远远不够满足我们更多的要求,期待着更新、更稳定、功能更全面更新总是一件令人愉快的事,20个月或者更久的对新版本的期待也许不能够满足Linux桌面蓬勃的发展现状;

8、可用的Wine

这对于我而言十分重要,因为南京电信的宽带似乎只能用IE登录,而且使用网上银行也需要IE,我在Debian上并没有成功运行Wine的经验,无论是编译源代码还是安装预编译的包,现在回想起来,不排除是由于WineSCIM相冲突的原因,尚有待验证;

9Feisty中可用的LightScribe程序

刻录机的光雕程序在Feisty的测试版上已经可以识别出我的BenQ DW 1655刻录机了,等待正式版上的测试;

10、支持MultiSession格式的DVD

这意味着以前在Windows下用Nero分多区段(MultiSession)刻的电影光盘可以用了,而这至少在Sarge(因为无法运行IE上网,我一直用的是3.1R2)上还是件无可奈何的事情,多了几张可用光盘,少了几个杯垫 :)

安装Grub

    昨天在安装Grub进MBR的时候,记错了一条命令,又弄坏了硬盘分区表,险些再一次丢掉硬盘上面的所有数据!
    因此我觉得有必要把安装方法记录下来──尽管整个安装只有两条命令!
    首先引导系统进入Grub的控制台界面,这有很多方法:用“深山红叶”之类的工具光盘;98启动盘+Grub For Dos;又或者是显示Grub系统选择菜单时按“C”。
    然后执行以下命令(注意命令和参数之间的空格)
        root (hd0,6)    //指明Grub安装在第一块硬盘的第3个逻辑分区,(hd0,6)相当于“hda7”,这应该是你的“/boot”目录所在的位置。
        setup (hd0)        //指定安装的位置是第一块硬盘的MBR
重启即可!

HOWTO: 使用ntfs-3g对NTFS文件系统读/写支持【译】

说明 :

LinuxNTFS分区的支持总是困扰着用户。相关计划已经存在若干年但始终处于测试阶段, 而且总是声称存在安全性问题。2006714, linux-ntfs开发小组的一位开发人员, Szabolcs Szakacsits, 通过发布一个新的驱动程序:ntfs-3g解决了这些困扰,并且声称能完全实现所有NTFS分区的读/写支持。在成百上千的用户经历了几个月成功地测试之后,ntfs-3g现在已经完全稳定了!

关于ntfs-3g的更多信息 : http://www.ntfs-3g.org/

现在你一定很想尝试一下这个伟大的新特性。那么我们就开始吧!

开始之前 : 请认真阅读本说明, 不要像许多人所做的那样只是做一些简单的复制/粘贴。我提出了两种方案来配置ntfs-3g, 如果你没有阅读说明,你将会完成两次操作(千万别笑,这种事发生地比你想象的要多)

1. 设置你的软件源 :

为了获取最新的ntfs-3g, 你首先要向你的source.list中添加一个软件仓库. 打开终端,输入:

代码:

gksu gedit /etc/apt/sources.list

在文件末尾,添加下列镜像站点中的一个:

警告: 此软件仓库不包括针对amd64的软件包. 参考本文末尾关于amd64用户章节以获取更多信息。

针对 DAPPER :

代码:

deb http://flomertens.free.fr/ubuntu/ dapper main main-all

deb http://ntfs-3g.sitesweetsite.info/ubuntu/ dapper main main-all

deb http://flomertens.keo.in/ubuntu/ dapper main main-all

针对 EDGY :

代码:

deb http://flomertens.free.fr/ubuntu/ edgy main main-all

deb http://ntfs-3g.sitesweetsite.info/ubuntu/ edgy main main-all

deb http://flomertens.keo.in/ubuntu/ edgy main main-all

main通道包含了最新的ntfs-3g包以及更新了的fuse包。

main-all通道包含了修改了的和非官方版本的pmount hal (只针对dapper),使ntfs-3g有更好的桌面集成性,从而可以在外围设备上使用ntfs-3g.程序还提供了配置工具, ntfs-config.如果你想要手动配置你的系统而不需要将其集成进gnome或者kde,你可以禁用这个通道。

2. 安装 :

我的软件仓库里的软件包是经过gpg密钥签名的,使用前你应当执行以下命令:

代码:

wget http://flomertens.keo.in/ubuntu/givre_key.asc -O- | sudo apt-key add -

或者

代码:

wget http://flomertens.free.fr/ubuntu/givre_key.asc -O- | sudo apt-key add -

首先,升级你的系统 :

代码:

sudo apt-get update

sudo apt-get upgrade

请注意这儿需要选择

现在你需要选择自动配置(通过ntfs-config),或者手动配置。

3. 自动配置:

如果你选择了自动配置,请安装ntfs-config.它将自动安装ntfs-3g:

代码:

sudo apt-get install ntfs-config

现在就变得很简单了,只需要通过菜单(在“系统工具”中)或者通过终端,启动ntfs-config:

代码:

gksu ntfs-config

如果你的NTFS分区还没有被配置,它将会让你为挂载点选择一个名字,你只需输入你想使用的名字。

然后打开内部和/或外部设备的写支持就完成了。

3(可选).手动配置:

如果你选择了手动配置,只需安装ntfs-3g :

代码:

sudo apt-get install ntfs-3g

安装顺利结束时,我们需要配置NTFS分区使之被ntfs-3g所挂载。

当外部设备被接入时会被自动配置,所以你不需要为这些设备重复本操作。

首先获取你的NTFS分区的名称,在终端中输入:

代码:

sudo fdisk -l | grep NTFS

在第一列里,你将看到你的NTFS分区的名称。

接下来你需要在/etc/fstab文件中配置它们.我们同样为这个文件做一个备份.打开一个终端,输入:

代码:

sudo cp /etc/fstab /etc/fstab.bak

gksu gedit /etc/fstab

定位到你的NTFS分区的行.如果已经存在,只要将它们改写成类似下面这样:

代码:

/dev/<分区的名称> /media/<挂载点名称> ntfs-3g defaults,locale=zh_CN.utf8 0 0

(根据你的实际情况替换掉<分区的名称> 以及<挂载点名称>)

如果你的分区不在这儿,你首先得在想要挂载它们的地方创建一个文件夹:

代码:

sudo mkdir /media/<挂载点名称>

在文件的末尾参照上例那样添加一行。

提示:你可以更改你的locale选项(例如locale=fr_FR.utf8).在终端中执行‘locale -a’查看你的系统支持那些locale.

提示2:如果你想了解更多选项,请参考‘man ntfs-3g’

现在重新挂载所有的驱动器

代码:

sudo umount /dev/<your partition>

sudo mount -a

或者简单地重启

4. 开始使用:

请注意一些要点,

- 开始使用之前,请参阅你不能做什么类别.

- 在这里反馈你在安装或者配置时出现的每一个问题,我会回复你(我回复任何回帖).

- 在这里反馈你在使用当中你所能发现的任何哪怕是很小的问题.正常情况下这应该不会存在,但是它仍然只是个测试产品.

- 在提问之前先看看常见问题章节.

5.(可选)针对自己编译内核用户

如果你自己编译了内核(不是直接来自于软件仓库), fuse很可能没有被包含.请核查:

代码:

modprobe -l fuse

如果返回为空,你需要自己编译.

安装源码:

代码:

sudo apt-get install fuse-source

查看/usr/share/doc/fuse-source/README.Debian了解如何编译.

6. 针对amd64用户:

我的软件仓库不包含供amd64使用的软件包,所以在该架构上使用ntfs-3g

针对dapper,你需要按照那些说明自己编译所需要的包

这将会替换掉第一、第二步,然后做第三、第四步.

针对edgy, ntfs-3g存在于universe,所以你将不需要我的软件仓库, 但是如果要使用NTFS外部扩展设备,你将需要一个经过修改的pmount版本,我的软件仓库中有,按照以下说明安装它:

你不能做什么 :

该驱动当前的局限性

- 访问加密的文件

- 写入被压缩的文件(读取没有问题)

- 改变文件的拥有和访问权限

常见问题 :

* gnome的回收站不支持ntfs文件系统和fat32文件系统,所以当你使用nautilus删除文件时,文件并不会被移至回收站,而是被移至一个掩藏的文件夹,位置在该分区的根目录,名称是“.Trash-<登录名>”,所以要“清空回收站”,你得先显示隐藏文件(<Ctrl><H>),然后在这个目录中使用nautilussuppr功能(<Shift><Suppr>)

* Windows中手动检查你的硬盘分区,chkdsk会报告以下信息:

Cleaning up N unused index entries from index $SII of file 0×9.

Cleaning up N unused index entries from index $SDH of file 0×9.

Cleaning up N unused security descriptors.

这些信息只是一个完全独立于ntfs-3g的优化进程的一部分。不必为此担心。

* 如果当你的外部扩展设备接入计算机后没有显示在桌面上时,这可能意味着错误的配置所导致的挂载失败,或者这是一个“不洁净”的设备。想要知道问题出在哪,你得使用终端挂载使用命令:

代码:

pmount-hal /dev/sda1

当然,用你的设备分区名称代替“/dev/sda1”

如果你不知道怎么做,把终端回馈的信息回帖在这儿。

*如果你的内部设备在启动的时候没有被挂载,在终端中尝试以下命令:

代码:

sudo mount -a

* 需要更多常规问题?请访问ntfs-3gFAQ : http://www.ntfs-3g.org/support.html

ubuntu下离线安装ies4linux

      用了半年多的debian,前两天转移到 ubuntu,7.04还在测试,所以装了6.10(edgy)!
      放弃debian的理由只有一个:不能正常使用wine,无论是预编译的deb包还是下载源码自己编译,都不能正常地使用──至少不能很好地安装IE!这对我来说很重要,南京电信的光纤宽带登录非IE+ActiveX不行,没IE即没网络!经过几天的摸索,参考了ubuntu论坛上的一些帖子,找到了一个离线安装ies4linux的方法,总结一下,漫志于此!
      适用于ubuntu的wine的安装应该是没有问题的,有预编译的 deb包,这个在 http://www.winehq.org上很容易找到,安装一下就行了,注意包的依赖关系,可能需要先装libartsc0包!有一个值得注意的现象,当我成功安装IE后,上网更新SCIM后wine就几乎无法使用了,SCIM似乎和很多程序会发生冲突,建议使用fcitx之类的输入法!
      接下来下载ies4linux,解压后在终端中进入解压目录,执行”./ies4linux”,两次回车,默认不安装IE 5.5 SP2和IE 5.01 SP2,输入”CN”中文,默认安装flash插件,然后安装就开始了,如果这时有网络联接,程序会自动下载所需文件,假如像我一样没有,在终端返回一大堆无法联接的错误信息的时候”Ctrl+c”中断掉它,这时转到能上网的机器或系统上下载这些文件,列出如下:
    DCOM98.EXE
http://download.microsoft.com/download/d/1/3/d13cd456-f0cf-4fb2-a17f-20afc79f8a51/DCOM98.EXE

    mfc40.cab
http://activex.microsoft.com/controls/vc/mfc40.cab

    249973USA8.exe
http://download.microsoft.com/download/win98SE/Update/5072/W98/EN-US/249973USA8.exe

    ADVAUTH.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/ADVAUTH.CAB

    CRLUPD.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/CRLUPD.CAB

    HHUPD.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/HHUPD.CAB

    IEDOM.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/IEDOM.CAB

    IE_EXTRA.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/IE_EXTRA.CAB

    IE_S1.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/IE_S1.CAB

    IE_S2.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/IE_S2.CAB

    IE_S5.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/IE_S5.CAB

    IE_S4.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/IE_S4.CAB

    IE_S3.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/IE_S3.CAB

    IE_S6.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/IE_S6.CAB

    SCR56EN.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/EN-US/SCR56EN.CAB

    SETUPW95.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/SETUPW95.CAB

    FONTCORE.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/FONTCORE.CAB

    FONTSUP.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/FONTSUP.CAB

    VGX.CAB
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/CN/VGX.CAB
    swflash.cab
http://download.macromedia.com/get/shockwave/cabs/flash/swflash.cab
      在你的主文件夹中会有个”.ies4linux”的隐藏文件夹,打开进入”downloads”目录,新建一个”files”文本文件,如果已经有了就打开它,粘贴进如下内容:
        DCOM98.EXE
          mfc40.cab
          249973USA8.exe
          ie6/CN/ADVAUTH.CAB
          ie6/CN/CRLUPD.CAB
          ie6/CN/HHUPD.CAB
          ie6/CN/IEDOM.CAB
          ie6/CN/IE_EXTRA.CAB
          ie6/CN/IE_S1.CAB
          ie6/CN/IE_S2.CAB
          ie6/CN/IE_S5.CAB
          ie6/CN/IE_S4.CAB
          ie6/CN/IE_S3.CAB
          ie6/CN/IE_S6.CAB
          ie6/CN/SCR56EN.CAB
          ie6/CN/SETUPW95.CAB
          ie6/CN/FONTCORE.CAB
          ie6/CN/FONTSUP.CAB
          ie6/CN/VGX.CAB
          swflash.cab

      按照列表中的位置把上面提到的共20个下载文件部署正确,根目录就是当前的”downloads”目录!
在再次运行ies4linux之前还要先安装一个cabextract包,然后就可以重新运行ies4linux进行安装了,安装结束,桌面上会有个IE的快捷方式,双击即可!