Linux基于FPM制作RPM包(以Nginx为例)
1、搭建Epel Yum源
安装在线yum源
[root@localhost ~]# rpm -ivh epel-release-latest-.noarch.rpm //安装扩展源
[root@localhost yum.repos.d]# ls
a epel-release-latest-.noarch.rpm epel-testing.repo Centos-.repo epel.repo
或
[root@localhost ~]# ls /etc/yum.repos.d/
backup CentOS-Base.repo CentOS-Media.repo epel.repo epel-testing.repo
修改epel.repo
[root@Crushlinux yum.repos.d]# yum clean all && yum makecache //清除并新建yum缓存
2、安装ruby环境和gem命令(gem命令是从rubygem仓库安装软件,类似yum从yum仓库安装软件)
安装软件包,安装时要出现3个安装的软件
[root@localhost yum.repos.d]# yum -y install ruby rubygems ruby-devel [root@localhost ~]# gem update --system //升级rubygems版本
[root@localhost ~]# gem install rubygems-update -v 2.3. //安装新版本
[root@localhost ~]# gem update --system //升级 [root@localhost ~]# gem sources -a http://mirrors.aliyun.com/rubygems/ //添加国内源
[root@localhost ~]# gem sources --remove https://rubygems.org/ //移除国外源
[root@localhost ~]# gem sources -l //查看当前源 [root@localhost ~]# gem install fpm //安装fpm工具
3、编译nginx,在保证nginx安装完的基础上打包,查看nginx的80端口
[root@localhost ~]# netstat -anpt | grep : //查询nginx的接口
4、打包nginx包生成rpm包
脚本
[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 //在网页文件中写入测试内容
/usr/local/nginx/sbin/nginx //开启nginx
打包时报错,修改
[root@localhost ~]# fpm -s dir -t rpm -n nginx -v 1.16. -d 'pcre-devel,zlib-devel' -f --post-install /root/nginx.sh /usr/local/nginx/
报错信息
Need executable 'rpmbuild' to convert dir to rpm {:level=>:error} 修改
[root@localhost ~]# yum list | grep build
[root@localhost ~]# yum -y install rpm-build
[root@localhost ~]# fpm -s dir -t rpm -n nginx -v 1.16. -d 'pcre-devel,zlib-devel' -f --post-install /root/nginx.sh /usr/local/nginx/
打包成功,在当前目录下生成一个rpm包
Created package {:path=>"nginx-1.16.1-1.x86_64.rpm"}
5、安装自己制作的软件包,并查看端口
安装之前需要卸载之前安装的nginx
rm -rf /usr/local/nginx
rm -rf /usr/src/nginx-1.16.1/
rm -rf /usr/local/nginx/sbin/nginx
userdel -r nginx
[root@localhost ~]# rpm -ivh nginx-1.16.-.x86_64.rpm //安装自己制作的包
[root@localhost ~]# netstat -anpt | grep //查看端口
Linux基于FPM制作RPM包(以Nginx为例)的更多相关文章
- 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,提供给用户下载 其他 ...
- fpm 制作 rpm 包
支持的 源类型包 ① dir : 将目录打包成所需要的类型, 可用于源码编译安装软件包 ② rpm : 对 rpm 包进行转换 ③ gem : 对 rubygem 包进行转换 ④ python : 将 ...
- 基于FPM制作RPM软件包!
工作中有如下情况需要将文件打包rpm: 避免重复工作,将源码程序打包为rpm 使用yum发布项目,项目打包为rpm 将自己写好的程序打包为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)确定好制作的对象 ...
- fpm定制化RPM包之nginx rpm包的制作
fpm定制化RPM包之nginx rpm包的制作 1.安装ruby模块 # yum -y install ruby rubygems ruby-devel 2.添加阿里云的Rubygems仓库,国外资 ...
- 编译制作Linux 3.18内核rpm包(升级centos6.x虚拟机内核)
介绍 openstack平台需要使用各种Linux发行版模板镜像,其制作方法主要有两种,要么是基于各大Linux发行版ISO光盘手动制作,要么是使用官方提供的模板镜像再做修改 之前制作的opensta ...
随机推荐
- 阿里云cdn缓存设置技巧,不同文件结尾用不同的缓存时间
https://edu.aliyun.com/lesson_130_1505?spm=5176.10731542.0.0.2ed37dbf42YL6U#_1505
- 大话设计模式Python实现- 抽象工厂模式
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的类 下面是一个抽象工厂的demo: #!/usr/bin/env pyth ...
- LeetCode 94:二叉树的中序遍历 Binary Tree Inorder Traversal
题目: 给定一个二叉树,返回它的中序 遍历. Given a binary tree, return the inorder traversal of its nodes' values. 示例: 输 ...
- Theano 报错:No suitable SharedVariable constructor could be found. Are you sure all kwargs are supported? We do not support the parameter dtype or type
当Theano报错:No suitable SharedVariable constructor could be found. Are you sure all kwargs are support ...
- python 多进程和多线程对比
1. 对于耗费CPU的操作来说,多进程优于多线程 2. 对于耗费IO操作来说,多线程优于多进程 3. 多进程切换代价大于多线程
- RootKit随手记(一)RootKit的驱动隐藏、读取配置、卸载安装
边学习边更新这专题,随手记录一下用到的思路,给自己看的(所以读者看可能有些懵,不好意思...) RootKit随手记(一)RootKit的驱动隐藏.读取配置.卸载安装 一.驱动隐藏 1. 隐藏原理 一 ...
- VS工具箱不显示DEV控件解决方法
VS工具箱中不显示DEV控件解决方法 之前先装vs,再装dev控件,vs工具栏中自动会加载并显示dev相关组件,但是,在更新vs(我用2017版)后,原先安装好的dev控件库不显示在vs的工具栏中了. ...
- Java编程基础——数组和二维数组
Java编程基础——数组和二维数组 摘要:本文主要对数组和二维数组进行简要介绍. 数组 定义 数组可以理解成保存一组数的容器,而变量可以理解为保存一个数的容器. 数组是一种引用类型,用于保存一组相同类 ...
- PhaseScorer:感慨高手写的代码就是精炼
看懂了PhaseScorer的算法后,回想起前面看的算法和代码,感慨高手写的代码总是那么精炼,没有一句废话,多一句不行,少一句不行.明天来了写下PhaseScorer算法的实现:todo
- EntityFramework优化:SQL语句日志
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Te ...