这几天开始学习Linux了,今天看到了使用源代码编译安装应用程序这部分。

例子是prozilla的源代码编译安装。
首先了解prozilla是什么?Google一下,得到如下:
prozilla是一个包括text模式及图形模式的下载工具,支持多线程下载,可以增加200%到300%的下载速度。易用性好;Prozgui是 prozilla的图形前端。 
基本功能: 
  1.支持FTP和HTTP,包括重定义
  2.支持断点续传
  3.完全加速:如果你的带宽没有被限制,那么文件将被用最快的速度下载
  4.prozilla使用的连接数目能够被详细列出
  5.支持FTPsearch,获得镜像位置然后自动使用PING找出最快的服务器
  6.从不同的服务器下载文件的不同部分来加快下载速度。Prozgui是prozilla的图形前端,还支持代理、添加备用连接、带宽限制等功能。
 
这里有点小郁闷,就是下载这个prozilla的源码压缩包,到官方网站:http://prozilla.genesys.ro/,进不去,不知道是被GFW了,还是网站关闭了,弄了好半天,希望知道情况的同学告知下,最后还是在强大的迅雷下下载到了,下载地址为:
(PS:要用迅雷下呃,其他下载软件没试过,不然用Browser下不到的,估计网站关了)
 
下面就就记录下源码编译安装prozilla的整个过程:

 

  1. 1.检查当前系统的编译环境是否具备 
  2. #rpm -q | grep gcc  //当前目录为/root 
  3.  
  4. 2.获得应用程序的源代码的软件包文件 
  5. 前面已经下载好了prozilla-2.0.4.tar.bz2,将其放在/root目录下 
  6.  
  7. 3.解压源代码软件包文件 
  8. #tar xvf prozilla-2.0.4.tar.bz2 //解压prozilla的源代码软件包 
  9.  
  10. 4.进行编译前的配置工作    //这个地方很重要,后面讲了要修改一个文件的,要想成功源码安装prozilla,最好全文看完。。。 
  11. #cd  prozilla-2.0.4 //进入源代码目录 
  12. #./configure --prefix=/usr/local/prozilla   //配置prozilla的安装属性 
  13.  
  14. 5.进行程序源代码的编译 
  15. #make   //编译pozilla 
  16.  
  17. 6.将编译完成的应用程序安装到系统中 
  18. #make install   //安装prozilla 

 

如果是在理想的各个条件都满足的情况下,按照上面的步骤应该就可以成功进行源码编译安装prozilla的。可是理想与现实总是有差距的,-_-,实际环境是很复杂的。下面就说说我在上面安装过程的实际状况。

在第1步的时候,就遇到了问题,我当时自定义安装RHEL5.5时没有安装GCC的编译环境。(这是通过后来配置prozilla的安装属性提示出错知道的)

于是首先要解决这个问题。这个RPM包的依赖问题比较复杂(对于我这样的新手来说),当rpm -ivh安装一个所依赖的包时,提示要安装另一个包,这样进行了2次,我有点不耐烦了,于是上网Google,竟然有7个RPM包要依次安装,OMG。

具体方法见这里:RHEL5 下安装GCC编译环境 

 

然后就是在第4步配置安装属性时出错了。提示:

 

  1. onfigure: error: **A (n)curses library was not found. The program needs ncurses to run, Ncurses is freely available at : ftp://ftp.gnu.org/pub/gnu ** 

意思是一个ncurses的库文件没有发现?我试着翻译的。

ncurses是什么?ncurses 提供字符终端处理库,包括面板和菜单。安装方法请看这里:        http://man.chinaunix.net/linux/lfs/htmlbook/chapter06/ncurses.html

查询系统是否已经安装了ncurses的RPM软件包

[root@localhost ~]# rpm -qa|grep ncurses

ncurses-5.5-24.20060715

已经安装了ncurses啊?到底是什么原因,库文件方面的基本不知道,Linux才开始学。。。

网上实在没有找到类似情况。于是我就下载最新版本的Ncurses5.7的tar包来按安装。我先是指定了--prefix=/usr/local/ncurses(prefix 指源码要安装的路径),可是安装不上去,MS不能指定prefix配置安装(WHY?),于是不指定--prefix,即直接./configure(后面不带--prefix)配置安装,安装完后(还不知道安装成功没有,反正能make/make install,最后的提示也不知道是不是安装成功了,囧),用rpm查询:

 [root@localhost ~]# rpm -qa|grep ncurses

ncurses-5.5-24.20060715

怎么还是5.5?是不是因为用源码编译安装的5.7,所以查询不出来?不知道?(表要笑我小白,我刚学Linux的新手)

经过以上的步骤,竟然没了那个“configure: error: **A (n)curses library was not found. ”的提示了。

 

不管上面的了,继续尝试配置安装,然后就是在第5步进行程序源代码的编译时出错了。

根据提示(具体什么提示,没记住,囧),上网Google也找到了解决方法:

配置之前先修改一个文件(如果未改make时会出现extra qualification ‘DL_Window::’ on member ‘print_status’的错误提示)

vi src/download_win.h第55行

void DL_Window::print_status(download_t * download, int quiet_mode);

改为

void print_status(download_t * download, int quiet_mode);

这是因为C的编译器的语法有了一些变化。才需要改的.

更具体的情况在这里:http://gzmaster.blog.51cto.com/299556/83241

将上面的问题解决后,

/configure --prefix=/usr/local/prozilla

make

make install

最后还是不能使用proz命令,也就意味着还是prozilla没安装成功?

为什么啊?我不死心啊,于是再次尝试不指定--prefix=/usr/local/prozilla进行配置安装,然后make,make install,终于,奇迹发生了。。。可以使用proz的命令了,说明安装成功了?可是这前面一系列的问题还没明白呃,作为一个Linux新手,老手表要笑我了,等以后逐渐学习Linux更多的知识,再来“研究”上面的各种疑问吧,也请Linux老鸟给我指点迷津,现在Mark一下了。

最后贴张成功安装prozilla后,用prozilla进行下载的图片。

 

RHEL5.5下源码编译安装prozilla_职场