【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)

一,软件准备
  1. coreseek4.1 (包含coreseek测试版和mmseg最新版本,以及测试数据包【内置中文分词与搜索、单字切分、mysql数据源、python数据源、RT实时索引等测试配置】)
  2. Mysql源码包 (必须选择与你已安装mysql的版本一致)

  为了避免安装中出现依赖包缺失,你需要打一句鸡血:

yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel
#或
apt-get install make gcc g++ automake libtool mysql-client libmysqlclient15-dev libxml2-dev libexpat1-dev
#更多系统配置请点此传送查看

二,coreseek快速安装

1,安装mmseg3

##前提:需提前安装操作系统基础开发库及mysql依赖库以支持mysql数据源和xml数据源
##安装mmseg
$ cd mmseg-3.2.14
$ ./bootstrap    #输出的warning信息可以忽略,如果出现error则需要解决
$ ./configure --prefix=/usr/local/mmseg3
$ make && make install
$ cd ..

【注意】如果编译mmseg提示cannot find input file: src/Makefile.in失败,可以尝试下面解决方法:

#下面命令提示没有安装,则先安装
aclocal
libtoolize --force 运行后有一个错误,不用管它。
automake --add-missing
autoconf
autoheader
make clean
./configure --prefix=/usr/local/mmseg3

2,安装coreseek

##安装coreseek
$ cd csft-4.1
$ sh buildconf.sh    #输出的warning信息可以忽略,如果出现error则需要解决
$ ./configure --prefix=/usr/local/coreseek  --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql    ##如果提示mysql问题,可以查看MySQL数据源安装说明

#不想麻烦,可以直接使用下面这句
$ ./configure --prefix=/usr/local/coreseek  --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql-includes=《mysql安装目录》/include --with-mysql-libs=《mysql安装目录》/lib
$ make && make install
$ cd ..

【注意】如果出现Sphinx/Coreseek 4.1 执行 buildconf.sh 报错,无法生成configure文件的问题,点此传送解决。值得一提的是vi‘替换所有’小技巧:末行模式下输入“:1,$s/T val = ExprEval ( this->m_pArg, tMatch )/T val = this->ExprEval ( this->m_pArg, tMatch )/g”从第一行开始替换到最后一行

3,测试mmseg分词,coreseek搜索

##测试mmseg分词,coreseek搜索(需要预先设置好字符集为zh_CN.UTF-8,确保正确显示中文)
$ cd testpack
$ cat var/test/test.xml    #此时应该正确显示中文
$ /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml
$ /usr/local/coreseek/bin/indexer -c etc/csft.conf --all
$ /usr/local/coreseek/bin/search -c etc/csft.conf 网络搜索

【注意】

  1,如果输入/usr/local/coreseek/bin/indexer -c etc/csft.conf --all 时报/usr/local/coreseek/bin/indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory 错误,可以通过vi编辑 /etc/ld.so.conf文件来修复这个错,将 /usr/local/MySQL/lib  加到文件到尾部,并保存文件,然后运行ldconfig命令即可。

  2,如果输入/usr/local/coreseek/bin/indexer -c etc/csft.conf --all,报xmlpipe2 support NOT compiled in. To use xmlpipe2, install missing错误,则apt-get install expat-* 或yum install expat-devel*安装后重新编辑安装coreseek。

三,Sphinx配置mysql数据源:

  1,首先,要搞清楚coreseek的bin目录下的 三个主要文件是干嘛的:

  1./usr/local/coreseek/bin/indexer indexer文件,用于建立/更新/合并数据源的索引
   /usr/local/coreseek/bin/indexer -c etc/csft_mysql.conf --all 为csft_mysql.conf配置文件中配置的所有数据源建立索引
  2./usr/local/coreseek/bin/search search文件,用于测试数据源的搜索

   /usr/local/coreseek/bin/search -c etc/csft_mysql.conf 网络搜索 测试csft_mysql.conf配置文件中配置的数据源是否有“网络搜索”这个内容
  3./usr/local/coreseek/bin/searchd searchd文件,负责接受查询、处理查询和返回数据集的服务

   /usr/local/coreseek/bin/searchd -c etc/csft_mysql.conf 通过csft_mysql.conf的searchd配置开启负责接受查询、处理查询和返回数据集的服务
   

  2,再者,搞清楚我们要为mysql中的某个数据库中哪(几)个表建立索引。
  下面以一个案例作为例子讲解:
  一个在线聊天项目,使用了数据库test_qq,以say作为存储聊天内容表,此项目有一个“查找聊天记录”的功能,此表内容基本会达到海量的,因此为了提高查找速度,为表say建立索引(sphinx的数据源),表say有如下结构:

mysql> use test_qq;
Database changed
mysql> desc say;
+---------+------------------+------+-----+---------+----------------+
| Field   | Type             | Null | Key | Default | Extra          |
+---------+------------------+------+-----+---------+----------------+
| id      | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| fromid  | int(10) unsigned | NO   |     | 0       |                |
| toid    | int(10) unsigned | NO   |     | 0       |                |
| content | text             | NO   |     | NULL    |                |
+---------+------------------+------+-----+---------+----------------+

要配置mysql数据源,我们将coreseek安装包/testpack/etc 下的csft_mysql.conf文件复制到coreseek 的etc目录中:
cp /coreseek安装包位置/testpack/etc/csft_mysql.conf /usr/local/coreseek/etc/
修改csft_mysql.conf

 

修改后,先开启searchd后台服务
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf

再执行整体索引
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --all

此时便可以使用search 来测试搜索
/usr/local/coreseek/bin/search -c /usr/local/coreseek/etc/csft_mysql.conf 你好

得出搜索结果,即为配置成功

但是问题来了,indexer索引是一次性的,如果是10:00am执行索引,search就只能搜索到10:00am以前的内容,那如果更多的人在10:00am后发消息,say表中多出的聊天内容行就无法被索引到,search测试也就无法搜索到多出的内容,我们就考虑到增量索引。

?配置增量索引:

  1.在mysql中创建索引记录偏移表sph_say_counter,当执行一次索引后,sph_say_counter表更新该次索引最大id,等下次执行索引时,便从该记录的最大id开始执行索引,执行后再将该次索引最大id记录到sph_say_counter中。如此重复。

    sph_say_counter表结构:

mysql> desc sph_say_counter;
+------------+---------------------+------+-----+---------+----------------+
| Field      | Type                | Null | Key | Default | Extra          |
+------------+---------------------+------+-----+---------+----------------+
| id         | tinyint(3) unsigned | NO   | PRI | NULL    | auto_increment |
| max_offset | int(10) unsigned    | NO   |     | 0       |                |
+------------+---------------------+------+-----+---------+----------------+

  2. 在csft_mysql.conf增加增量索引配置

#增加以下配置
source delta : mysql #此写法为delta继承mysql源中的所有配置,如果子配置中有相同配置,则覆盖父配置
{
        sql_query       =       SELECT id,fromid,toid,content FROM say WHERE id > (SELECT max_offset FROM sph_say_counter WHERE id = 1) #从记录大于max_offset后的数据开始索引
        sql_query_post  =       REPLACE INTO sph_say_counter(id,max_offset) SELECT 1,MAX(id) FROM say #索引后更新最大记录,sql_query_pre是执行查询前执行的语句,sql_query_post是执行查询后再执行的语句
}
index delta : mysql
{
        source          =       delta
        path            =       /usr/local/coreseek/var/data/delta
}

  此时执行增量索引 /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf delta --rotate  后,便可以通过search搜索到多出内容的搜索结果

  可以通过合并索引 /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --merge mysql delta --rotate --merge-dst-range deleted 0 0  来合并mysql源和delta源的索引 (--merge-dst-range deleted 0 0 是为了防止多个关键字指向同一个文档)

  

  为了在执行索引时也可以更新sph_say_counter表,在source mysql内也加入这句:

sql_query_pre           = REPLACE INTO sph_say_counter(id,max_offset) SELECT 1,MAX(id) FROM say

  此时执行 /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --all --rotate 便可以重新建立所有索引并更新sph_say_counter表

  

  到此csft_mysql.conf完整配置为:

 

  3.将执行索引加入到Linux计划任务中,定时执行更新,合并,整体索引 

  为了方便,我们将执行整体索引,增量索引,合并索引分别写到3个shell文件中

cd /usr/local/coreseek/sh
vi all.sh
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --all --rotate

vi delta.sh
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf delta --rotate 

vi merge.sh
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --merge mysql delta --rotate --merge-dst-range deleted 0 0 

  然后,执行crontab -e 写入如下内容

*/1 * * * * /bin/sh /usr/local/coreseek/sh/delta.sh >/dev/null 2>&1 ##每1分钟执行增量索引
*/5 * * * * /bin/sh /usr/local/coreseek/sh/merge.sh >/dev/null 2>&1 ##每5分钟合并索引
30 1 * * *  /bin/sh /usr/local/coreseek/sh/all.sh >/dev/null 2>&1   ##每天的1:30执行整体索引
具体执行时间随自己定义,关于linux计划任务的更多配置,你可以点击此传送查看详细。
关于rotate,可以点此查看详细。

此步骤后,mysql数据源配置基本完毕,详细mysql数据源配置,可以到点此查看,关于配置文件详细解析,可以点此查看
四,PHP使用Sphinx/Coreseek的三种方式:
四-1,使用sphinxapi.php

  在/coreseek安装包/testpack/api目录下提供了PHP的接口文件 sphinxapi.php,这个文件包含一个SphinxClient的类,你可以复制到项目目录下包含使用。

 1 <?php
 2
 3 /*
 4    test_sph.php
 5     SphinxClient类测试
 6 */
 7
 8 $key=trim($_GET[‘key‘]);
 9 echo $key;
10 include(‘sphinxapi.php‘);
11
12 $sp=new SphinxClient();
13 $sp->SetServer(‘localhost‘,9312);
14 $sp->SetArrayResult(true);
15 $sp->SetMatchMode(SPH_MATCH_ALL);
16 $sp->SetSortMode(SPH_SORT_RELEVANCE);
17 $res=$sp->Query($key,‘mysql‘);
18
19 echo ‘<pre>‘;
20 print_r($res);
21 echo ‘</pre>‘;
22
23 if(isset($res[‘matches‘])&&count($res[‘matches‘])>0)
24 {
25     $mysql=new PDO("mysql:localhost;dbname=test_qq",‘root‘,‘123‘);
26     $mysql->query(‘set names utf8‘);
27     $mysql->query(‘use test_qq‘);
28     $sql=‘select * from say where id in(‘;
29
30     foreach ($res[‘matches‘] as $v)
31     {
32         $sql.=$v[‘id‘].‘,‘;
33     }
34     $sql=trim($sql,‘,‘).‘)‘;
35
36     echo $sql;
37     foreach($mysql->query($sql) as $v)
38     {
39         echo ‘<pre>‘;
40         print_r($v);
41         echo ‘</pre>‘;
42     }
43 }
44 else
45 {
46     echo ‘没有记录‘;
47 }

  浏览器输入localhost/test_sph.php?key=搜索关键字   查看搜索结果

四-2,安装php的sphinx扩展

  除了可以直接包含 sphinxapi.php文件,还可以通过安装php的sphinx扩展模块来直接调用SphinxClient,且效率比包含api文件要高,安装sphinx需要依赖libsphinxclient包,因此先安装。

  1,安装libsphinxevent

 1 # cd /coreseek安装包目录/csft-4.1/api/libsphinxclient/
 2 # ./configure  --prefix=/usr/local/sphinxclient
 3
 4 configure: creating ./config.status
 5 config.status: creating Makefile
 6 config.status: error: cannot find input file: Makefile.in   #报错configure失败
 7
 8 //处理configure报错
 9 编译过程中报了一个config.status: error: cannot find input file: src/Makefile.in这个的错误,然后运行下列指令再次编译就能通过了:
10 # aclocal
11 # libtoolize --force
12 # automake --add-missing
13 # autoconf
14 # autoheader
15 # make clean
16
17 //从新configure编译
18 # ./configure
19
20 # make && make install

  2,安装sphinx的PHP扩展

 1 http://pecl.php.net/package/sphinx
 2 # wget http://pecl.php.net/get/sphinx-1.3.0.tgz
 3 # tar zxvf sphinx-1.3.0.tgz
 4 # cd sphinx-1.3.0
 5 # phpize
 6 # ./configure --with-php-config=/usr/bin/php-config --with-sphinx=/usr/local/sphinxclient
 7 # make && make install
 8 # cd /etc/php.d/
 9 # cp gd.ini  sphinx.ini
10 # vi sphinx.ini
11
12 extension=sphinx.so
13
14 # service php-fpm restart

  安装完毕后,你可以使用四-2的 test_sqh.php测试搜索

  

  分页测试:

 1 <?php
 2     header("Content-type: text/html; charset=utf-8");
 3     require("./sphinxapi.php");
 4     $s = new SphinxClient;
 5     $s->setServer("192.168.252.132", 9312);
 6
 7     //SPH_MATCH_ALL, 匹配所有查询词(默认模式); SPH_MATCH_ANY, 匹配查询词中的任意一个; SPH_MATCH_EXTENDED2, 支持特殊运算符查询
 8     $s->setMatchMode(SPH_MATCH_ALL);
 9     $s->setMaxQueryTime(30);                                        //设置最大搜索时间
10     $s->SetArrayResult(false);                                        //是否将Matches的key用ID代替
11     $s->SetSelect ( "*" );                                            //设置返回信息的内容,等同于SQL
12     $s->SetRankingMode(SPH_RANK_BM25);                                //设置评分模式,SPH_RANK_BM25可能使包含多个词的查询的结果质量下降。
13     //$s->SetSortMode(SPH_SORT_EXTENDED);                            //发现增加此参数会使结果不准确
14     //$s->SetSortMode(SPH_SORT_EXTENDED,"from_id asc,id desc");        //设置匹配项的排序模式, SPH_SORT_EXTENDED按一种类似SQL的方式将列组合起来,升序或降序排列。
15     $weights = array (‘company_name‘ => 20);
16     $s->SetFieldWeights($weights);                                    //设置字段权重
17     $s->SetLimits ( 0, 30, 1000, 0 );                                //设置结果集偏移量  SetLimits (便宜量,匹配项数目,查询的结果集数默认1000,阀值达到后停止)
18     //$s->SetFilter ( $attribute, $values, $exclude=false );        //设置属性过滤
19     //$s->SetGroupBy ( $attribute, $func, $groupsort="@group desc" );    //设置分组的属性
20     $res = $s->query(‘@* "汽车"‘,‘main‘,‘--single-0-query--‘); #[宝马]关键字,[news]数据源source
21
22
23     //代码高亮
24     $tags = array();
25     $tags_name = array();
26     foreach($res[‘matches‘] as $key=>$value){
27         $tags[] = $value[‘attrs‘];
28           $company_name[] = $value[‘attrs‘][‘company_name‘];
29           $description[] = $value[‘attrs‘][‘description‘];
30     }
31     $company_name = $s->BuildExcerpts ($company_name, ‘main‘, ‘汽车‘, $opts=array() );        //执行高亮,这里索引名字千万不能用*
32     $description = $s->BuildExcerpts ($description, ‘main‘, ‘汽车‘, $opts=array() );        //执行高亮,这里索引名字千万不能用*
33     foreach($tags as $k=>$v)
34     {
35         $tags[$k][‘company_name‘] = $company_name[$k];    //高亮后覆盖
36         $tags[$k][‘description‘] = $description[$k];    //高亮后覆盖
37     }
38
39     // 高亮后覆盖
40     $i = 0;
41     foreach($res[‘matches‘] as $key=>$value){
42         $res[‘matches‘][$key] = $tags[$i];
43         $i++;
44     }
45
46     $err = $s->GetLastError();
47
48     echo ‘<pre>‘;
49     var_export($res);
50     var_export($err);
51     echo ‘</pre>‘;

  

  更多SphinxClient类的资料,可以参考官方文档

四-3,为 MySQL 5.5.x 编译安装 SphinxSE

  直接安装SphinxSe作为mysql的存储引擎,php的无需作任何改变,即可使用sphinx的全文索引。

#---------------MySQL 5.5 基本设置编译-----------

#以下指令中的VERSION表示MySQL的版本,例如:5.5.8,或者5.5.9
$ tar xzvf coreseek-4.1-beta.tar.gz
$ tar xzvf mysql-VERSION.tar.gz #就是上面下载的mysql源码包
$ cp -R coreseek-4.1-beta/csft-4.1/mysqlse mysql-VERSION/storage/sphinx
#上面语句是将mysqlse文件夹复制到storage文件夹下并更名为sphinx,请注意
$ cd mysql-VERSION
$ cmake . -DCMAKE_BUILD_TYPE=Release -DWITH_SPHINX_STORAGE_ENGINE=1 #如果提示没有命令 先"yum -y install cmake" 安装cmake
#如果上面语句报“Warning: Bison executable not found in PATH”,则安装bison,再运行此语句
#如果提示缺少ncurses库,则 apt-get install libncurses-dev 或 yum -y install ncurses-devel 安装ncurses库后,删除CMakeCache.txt文件,再重新cmake即可

#如要查看cmake可用参数,请执行:cmake . -LH
$ make

#----------将SphinxSE安装到已经安装的MySQL 5.5中-----------

#首先执行:MySQL 5.5 基本设置编译过程
#特别注意:需要选择与当前已安装的MySQL 5.5对应的版本进行编译
$ cp storage/sphinx/ha_sphinx.so /path_to_your_mysql_5.5/lib/plugin
$ mysql -uroot -p???
mysql>install plugin sphinx soname "ha_sphinx.so";
mysql>show engines;
#ENGINE列表显示出SPHINX表示安装成功

测试使用SphinxSe:

#-------------------------测试SphinxSe--------------------------------------
mysql> use test_qq;

mysql> CREATE TABLE documents_sphinxse
-> (
-> id INTEGER UNSIGNED NOT NULL,
-> weight INTEGER NOT NULL,
-> query VARCHAR(3072) NOT NULL,
-> group_id INTEGER,
-> INDEX(query)
-> ) ENGINE=SPHINX CONNECTION="sphinx://localhost:9312/mysql";

#-----------执行sphinxse查询-----------------------------
mysql>SELECT * FROM documents_sphinxse WHERE query=‘网络搜索;mode=any‘;

#--------执行关联SphinxSE查询,获取原始数据信息:-----------
mysql>SELECT dse.*, d.title FROM documents_sphinxse AS dse LEFT JOIN documents AS d USING(id) WHERE query=‘网络搜索;mode=any‘;

五,参考文档

   http://blog.csdn.NET/e421083458/article/details/21529969

  http://www.coreseek.cn/products-install/sphinxse/

  http://blog.csdn.Net/keyunq/article/details/45129867

  http://www.cnblogs.com/yjf512/p/3598332.html

文章来源:http://www.cnblogs.com/GaZeon/p/5327578.html

时间: 2024-10-15 02:53:51

【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)的相关文章

LINUX下中文语言包的安装(转)

在安装盘上已经有各种语言包了,我们只需要找到他们,并安装就可以了.中文的是fonts-chinese-3.02-9.6.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm我用的是6CD的安装盘,第一个包在4of6盘上,第二个在6of6盘上,进入各文件对应目录,运行下面命令:#rpm -ivh fonts-chinese-3.02-9.6.el5.noarch.rpm#rpm -ivh fonts-ISO8859-2-75dpi-1.0-

LINUX下中文语言包的安装

解决Centos 5.8系统不能显示中文的异常: 1.安装如下软件包: fonts-chinese-3.02-9.6.el5.noarch.rpm fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm m17n-db-chinese.noarch 2.软件包的功能: [[email protected] CentOS]# rpm -qpi fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm Name        : fonts-IS

【Eclipse使用方法】Eclipse中安装插件的三种方式

Eclipse也用了很久,但是都没有怎么去研究过怎么安装插件,今天正好在自己新买的本上试了一下.现在将心得写下,以供参考.目前安装Eclipse插件主要有以下三种方式: 在线安装: 以TestNG的安装为例来阐述其安装过程. 第一步:点击菜单栏中“Help”菜单,在下拉列中选择“Install New Software...”.此时会弹出“install”的安装框. 第二步:在弹出的“install”框,选择之前已经建立好的site,如果没有建立好,则可以点击“Add”按钮,弹出一个添加site

linux下中文输入法的安装

今天,在LinuxSLC5.3上安装了中文输入法,过程如下:原文出自[比特网],转载请保留原文链接:http://soft.chinabyte.com/os/102/11459102.shtml 1.安装中文字体库 yum install "font-chinese" 2.安装scim输入法 yum install "scim*" 3.安装scim-lang-chinese,scim-pinyin yum install scim-lang-chinese scim

Linux下WebSphereV8.5.5.0 安装详细过程

Linux下WebSphereV8.5.5.0 安装详细过程 自WAS8以后安装包不再区别OS,一份介质可以安装到多个平台.只针对Installation Manager 进行了操作系统的区分 ,Websphere产品介质必须通过专门的工具Install Managere安装.进入IBM的官网http://www.ibm.com/us/en/进行下载.在云盘http://yun.baidu.com/share/linkshareid=2515770728&uk=4252782771 中是Linu

windows下的txt文件传到Linux下中文乱码问题

之所以出现乱码是因为所压缩的文件中,有的文件是以中文命名.而在windows下中文的编码一般为gbk,而linux下中文的编码一般为utf8,所以在windows下正常打开的文件,到linux下很可能会出现乱码. 解决办法为:使用命令iconv对文件内容编码进行转换.例如我有一个文件"linux常用命令"在windows下打开正常,而在linux下打开则会乱码,办法为在终端输入: iconv -f gbk -t utf8 inputfile > outputifile 注意:ou

Linux下搭建无人执守安装服务器

Linux下搭建无人执守安装服务器 实验概述 原理和概念: 1:什么是PXE ? 严格来说,PXE 并不是一种安装方式,而是一种引导的方式.进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client.PXE (Pre-bootExecution Environment)协议使计算机可以通过网络启动. 网卡中必须有PXE芯片 协议分为client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BI

linux下服务器守护进程的安装

一.在服务器上安装rstatd守护进程安装步骤:1. 从网上下载rstatd2. 将该文件放到/home/user目录下3. chmod 777 rpc.rstatd----改变该文件读写的权限,拥有所有权限.4. chmod 777 configure ---同上5. ./configure ---配置6. make ---编译7. make install ---安装8. rpc.rstatd ---启动rstatd进程二.在lr中配置从LR里面add measurement, 填写linu

linux下ARM交叉编译器的安装

1.下载arm-linux-gcc编译器. 2.将下载好的编译器压缩文件拷贝到linux中,注意不要在windows中解压,因为RAR解压工具解压gzip压缩工具压缩的文件可能会出问题. 尽量将编译器的压缩文件放置到根目录下(其实也不一定是要根目录,但是我自己使用过程中发现有一个厂家提供的编译器没有安装在指定的位置,编译器提示库找不到),这样做的目的是为了尽量减少麻烦.拷贝好之后,在终端使用: # tar xvzf arm-linux-gcc-4.4.3.tar.gz 解压编译器. 3.解压好了