1 Linux上安装软件包的方式
Linux下常用的软件包安装方式有三种。
1.1 编译安装
编译:将源代码变为机器可执行的代码文件。 安装:将可执行文件安装到操作系统里,才可以使用。
编译安装的优缺点如下:
- 优点
- 可以定制化安装目录
- 按需开启功能
- 缺点
- 需要查找并试验出适合的编译参数
- 编译时间过长
- 依赖包需要单独安装
1.2 yum安装
yum安装顾名思义,就是使用yum工具进行程序的安装。
- 优点
- 自动处理依赖关系
- 自动化帮我们直接安装在操作系统中
- 缺点
- 不能定制化选择我们需要的功能模块
- 不能自定义安装目录
- 依赖于网络,网络不通,则无法安装
1.3 rpm安装
rpm
,Redhat Packages Manager,红帽包管理工具,使用rpm工具(-i)进行软件程序的安装。
- 优点
- 本地安装
- 强大的查询以及软件包验证的功能
- yum安装方式,实质上安装的就是一个个rpm包
- 缺点
- 安装软件时,需要首先获取软件包依赖的所有包
- 无法直接处理依赖关系(需要制定—aid)参数
1.4 rpm定制+yum安装
综合了rpm的优点和yum的优点,定制化rpm包,自定义yum仓库,启用我们自己的yum源,这样可以使用yum帮我们一键安装软件,并执行某些操作,这在批量安装多台服务器的时候是非常有用的。
2 RPM包定制
在linux环境下时,总是需要进行大量的软件安装和软件测试,如果从源码编译,可能要花费大量的编译时间,在确保包依赖关系正常的情况下,将安装好的软件打包成rpm包,可以很快的安装部署。打成rpm包有两种方式
- 使用rpmbuild
- 使用fpm打包
第一种方式我没有尝试过,太繁琐,一点一点写spec文件的参数,各种出错,一不留神就花费大半个小时;软件的产生就是为了方便系统管理员管理,减少不必要的时间浪费,,学会软件使用需要花费太多的时间掌握,实在是有点惨不忍睹。
3 FPM方式打包
FPM功能简单说就是将一种类型的包转换成另一种类型。
3.1 支持的源类型的包
名称 | 含义 |
---|---|
dir | 将目录打包成需要的类型,可以用于源码编译安装的软件包 |
rpm | 对rpm进行转换 |
gem | 对rubygem包进行转换 |
python | 对python模块打包成响应的类型 |
3.2 支持的目标类型的包
名称 | 含义 |
---|---|
rpm | 转换为rpm包 |
deb | 转换成deb包 |
solaris | 转换为solaris包 |
puppet |