fpm工具来制作rpm包软件
第1章 rpm包的制作
1.1 fpm的概念介绍
FPM功能简单说就是将一种类型的包转换成另一种类型
1.1.1.支持的源类型
|
类型 |
说明 |
|
dir |
将目录打包成所需要的类型,可以用于源码编译安装的软件包 |
|
rpm |
对rpm进行转换 |
|
gem |
对rubygem包进行转换 |
|
python |
将python模块打包成相应的类型 |
1.1.2 支持的目标类型包
|
类型 |
说明 |
|
rpm |
转换为rpm包 |
|
deb |
转换为deb包 |
|
solaris |
转换为solaris包 |
|
puppet |
转换为puppet模块 |
1.2 fpm的安装与使用
1.2.1 1.4.1 安装FPM工具
fpm是ruby写的,因此系统环境需要ruby,且ruby版本号大于1.8.5
1.2.1.1 安装环境ruby
[root@zabbix SOURCES] # yum -y install ruby rubygems ruby-devel
[root@zabbix SOURCES] # [root@test ~]# rpm -qa ruby rubygems ruby-devel
1.2.2 查看当前使用的ruby仓库
[root@zabbix SOURCES] # gem sources list
*** CURRENT SOURCES ***
1.2.2.1 由于是外国源,下载比较慢,所以更新为阿里云
[root@zabbix SOURCES] # gem sources -a http://mirrors.aliyun.com/rubygems/
1.2.3 安装fpm,gem从rubygem仓库安装软件类似yum从yum仓库安装软件。首先安装低版本的json,高版本的json需要ruby2.0以上,然后安装低版本的fpm,够用。
[root@zabbix SOURCES] # gem install json -v 1.8.3
[root@zabbix SOURCES] # gem install fpm -v 1.3.3
注意:如果是centos7,可以使用gem install fpm
1.3 fpm工具rpm包制作nginx服务(redis,php,mysql都是可以使用的)
1.3.1 下载安装包
[root@zabbix sbin] # wget http://nginx.org/download/nginx-1.16.1.tar.gz
1.3.2 下载nginx所需要的依赖软件
[root@zabbix SOURCES] # yum install -y pcre-devel openssl-devel
1.3.3 解压软件程序
进入到软件源码目录编译安装
[root@zabbix tools] # tar xf nginx-1.16.1.tar.gz
[root@zabbix tools] # cd nginx-1.16.1/
[root@zabbix nginx-1.16.1] # ./configure --prefix=/application/nginx-1.16.1 --with-http_ssl_module --with-http_stub_status_module
[root@zabbix nginx-1.16.1] # make && make install
[root@zabbix nginx-1.16.1] # ln -s /application/nginx-1.16.1 /application/nginx
1.3.4 编辑脚本文件
[root@zabbix scripts] # cat /server/scripts/nginx_post_install.sh
#!/bin/bash
useradd nginx -M -s /sbin/nologin
ln -s /application/nginx/sbin/* /usr/local/sbin/
ln -sf /application/nginx-1.16.1 /application/nginx
[root@zabbix scripts] #
1.3.5 制作rpm包
[root@zabbix scripts] # fpm -s dir -t rpm -n nginx -v 1.16.1 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_post_install.sh -f /application/nginx-1.16.1/
1.3.5.1 fpm包制作的参数解析
|
参数 |
参数说明 |
|
-s |
指定源类型 |
|
-t |
指定目标类型,即想要制作为什么包 |
|
-n |
指定包的名字 |
|
-v |
指定包的版本号 |
|
-C |
指定打包的相对路径 |
|
-d |
指定依赖于哪些包 |
|
-f |
第二次打包时目录下如果有同名安装包存在,则覆盖它 |
|
-p |
输出的安装包的目录,不想放在当前目录下就需要指定 |
|
--post-install |
软件包安装完成之后所要运行的脚本;同--after-install |
|
--pre-install |
软件包安装完成之前所要运行的脚本;同--before-install |
|
--post-uninstall |
软件包卸载完成之后所要运行的脚本;同--after-remove |
|
--pre-uninstall |
软件包卸载完成之前所要运行的脚本;同--before-remove |
1.4 测试安装包是否正常
1.4.1 将安装包通过scp发送到其他服务器上
[root@zabbix scripts] # scp -r nginx-1.16.1-1.x86_64.rpm 172.16.1.51:/root/
1.4.2 在172.16.1.51服务器上开始安装使用
1.4.2.1 首先查看nginx发现版本是多少
[root@db ~] # nginx -V 发现没有nginx服务
-bash: /usr/local/sbin/nginx: No such file or directory
[root@db ~] #
1.4.3 安装nginx
[root@db ~] # yum -y install nginx-1.16.1-1.x86_64.rpm
1.4.3.1 查看nginx服务是否正常
[root@db ~] # nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/application/nginx-1.16.1 --with-http_ssl_module --with-http_stub_status_module
1.4.3.2 nginx服务是否能正常打开
[root@db ~] # /application/nginx/sbin/nginx
[root@db ~] # ps -ef | grep nginx
root 6219 1 0 22:27 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx
nobody 6220 6219 0 22:27 ? 00:00:00 nginx: worker process
root 6222 5047 0 22:27 pts/1 00:00:00 grep --color=auto nginx
1.4.3.3 web网站是否能打开

1.5 rpm包的查看
[root@db ~] # rpm2cpio nginx-1.16.1-1.x86_64.rpm | cpio -div
./application/nginx-1.16.1/conf/fastcgi.conf
./application/nginx-1.16.1/conf/fastcgi.conf.default
./application/nginx-1.16.1/conf/fastcgi_params
./application/nginx-1.16.1/conf/fastcgi_params.default
./application/nginx-1.16.1/conf/koi-utf
./application/nginx-1.16.1/conf/koi-win
./application/nginx-1.16.1/conf/mime.types
./application/nginx-1.16.1/conf/mime.types.default
./application/nginx-1.16.1/conf/nginx.conf
./application/nginx-1.16.1/conf/nginx.conf.default
./application/nginx-1.16.1/conf/scgi_params
./application/nginx-1.16.1/conf/scgi_params.default
./application/nginx-1.16.1/conf/uwsgi_params
./application/nginx-1.16.1/conf/uwsgi_params.default
./application/nginx-1.16.1/conf/win-utf
./application/nginx-1.16.1/html/50x.html
./application/nginx-1.16.1/html/index.html
./application/nginx-1.16.1/logs
./application/nginx-1.16.1/sbin/nginx
11643 blocks
fpm工具来制作rpm包软件的更多相关文章
- fpm制作rpm包
一.前言 在企业中我们有事安装软件包.部分都是源码安装,如nginx安装路径都已经固化了,但实际业务中,我们都是把软件包安装到固定目录下,不满足需要,这是其一.其二,编译安装很耗时,比如mysql,特 ...
- 利用fpm制作rpm包
使用fpm制作rpm包 安装如下 [root@web01 ~]# yum install -y gcc zlib zlib-devel wget http://ruby.taobao.org/mirr ...
- fpm 制作rpm包
使用fpm命令制作rpm包并安装 工作中有如下情况需要将文件打包rpm: 避免重复工作,将源码程序打包为rpm 使用yum发布项目,项目打包为rpm 将自己写好的程序打包为rpm,提供给用户下载 其他 ...
- linux制作RPM包
制作rpm包 1.制作流程1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制 ...
- 制作RPM包
RPM包制作过程 1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制作的对象 ...
- 烂泥:Linux源码包制作RPM包之Apache
本文由秀依林枫提供友情赞助,首发于烂泥行天下 公司服务器比较多,需要把apache源码包制作成rpm包,然后放到公司内网yum源上进行下载安装.apache的rpm包安装方式比源码安装方式比较快,这能 ...
- 手动制作rpm包
制作RPM包的过程,简单的说,就是为制作过程提供一个“工作车间”,即一个目录,里面需要包含以下几个子目录: BUILD ————编译相关源码包时的工作目录: RPMS — ...
- 速成制作rpm包
FPM 由于很多软件在安装时需要编译,这会浪费不少的时间,为了提升部署效率,于是就想到制作rpm包.通常rpm包的制作是使用rpmbuild命令来制作,但是你需要知道它的语法,比较繁琐.这就用到了FP ...
- centos6上使用fpm打python2.7 rpm包并兼容python2.6
centos6上使用fpm打python2.7 rpm包并兼容python2.6 作者 运维小兵_加油 关注 2016.09.22 00:28 字数 501 阅读 45评论 0喜欢 1 工作中我们常常 ...
随机推荐
- 内网渗透----Token 窃取与利用
0x00 前言 在之前的文章<渗透技巧--程序的降权启动>介绍了使用 SelectMyParent 降权的方法,本质上是通过 token 窃取实现的.这一次将要对 token 窃取和利用做 ...
- CVE-2017-12635(Couchdb垂直权限绕过漏洞)
简介 Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库".它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapRedu ...
- linux的文件与目录的权限设置
@font-face { font-family: 宋体 } @font-face { font-family: "Cambria Math" } @font-face { fon ...
- bzoj4596/luoguP4336 [SHOI2016]黑暗前的幻想乡(矩阵树定理,容斥)
bzoj4596/luoguP4336 [SHOI2016]黑暗前的幻想乡(矩阵树定理,容斥) bzoj Luogu 题解时间 看一看数据范围,求生成树个数毫无疑问直接上矩阵树定理. 但是要求每条边都 ...
- 【推理引擎】ONNXRuntime 的架构设计
ONNXRuntime,深度学习领域的神经网络模型推理框架,从名字中可以看出它和 ONNX 的关系:以 ONNX 模型作为中间表达(IR)的运行时(Runtime). 本文许多内容翻译于官方文档:ht ...
- ssl免密登录(centos6)
1.首先执行ll -a查看是否有隐藏文件.ssh,如果没有,需要执行ssh localhost登录以下即可 cd ~/.ssh 2.生成秘钥: 可查看https://hadoop.apache.org ...
- Serlvet 输出中文
1 response.setHeader("Content-type", "text/html;charset=UTF-8"); 2 response.setC ...
- vue中的全局组件和局部组件的应用
1全局组件 vue框架: https://www.vue-js.com/?tab=all 组件树 solt 内置分发组件 应用见局部组件 2局部组件 2.1局部组件的使用:生子 - 挂子 - 用子 & ...
- resin服务之二----整合resin+Apache服务
整合resin+Apache服务 1.为什么要整合Apache和resin? a. 早期的resin,tomcat对httpd服务支持不好. b. tomcat,resin对rewrite,expi ...
- Redis++:Redis做分布式锁真的靠谱吗
Redis做分布式锁真的靠谱吗 Redis的分布式锁可以通过Lua进行实现,通过setnx和expire命令连用的方式 || 也可以使用高版本的方法同时设置失效时间,但是假如在以下情况下,就会造成无锁 ...