# CentOS下./configure && make && make install
**正常的编译安装/卸载**:
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。
configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。
其中`--prefix`选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在`/usr /local/share`,比较凌乱。
如果配置了--prefix,如:
`$ ./configure --prefix=/usr/local/test`
安装后的所有资源文件都会被放在/usr/local/test目录中,不会分散到其他目录。
使用--prefix选项的另一个好处是方便卸载软件或移植软件;当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;而移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统下)。
当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是Makefile文件有uninstall命令(nodejs的源码包里有uninstall命令,测试版本v0.10.35)。
## 关于卸载:
如果没有配置--prefix选项,源码包也没有提供make uninstall,则可以通过以下方式可以完整卸载:
找一个临时目录重新安装一遍,如:
$ ./configure --prefix=/tmp/to_remove && make install
然后遍历/tmp/to_remove的文件,删除对应安装位置的文件即可(因为/tmp/to_remove里的目录结构就是没有配置--prefix选项时的目录结构)。
>原文地址:http://www.cnblogs.com/zhangbo127/p/4556008.html
参考地址:http://www.zhihu.com/question/20092756
* * * * *
# ./configure && make && make install 安装三部曲
很多时候我们需要用源码来安装软件,这时最常用的命令就是这三个——`./configure && make && make install`
按照我平时的理解,`./configure`是用来检查环境变量以及配置编译选项,`make`是用来将源代码编译成二进制文件,而`make install`则是将make编译出来的文件安装到指定位置(或默认位置)
刚才搜索LFS搭建过程的时候,无意中看到了金步国先生写的《深入理解软件包的配置、编译与安装》,方才彻底理解了./configure && make && make install 安装三部曲的真正原理,我原来的理解虽然不错,但是不全面。
用一句话来解释这个过程就是:根据源码包中 Makefile.in 文件的指示,configure 脚本检查当前的系统环境和配置选项,在当前目录中生成 Makefile 文件(还有其它本文无需关心的文件),然后 make 程序就按照当前目录中的 Makefile 文件的指示将源代码编译为二进制文件,最后将这些二进制文件移动(即安装)到指定的地方(仍然按照 Makefile 文件的指示)。
> 具体关于makefile、make的选项以及configure脚本的具体说明,请参考金步国先生的《[深入理解软件包的配置、编译与安装](http://www.jinbuguo.com/linux/understand_package_install.html)》。