天天看点

Linux软件包的管理--源码管理

    任何管理工具都有自己最适用的场景,像软件包的管理,在CentOS系列中,有了RPM包管理器,但是它自动不能解决包的管理器,所以就出现了yum管理器,但是,他却不能符合我们实际要求(定制功能),所以就出现了源码管理。也许,有些时候源代码也不能满足我们的要求,我就可能要自己基于源码进行二次开发。这里,我们讲解源码管理。

一、源码安装步骤

    源码编译的前提,得有像gcc,make等编译工具。一般情况下在“Development tools”里面都提供了这些编译工具。

    源码安装步骤其实没有特定的步骤,原因是不同的源码制作者的制作方式的不同导致了我们使用的安装步骤和选型都有所差异。但一般情况下,制作者会遵循一些特定的规则。所以,一般情况下,源码编译是以下几步。

以安装ngnix服务为例:

    # tar xf 软件包的压缩文件

    # cd 解压后的软件目录

    # ./configure   还需通过许多选项指定编译特性

    此时会在当前目录中生成一个Makefile的文件,里面内容如下:

    # make

    # make install

    执行这2步,软件就算安装完成。

Linux软件包的管理--源码管理

 ./configure脚本的使用:

    1、获取帮助

        ./configure --help

    2、较通用的一些选项

    安装路径相关:

        --prefix=/path/to/somewhere: 指定安装路径

        --sysconfdir=/path/to/somewhere: 指定配置文件安装路径

Linux软件包的管理--源码管理

    指定启用/禁用的特性

        --enable-FEATURE: 例如--enable-fpm

        --disable-FEATURE: 例如--disable-socket

    指定所依赖的功能、程序或文件

        --with-FUNCTION[=/path/to/somewhere]

        --without-FUNCTION

Linux软件包的管理--源码管理

二、安装后的配置

1、如果只是程序的的运行,不做为其他软件开发的依赖环境

    1)我们可以再全局下使用软件的相关功能

    当然实现这样的办法有多种,例如:将这些命令作为链接文件,链接至PATH变量中的某一路径;或者将这些命令拷贝到PATH变量中的某一路径;或者修改环境变量的值,将命令的路径添加进去。

    我这里演示的方法是:

    在 /etc/profile.d/下建一个于软件名相同的脚本,例如:nginx.sh。添加如下一行内容

    2)导出手册页:

    编辑/etc/man.config配置文件,添加一项MANPATH,路径为新安装的程序的man目录;

Linux软件包的管理--源码管理

    当然,我们也可以通过man -M 指定帮助文档路径查看。

    3)如果我们想使用像其他RPM包软件的启动方式,此时我们就要自己写相关格式的脚本放到/etc/init.d目录下统一管理。

2、如果作为程序开发:即其它应用程序依赖此程序的开发环境,或针对此程序做二次开发

    1)导出库文件

        第一步:指定让系统搜索定制的路径

        编辑/etc/ld.so.conf.d/APPNAME.conf

        第二步:触发系统重新搜索所有的库文件并生成缓存,因为系统在启动时已经通过 /etc/ld.so.cache 这个文件缓存了库文件

        # ldconfig 

        -v 显示过程

    2)导出头文件

        导出方式:创建链接进行

    总结:本文主要介绍了源码如何安装软件包。

继续阅读