源码的安装通常由3个步骤组成:配置(configure)、编译(make)、安装(make install)。html
configure文件是一个可执行的脚本文件,它有不少选项,在待安装的源码目录下使用命令./configure –help
能够输出详细的选项列表。 node
其中--prefix选项是配置安装目录,若是不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。工具
若是配置了--prefix,如:测试
$ ./configure --prefix=/usr/local/test
安装后的全部资源文件都会被放在/usr/local/test目录中,不会分散到其余目录。操作系统
使用--prefix选项的另外一个好处是方便卸载软件或移植软件;当某个安装的软件再也不须要时,只须简单的删除该安装目录,就能够把软件卸载得干干净净;而移植软件只需拷贝整个目录到另一个机器便可(相同的操做系统下)。code
固然要卸载程序,也能够在原来的make目录下用一次make uninstall,但前提是Makefile文件有uninstall命令(nodejs的源码包里有uninstall命令,测试版本v0.10.35)。htm
这里PREFIX必须大写,其实绝大部分状况下 make install 都不能再指定 PREFIX 了,
由于大部分程序都会 configure 时获得的 prefix 写入 config.h,
而后在编译时编译到可执行文件内部,
以便在执行时读取资源文件等。
这样在编译完毕后,
就不能再修改 prefix 了。
只有运行时不须要资源文件的小工具,
才可能在安装的时候随意选择 PREFIX,
或者具备 loader 的大程序,
在执行时经过 loader 传入路径……参考百度知道blog
若是没有配置--prefix选项,源码包也没有提供make uninstall,则能够经过如下方式能够完整卸载:资源
一个临时目录从新安装一遍,如:
$ ./configure --prefix=/tmp/to_remove && make installrem
而后遍历/tmp/to_remove的文件,删除对应安装位置的文件便可(由于/tmp/to_remove里的目录结构就是没有配置--prefix选项时的目录结构)。