FPM制作Nginx的RPM软件包
FPM制作Nginx的rpm软件包
FPM相关参数
-s:指定源类型
-t:指定目标类型,即想要制作为什么包
-n:指定包的名字
-v:指定包的版本号
-C:指定打包的相对路径
-d:指定依赖于哪些包
-f:第二次包时目录下如果有同名安装包存在,则覆盖它
-p:制作的rpm安装包存放路径,不想放在当前目录下就需要指定;
–post-install:软件包安装完成之后所要运行的脚本;同–offer-install
–pre-install:软件包安装完成之前所要运行的脚本;同–before-install
–post-uninstall:软件包卸载完成之后所要运行的脚本;同–offer-remove
–pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove
–prefix:制作好的rpm包默认安装路径
-------------------------------------------------------------------------------
一、搭建epel源
-------------------------------------------------------------------------------
[root@localhost yum.repos.d]# rz #上传163镜像源在线yum
[root@localhost yum.repos.d]# ls
a CentOS7-Base-163.repo
[root@localhost yum.repos.d]# rz #上传epel源
[root@localhost yum.repos.d]# ls
a
epel-release-latest-7.noarch.rpm
CentOS7-Base-163.repo
[root@localhost yum.repos.d]# rpm -ivh epel-release-latest-7.noarch.rpm #安装epel源
[root@localhost yum.repos.d]# ls
a
CentOS7-Base-163.repo
epel-release-latest-7.noarch.rpm
epel-testing.repo
epel.repo
[root@localhost yum.repos.d]# yum -y clean all #清除缓存
[root@localhost yum.repos.d]# yum makecache #重建yum缓存
Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again 报错
[root@localhost yum.repos.d]# vim epel.repo #修改epel文件
将所有baseurl 开启
将所有 metalink 注释掉
[root@localhost yum.repos.d]# yum -y clean all #再次清除缓存
[root@localhost yum.repos.d]# yum makecache #再次重建缓存成功
--------------------------------------------------------------------------
二、安装ruby环境和gem命令FPM
--------------------------------------------------------------------------
[root@localhost ~]# gem update --system #升级rubygems版本
Updating rubygems-update
Fetching: rubygems-update-3.0.6.gem (100%)
ERROR: Error installing rubygems-update:
rubygems-update requires Ruby version >= 2.3.0.
ERROR: While executing gem ... (NoMethodError)
undefined method `version' for nil:NilClass
#升级失败提示我们升级到2.3.0版本
[root@localhost ~]# gem install rubygems-update -v 2.3.0 #升级到2.3.0版本
Updating rubygems-update
Fetching: rubygems-update-3.0.6.gem (100%)
ERROR: Error installing rubygems-update:
rubygems-update requires Ruby version >= 2.3.0.
ERROR: While executing gem ... (NoMethodError)
undefined method `version' for nil:NilClass
[root@localhost ~]# gem install rubygems-update -v 2.3.0
Fetching: rubygems-update-2.3.0.gem (100%)
Successfully installed rubygems-update-2.3.0
Parsing documentation for rubygems-update-2.3.0
Installing ri documentation for rubygems-update-2.3.0
1 gem installed
[root@localhost ~]# gem update --system #在升级rubygems版本
RubyGems system software updated
--------------------------------------------------------------------------------------------
[root@localhost ~]# gem sources -a http://mirrors.aliyun.com/rubygems/ #添加国内源
source http://mirrors.aliyun.com/rubygems/ already present in the cache
[root@localhost ~]# gem sources --remove https://rubygems.org/ #删除国外源(因为国外源下载较为缓慢,所以需要国内源的帮助)
https://rubygems.org/ removed from sources
[root@localhost ~]# gem sources -l #查看源
*** CURRENT SOURCES ***
Installing ri documentation for fpm-1.11.0
14 gems installed
---------------------------------------------------------------
[root@localhost ~]# vim nginx.sh
#!/bin/bash
useradd -M -s /sbin/nologin nginx
ln -s /usr/local/nginx/sbin/nginx /sbin/
echo www.crushlinux.com > /usr/local/nginx/html/index.html #将自己想要添加的内容写入到Nginx的网页
nginx
-----------------------------------------------------------
[root@localhost ~]# fpm -s dir -t rpm -n nginx -v 1.10.2 -d 'pcre-devel,zlib-devel' -f --post-install /root/nginx.sh /usr/local/nginx #生成rpm包
Need executable 'rpmbuild' to convert dir to rpm {:level=>:error} #出现这个报错,需要安装rpm-build的安装包
[root@localhost ~]# yum -y install rpm-build #安装
#生成rpm包
[root@localhost ~]# fpm -s dir -t rpm -n nginx -v 1.10.2 -d 'pcre-devel,zlib-devel' -f --post-install /root/nginx.sh /usr/local/nginx
Created package {:path=>"nginx-1.10.2-1.x86_64.rpm"}
[root@localhost ~]# ls
= anaconda-ks.cfg nginx-1.10.2-1.x86_64.rpm nginx.sh
Preparing... ################################# [100%]
Updating / installing...
1:nginx-1.10.2-1 ################################# [100%]
warning: %post(nginx-1.10.2-1.x86_64) scriptlet failed, exit status 1
成功
FPM制作Nginx的RPM软件包的更多相关文章
- 二十三.Subversion基本操作、使用Subversion协同工作、制作nginx的RPM包
1.Subversion基本操作 web1 1.1 安装Subversion服务器 ]# yum -y install subversion 1.1.1 创建版本库 ]# mkdir /var/svn ...
- 高级运维(七):Subversion基本操作、使用Subversion协同工作、制作nginx的RPM包
一.Subversion基本操作 目标: 本案例要求先快速搭建好一台Subversion服务器,并测试该版本控制软件: 1> 创建版本库 2> 导入初始化数据 3> 检出 ...
- 基于FPM制作nginx RPM包
目录 环境 配置 FPM安装 环境 系统 其它 CentOS 7.5 需提前配置好epel 配置 [root@localhost ~]# yum clean all && yum ma ...
- 使用rpm-build制作nginx的rpm包
2014-11-27 11:05:49 一.RPM包的分类 RPM有五种基本的操作功能:安装.卸载.升级.查询和验证. linux软件包分为两大类: (1)二进制类包,包括rpm安装包(一般分为i ...
- 制作nginx的rpm包出现问题
在学习打包rpm,找到了个不错的参考站点 https://src.fedoraproject.org/cgit/rpms/ 过程: git clone -b el6 git://pkgs.fedor ...
- fpm制作rpm包
一.前言 在企业中我们有事安装软件包.部分都是源码安装,如nginx安装路径都已经固化了,但实际业务中,我们都是把软件包安装到固定目录下,不满足需要,这是其一.其二,编译安装很耗时,比如mysql,特 ...
- Linux基于FPM制作RPM包(以Nginx为例)
1.搭建Epel Yum源 安装在线yum源 [root@localhost ~]# rpm -ivh epel-release-latest-.noarch.rpm //安装扩展源 [root@ ...
- 基于FPM制作RPM软件包!
工作中有如下情况需要将文件打包rpm: 避免重复工作,将源码程序打包为rpm 使用yum发布项目,项目打包为rpm 将自己写好的程序打包为rpm,提供给用户下载 其他 以前打包rpm是一个非常复杂的一 ...
- fpm 制作 rpm 包
支持的 源类型包 ① dir : 将目录打包成所需要的类型, 可用于源码编译安装软件包 ② rpm : 对 rpm 包进行转换 ③ gem : 对 rubygem 包进行转换 ④ python : 将 ...
随机推荐
- vs code 关闭保存自动格式化 formatonsave - [vscode] - [html]
有时候Ctrl+s保存,html代码哥格式会紊乱. 造成这个原因一般是我们基本都在用的一个插件: 
写在前面 我是一个测试工程师,从土木工程行业转行到互联网行业,目前是工作的第三年.平时主要做功能测试,性能测试接触比较少,虽然以前培训的时候学习过一些性能相关的知识,但都是入门初级的知识 ...
- CF633(div.2)B. Sorted Adjacent Differences
题目描述 http://codeforces.com/contest/1339/problem/B 有一个长度为 \(n(3\le n \le 10^5)\) 的整数序列 \(a_1,a_2,..., ...
- Serverless无服务器云函数入门唠叨
B站录了个视频: https://www.bilibili.com/video/av59020925/
- C++ memset函数用法
#include<stdio.h>#include<string.h>int main(){ char buffer[] = "I love you!"; ...
- 2017蓝桥杯算式900(C++C组)
题目:算式900 小明的作业本上有道思考题: 看下面的算式: (□□□□-□□□□)*□□=900 其中的小方块代表0~9的数字,这10个方块刚好包含了0~9中的所有数字. 注意:0不能作为某 ...
- 中阶 d05 tomcat 安装 eclipse上配置tomcat
eclipse使用参考 https://www.bilibili.com/video/av49438855/?p=24 1. 直接解压 ,然后找到bin/startup.bat 2. 可以安装 启动之 ...
- python3(三十) Enum
""" """ __author__ = 'shaozhiqi' # 当我们需要定义常量时,一个办法是用大写变量通过整数来定义,例如月份: ...
- tf.get_variable
使用tf.get_variable()时,如果检测到命名冲突,系统不会处理冲突,而会报错. 如果已经创建的变量对象,就把那个对象返回,如果没有创建变量对象的话,就创建一个新的. tf.get_vari ...
- 原生js俄罗斯方块
效果图 方块定位原理通过16宫格定位坐标,把坐标存到数组中去 [ [[2,0],[2,1],[2,2],[1,2]],//L [[1,1],[2,1],[2,2],[2,3]], //左L [[2,0 ...