linux运维、架构之路-rpm定制、本地yum仓库搭建
一、定制rpm包
1、环境
[root@m01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@m01 ~]# uname -r
2.6.-.el6.x86_64
[root@m01 ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@m01 ~]# getenforce
Disabled
[root@m01 ~]# hostname -I
172.19.5.61 172.16.1.61
2、安装FPM
yum install ruby rubygems ruby-devel -y #安装ruby模块
gem sources -a http://mirrors.aliyun.com/rubygems/ #添加国内源
gem sources --remove http://rubygems.org/ #移除原生的Ruby仓库
gem install fpm #安装fpm
gem install fpm -v 1.4.
错误:
Building native extensions. This could take a while...
Building native extensions. This could take a while...
ERROR: Error installing fpm:
解决:安装旧版本的fpm
gem install fpm -v 1.4.
3、FPM命令参数介绍
fpm --help
-s 指定源类型
-t 指定目标类型,既想要制作成什么包
-n 指定包的名字
-v 指定包的版本号
-C 指定打包的相对路径
-d 指定依赖于哪些包
-f 第二次打包时目录下如果有同名安装包存在,则覆盖它
-p 输出安装包的目录,不想放在当前目录下就需要指定
二、FPM实战打包NMP
1、实战打包Nginx
fpm -s dir -t rpm -n nginx -v 1.10. -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh /application/nginx-1.10.
2、实战打包PHP
fpm -s dir -t rpm -n php -v 5.5. -d 'zlib libjpeg freetype libpng gd curl zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel libjpeg-turbo-devel libcurl-devel libxslt-devel libmcrypt-devel mhash mcrypt' --post-install /server/scripts/php_rpm.sh -f /application/php-5.5./
3、实战打包MySQL
fpm -s dir -t rpm -n mysql -v 5.6. -d 'ncurses-devel libaio-devel cmake' --post-install /server/scripts/mysql_rpm.sh /application/mysql-5.6. /etc/init.d/mysqld /etc/my.cnf /etc/profile
4、脚本文件
#nginx_rpm.sh#
useradd -s /sbin/nologin -M www
ln -s /application/nginx-1.10./ /application/nginx
ln -s /application/nginx/sbin/nginx /usr/local/sbin/ #php_rpm.sh#
#!/bin/sh
ln -s /application/php-5.5./ /application/php #mysql_rpm.sh#
#!/bin/sh
useradd -s /sbin/nologin -M mysql
ln -s /application/mysql-5.6./ /application/mysql
chown -R mysql.mysql /application/mysql-5.6./
5、其它机子测试
yum localinstall nginx-1.6.-.x86_64.rpm -y
三、yum仓库搭建
1、安装createrepo
yum install createrepo -y #创建yum源软件
2、创建yum仓库目录并初始化repodata索引文件
mkdir -p /application/yum/centos6./x86_64/
cd /application/yum/centos6./x86_64/ #拷贝rpm包到此目录
createrepo -pdo /application/yum/centos6./x86_64/ /application/yum/centos6./x86_64/
3、提供yum服务
python -m SimpleHTTPServer &>/dev/null & #python的http模块
4、如果有新的rpm包放入必须更新
createrepo --update /application/yum/centos6./x86_64/
5、客户端修改yum源
cd /etc/yum.repos.d/
vi local.repo
[onlylady]
name=Server
baseurl=http://172.19.5.61
enable=
gpgcheck= yum clean all #清除本地缓存
yum --enablerepo=local --disablerepo=base,extras,updates list #显示本地yum源列表
#安装nginx为例#
yum --enablerepo=local --disablerepo=base,extras,updates,epel install nginx -y
6、yum命令参数

linux运维、架构之路-rpm定制、本地yum仓库搭建的更多相关文章
- linux运维架构师职业规划
1.假如你从来未接触过Linux的话,首先要做的就找一本指导书来学习.现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面,鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇.“鸟哥的私房 ...
- 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路
做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...
- Linux 运维入门到跑路书单推荐
一.基础入门 <鸟哥的Linux私房菜基础学习篇>:最具知名度的Linux入门书<鸟哥的Linux私房菜基础学习篇>,全面而详细地介绍了Linux操作系统. https://b ...
- Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!
Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Disc ...
- Linux运维企业架构实战系列
Linux运维企业架构项目实战系列 项目实战1-LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2-LVS.nginx实现负载均衡系列 2.1 项目实战2.1-实现基于LVS负载均衡集 ...
- Linux运维企业架构项目实战系列
Linux运维企业架构项目实战系列 项目实战1—LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2—LVS.nginx实现负载均衡系列2.1 项目实战2.1—实现基于LVS负载均衡集群 ...
- 马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)
马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文 ...
- Linux运维入门到高级全套常用要点
Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇................................................................. ...
- Linux运维工程师成长必经之路
本路线图是从0基础开始,全方位由浅入深,按照多年Linux培训经验和优秀教学方法制定的学习思路和学习方法,路线图包括初级入门.中级进阶.高级提升和资深冲刺四个阶段,每阶段对应着不同优秀的课程和学习方法 ...
随机推荐
- 激活Win Server 2008 R2 Datacenter
直接手撸KMS命令 管理员打开cmd输入: slmgr /skms kms.03k.org 然后用这个Key: 74YFP-3QFB3-KQT8W-PMXWJ-7M648
- 将Unix时间戳转换为Date、Json属性动态生成反序列化、序列化指定属性
实体类 public class Test { [JsonIgnore] public string GetDate { get { return GetTime.ToString("yyy ...
- spring(二)
什么是AOP 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP(面向对 ...
- 【windows】windows安全基础
windows安全基础 安全主体 security principal 是可以进行身份验证的实体. 哪个安全主体在要求访问?这个维度可以是用户,计算机和进程.一旦确认以后,系统就会发放SID. 例子: ...
- & 和 && 区别和联系,| 和 || 区别和联系
& 和 && 区别和联系,| 和 || 区别和联系,实际项目中,什么情况用哪种? 首先,& 和 && 的联系(共同点): & 和 &&a ...
- Linux 查看CPU 核数 还有 CPU 个数的命令
cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l 个数 cat /proc/cpuinfo | grep 'process' | ...
- Linux hostname 主机名篇
主机名修改(以主机名为config为例) 1.修改文件/etc/sysconfig/network,内容为 [root@config ~]# cat /etc/sysconfig/network# C ...
- java8--- Predicate 意义 代码
//为了去除 DiyInterface 这个函数式接口,可以用通用函数式接口 Predicate 替代如下: https://blog.csdn.net/u011848397/article/deta ...
- 洛谷 P1541 乌龟棋 & [NOIP2010提高组](dp)
传送门 解题思路 一道裸的dp. 用dp[i][j][k][kk]表示用i个1步,j个2步,k个3步,kk个4步所获得的最大价值,然后状态转移方程就要分情况讨论了(详见代码) 然后就是一开始统计一下几 ...
- C++ cin相关函数总结
输入原理: 程序的输入都建有一个缓冲区,即输入缓冲区.一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据.正因为cin函数是直接从缓冲区取数据 ...