Linux33_编译源代码,configure和prefix的概念

传统unix应用程序设计逻辑,autoconf有一个prefix的概念。

 

系统的系统库,基础工具和内核是放到一套代码树中的,
编译这个代码,内核和核心库,工具是一同完成的,这些都被认为是操作系统的一部分。
这些核心文件,就以根目录作为prefix。所以,/是所有操作系统核心程序的prefix。

 

在这个核心之外增加新的程序,构成一个发行版,这个发行版增加的程序就用/usr作为prefix。

 

你把发行版安装好了,安装发行版之外应用程序,那些程序通常用/opt, /srv作为prefix。

但如果你自己从源代码开始编译一个应用程序,这些程序是专门向你这个Site编译的,这种情况下,默认的prefix是/usr/local。

Filesystem Hierarchy Standard尝试把这个定义为一个标准;

 

当然你也可以将自己编译的程序直接放在$HOME/local中。

 

所以一般安装的时候要配置一下prefix。

./configure --prefix=/usr/local     

// configure就是一个脚本。./configure是很多程序源代码安装的第一步,主要作用是对即将安装的程序进行配置。检查当前环境是否满足安装所需的依赖关系。对于源码包来说是这样的。如果是二进制包,那么解压后就能使用了。

‘configure‘脚本有大量的命令行选项。对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的。

带上‘--help‘选项执行‘configure‘脚本可以看到可用的所有选项。尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包时,知道他们的存在是很有益处的。
./configure的作用是检测系统配置,生成makefile文件,以便你可以用make和make install来编译和安装程序。
执行./configure的话要到你解压好的目录中去。


make
make install

然后对应的文件就会被安装到对应的目录中去;

 

理解configure脚本:https://www.jianshu.com/p/81916fba741c

使用configure脚本:https://www.cnblogs.com/lifexy/p/7866453.html



 

一般可执行程序放在bin中
系统可执行程序放在sbin中
全局配置文件放在etc中
库放在lib中

 

/bin下存放一些普通的基本命令,如ls,chmod(普通用户就行);
/sbin下的命令属于基本的系统命令,如shutdown,reboot(管理员才能有权限)
/usr/bin下一般存放在后期安装的一些软件的运行脚本c++、g++、gcc、 gzip
/usr/sbin下放置一些用户安装的系统管理的必备命令例如:httpd、sendmail、swap、tcpd、tcpdump
/usr/local/bin /usr/local/sbin 是用户自己编译安装的。

 

Linux33_编译源代码,configure和prefix的概念

上一篇:Linux基础练习题答案7.8


下一篇:让Vim查找字符忽略大小写