configure, make 与 make install 背后的神奇

原文:The magic behind configure, make, make install

只要在任何一种UNIX系统上做过开发,就可能使用这种神奇的魔法,从源码安装过软件,:

./configure
make
make install

使用了那么多次,但在最开始用Linux时,我确实不理解什么意思。只是知道,如果要安装软件,就要这样做。

近来,在构建了UNIX工具后,就想要弄清楚这个标准的安装过程,到底是什么意思。

一、所作所为

在这个过程中有三步:

1. 配置(configure)

configure脚本主要是为在特定的系统上,在构建软件之前,做准备工作。以确保后面的构建(build)和安装(install)过程所需要的依赖,都是可用的。并找出要使用这些依赖所需的前提。

UNIX程序基本上都是用C编写的,因此通常需要一个C编译器来构建。此时,configure脚本将确认,所在的操作系统中确实有C编译器,并确定如何调用以及从什么地方找到它。

2. 构建(build)

configure阶段完成后,就可以调用make来构建软件。make阶段会运行定义在Makefile中的一系列任务,从源代码构建最终的软件。

用户下载的tar包,通常不包含最终的Makefile文件。而是包含着一个Makefile.in的文件,configure脚本会生成一个针对特定操作系统的Makefile。

注:Makefile.in => Makefile

3. 安装(install)

构建完成后,就准备运行了。所生成文件,可以拷贝到它们的最终目的地了。make install命令会把构建好的程序,以及对应的库文件(libraries)和文档(documentation),拷贝到正确的位置。

这通常意味着,程序所生成的二进制文件会拷贝到PATH变量所指定的一个路径中,程序的手册页面会拷贝到MANPATH指定的路径中,其他所依赖的文件会安全的保存在合适的位置。

安装这一步也是定义在Makefile中的,程序的安装位置可以基于传递到configure脚本中的选项,或configure脚本在操作系统中发现的环境变量,来改变。

取决于程序要安装的位置,很可能需要提升权限,从而可以把文件拷贝到系统目录下。这个通常是用sudo来完成的。

二、从何而来

 

三、实例说明

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值