如何从源码包安装软件

================================================================

提要:

================================================================

   如何从源码包安装软件?编译的一点体会,希望对新手有点用 :)

   从源码包安装软件最重要的就是仔细阅读README INSTALL等说明文件,它会告诉你怎样才能成功安装。

 

 

================================================================

通常从源码包安装软件的步骤是:

================================================================

  1.tar jxvf gtk+-2.4.13.tar.bz2       解开源码包
  2.cd gtk+-2.4.13/                         进入源码目录
    3../configure                                 ※1

  4.make                                 当./configure成功结束后,就开始正式编译程序了.

  5.make install                            编译成功后使用make install安装※2

 

 

================================================================

重要说明:

================================================================

  ※1

  在某些环境下./configure会造成终端退出、而使用. configure则会正常运行,如果有这个现象,就试试  .configure

  通过configure程序猜测主机信息,最终建立Makefile,以完成make,所以如果./configure不成功就去make的话,便会出现这样的错误提示 : "make: *** No targets specified and no makefile found. Stop."

  configure程序带有很多参数,可以通过 ./configure --help 查看详细内容,通常位于前面的是常规configure的参数说明,末尾是该程序的可用参数说明,命令如下

    ./configure --prefix=/usr        指定安装目录

 

  通常从源码包编译安装的软件默认会放在/usr/local下,因为这是FHS(Filesystem Hierarchy Standard)的规定,不知道什么是FHS?看看这篇文章吧:http://www.pathname.com/fhs/pub/fhs-2.3.html 相信它会让你对linux系统结构有更好的理解,很值得读读。

 

  ※2

  make uninstall可能使用该方法卸载(某些软件不支持卸载)。如果支持的话,通常会在README中写到(似乎比较少)

 

 

================================================================

附加知识

================================================================

再说一下几个关系到能否成功编译的东东:/etc/ld.so.conf ldconfig PKG_CONFIG_PATH

首先说下/etc/ld.so.conf:

这个文件记录了编译时使用的动态链接库的路径。
默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件。
如果你安装了某些库,比如在安装gtk+-2.4.13时它会需要glib-2.0 >= 2.4.0,辛苦的安装好glib后没有指定 --prefix=/usr 这样glib库就装到了/usr/local下,而又没有在/etc/ld.so.conf中添加/usr/local/lib这个搜索路径,所以编译gtk+-2.4.13就会出错了。

 

对于这种情况有两种方法解决:
1. 在编译glib-2.4.x时,指定安装到/usr下,这样库文件就会放在/usr/lib中,gtk就不会找不到需要的库文件了。对于安装库文件来说,这是个好办法,这样也不用设置PKG_CONFIG_PATH了 (稍后说明)

2. 将/usr/local/lib加入到/etc/ld.so.conf中,这样安装gtk时就会去搜索/usr/local/lib,同样可以找到需要的库。将/usr/local/lib加入到/etc/ld.so.conf也是必须的,这样以后安装东东到local下,就不会出现这样的问题了。
将自己可能存放库文件的路径都加入到/etc/ld.so.conf中是明智的选择 ^_^
添加方法也相当简单,将库文件的绝对路径直接写进去就OK了,一行一个。如下:
/usr/X11R6/lib
/usr/local/lib
/opt/lib

 

待续。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值