./configure,make,make install

今天没事折腾apache bench,发现在压力数值调大的时候发生异常,网上各种方法试过都无解。。。

正题:脚本开发人员一般很少接触源代码编译的工作,即使用到,很多也不清楚具体命令的含义,今天就详细解释一下

这几个命令都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤

./configure

是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本

configure,这一步一般用来生成 Makefile,为下一步的编译做准备,

你可以通过在 configure 后加上参数来对安装进行控制,

比如代码:./configure –prefix=/usr

意思是将该软件安装在 /usr 下面,

执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),

资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。

同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。

有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,

你可以通过允许 ./configure –help 察看详细的说明帮助。

configure是一个shell脚本,它可以自动设定源程序以符合各种不同平台上Unix系统的特性,并且根据系统叁数及环境产生合适的Makefile文件或是C的头文件(header file),让源程序可以很方便地在这些不同的平台上被编译连接。

make

是用来编译的,它从Makefile中读取指令,然后编译。

make,这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。

如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码

make install

是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

make insatll,这条命令来进行安装(当然有些软件需要先运行 make check 或 make test 来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)。

AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。