这几天开始学习Linux了,今天看到了使用源代码编译安装应用程序这部分。
- 1.检查当前系统的编译环境是否具备
- #rpm -q | grep gcc //当前目录为/root
- 2.获得应用程序的源代码的软件包文件
- 前面已经下载好了prozilla-2.0.4.tar.bz2,将其放在/root目录下
- 3.解压源代码软件包文件
- #tar xvf prozilla-2.0.4.tar.bz2 //解压prozilla的源代码软件包
- 4.进行编译前的配置工作 //这个地方很重要,后面讲了要修改一个文件的,要想成功源码安装prozilla,最好全文看完。。。
- #cd prozilla-2.0.4 //进入源代码目录
- #./configure --prefix=/usr/local/prozilla //配置prozilla的安装属性
- 5.进行程序源代码的编译
- #make //编译pozilla
- 6.将编译完成的应用程序安装到系统中
- #make install //安装prozilla
如果是在理想的各个条件都满足的情况下,按照上面的步骤应该就可以成功进行源码编译安装prozilla的。可是理想与现实总是有差距的,-_-,实际环境是很复杂的。下面就说说我在上面安装过程的实际状况。
在第1步的时候,就遇到了问题,我当时自定义安装RHEL5.5时没有安装GCC的编译环境。(这是通过后来配置prozilla的安装属性提示出错知道的)
于是首先要解决这个问题。这个RPM包的依赖问题比较复杂(对于我这样的新手来说),当rpm -ivh安装一个所依赖的包时,提示要安装另一个包,这样进行了2次,我有点不耐烦了,于是上网Google,竟然有7个RPM包要依次安装,OMG。
具体方法见这里:RHEL5 下安装GCC编译环境
然后就是在第4步配置安装属性时出错了。提示:
- 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进行下载的图片。