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 工作中我们常常 ...
随机推荐
- 修复ST-LINK V2下载器 | ST-LINK V2下载器烧录DAPLink固件
前言 某宝上的STLINK V2下载器偶尔会坏掉,我们尝试修复一下 1.材料 (1)完好的STLINK V2下载器和坏掉的下载器各1个: (2)固件:https://gitee.com/Cai-Zi/ ...
- CSS入门笔记
CSS @author:伏月廿柒 Cascading Style Sheet 层叠级联样式表 CSS:表现(美化) 字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动-- CSS发展史 CSS ...
- python-binasscii模块学习
作用 binascii模块包含很多在二进制和ASCII编码的二进制表示转换的方法.通常情况不会直接使用这些功能,而是使用像UU,base64编码,或BinHex封装模块. binascii模块包含更高 ...
- idea中将已有项目转变为git项目,并提交到git服务器上
idea中将已有项目转变为git项目,并提交到git服务器上 前言 有时候,本地有个项目不错,想要分享到github或者码云上,我们就会有这样的需求:项目在本地已经存在(可能不是git项目),又想提交 ...
- [邮件服务]Foxmail安装及配置指引(Windows)
操作指引: Step1:访问Foxmail邮箱官网:https://www.foxmail.com/,选择"Windows"版,点击"立即下载". Step2: ...
- 在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?
CyclicBarrier 可以重复使用,而 CountdownLatch 不能重复使用. Java 的 concurrent 包里面的 CountDownLatch 其实可以把它看作一个计数器, 只 ...
- Thread 类的 sleep()方法和对象的 wait()方法都可以让线 程暂停执行,它们有什么区别?
sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程 暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保 持,因此休眠时间结束后会自动恢复(线程回 ...
- 使用conda管理python环境和包
操作系统:CentOS7使用virtualenv管理python虚拟环境virtualenv是一款轻量级第三方虚拟环境管理工具,不像Anaconda大小达上百M,virtualenv大小只有10M左右 ...
- 学习Kvm(七)
六,管理虚拟网络 [x] Linux网桥基本概念 [x] qemu-kvm支持的网络 [x] 向虚拟机添加虚拟网络连接 [x] 基于NAT的虚拟网络 [x] 基于网桥的虚拟网络 [x] 用户自定义的隔 ...
- 数据库之“日期处理函数:date_add()与 date_sub()与 datediff()与 timedifff()与 date_format()”
一.加减某个时间间隔:date_add()与 date_sub()函数 1. date_add() :加 select date_add('2019-12-12', interval 1 day) d ...