linux-软件包-源码安装

编译、安装过程
在安装之前查看INSTALL和README文件查看安装方法,因为不同程序包安装步骤不一样,有的程序包不需要configure,直接make后执行make install;而有的程序包不需要执行make install,只有一个二进制文件直接复制即可完成;

configure、Makefile.in一般是项目管理器自动生成的,这依赖于两个开发工具:

autoconf:生成configure脚本文件;
autoconf需要结合一个配置文件来和其它命令生成configure脚本;这个配置文件告诉autoconf当前代码有哪些特性、指定哪些安装路径等,而后才能生成configure脚本;

automake:生成Makefile.in模板文件;
automake也要结合一个文件,这个指明有多少程序文件、它们的依赖关系是什么、以及使用哪一种版本的编译器等,而后才能生成Makefile.in;

编译安装

1 ./configure(也可能是config文件)

在执行make命令之前,用户指定程序包的编译参数、启用特性、安装路径等等;
configure脚本会收集当前系统上的开发环境中所依赖各组件的版本、特性等,并检查所依赖的环境是否能满足,如果检查到所依赖的程序包不存在立即报错,无法执行下一步。
ps:最后会根据用户指定信息和Makefile.in文件生成一个makefile文件;

通用的几个选项

–prefix= :指定安装的路径
–sysconfdir= :指定配置文件目录
–enable-feature :启用某个特性
–disable-fecture :禁用特性
–with-function :启用某功能
–without-function :禁用某功能

2 make

每个源代码都有专用的makefile,在make时依据这个配置文件,调用指定的预处理器做处理、调用指定的编译器做处理、编译文件的顺序等操作等;

3 make install

其实是一些脚本,实现把构建出的应用程序,分别分配到用户指定的目录中;如创建出的二进制文件放到指定的二进制目录、库文件放到指定的库目录等等,使用install拷贝命令也能实现;

安装后的配置

(1) 将二进制程序目录添加至PATH文件变量中,否则只能使用绝对路径才能运行程序

编辑文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH

(2) 导出库文件路径

编辑/etc/ld.so.conf.d/NAME.conf,添加新的库文件所在的目录至此文件中;
例如:/usr/local/apache2/lib

ldconfig -v:重新加载库文件路径,并查看;
ldconfig -p:查看已加载所有库文件路径;

(3) 导出头文件

/usr/include/目录下,创建软链接;
ln -s target_dir soft_link ##可以导出一个目录为所有文件链接,也可以为每一个头文件导出一个链接,然后把创建的链接输出到/usr/include/目录下,或者直接复制头文件至/usr/include/目录;

(4) 导出man手册

Centos7是在/etc/man_db.conf的40到50行之间,添加一个MANPATH参数(Centos6可能是/etc/man.config);
MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值