SlideShare uma empresa Scribd logo
1 de 23
用RPM&YUM进行基础软件管理 @NinGoo http://NinGoo.net 2011.5.25
简化自动安装过程 标准化 解决RPM依赖 集中的软件库,版本控制 简化分发部署 。。。 WHY:为什么用RPM/YUM
源代码编译安装 二进制执行文件 可执行脚本 Shell命令 文本配置文件 。。。 WHAT:什么适合打成RPM包
HOW: 打包工具rpmbuild 1. 构建二进制rpm包 rpmbuild –bb x.spec 2. 构建源码rpm包 rpmbuild –bsx.spec 3. 同时构建二进制和源rpm包 rpmbuild –bax.spec 4.从源码包构建二进制包 rpmbuild –rebuild x.src.rpm
打包工作路径 Default:/usr/src/redhat BUILD:            解包编译 BUILDROOT: 安装 RPMS:            目标rpm包 SOURCES:     源tar.gz包 SPECS:           spec文件 SRPMS:          目标src.rpm包 限制: 此路径下需要root用户执行打包
自定义打包工作路径 vi ~/.rpmmacros %_topdir /home/ningoo/rpm %_prefix /u01/mysql mkdir /home/ningoo/rpm cd /home/ningoo/rpm mkdir RPMS SRPMS SOURCES BUILD BUILDROOT SPECS
SPEC的精髓:宏 默    认:/usr/lib/rpm/macros or /etc/rpm/macros 自定义:~/.rpmmacros 查看所有宏 rpmbuild  --showrc
常见宏 %_topdir工作根目录 %_tmpdir工作临时目录 %_prefix  前导目录 %optflags编译优化参数 %prep      准备阶段     %setup 解压.tar.gz包 %build      编译阶段configure/make %install    安装阶段make install %clean     清楚临时文件 %files       打包阶段,列举所有需要打进RPM的文件 %pre        安装RPM前执行的动作 %post      安装RPM后执行的动作 %preun卸载RPM前执行的动作 %postun卸载RPM后执行的动作
SPEC文件 第一部分:包的详细信息描述 Name: helloworld Summary: Hello World! Version: 0.1 Release: 1 License: GPL URL: http://www.ningoo.net/  Group: applications/system BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root  Source: %{name}-%{version}.tar.gz Prefix: %{_prefix} Requires: libaio-devel Packager: NinGoo Autoreq: no %description: xxx
SPEC文件 第一部分:包的详细信息描述 $ rpm -qpi myddl-0.1-1.i386.rpm  Name        : myddl                        Relocations: /u01/mysql Version     : 0.1                               Vendor: (none) Release     : 1                             Build Date: 2011年05月21日 星期六 01时01分07秒 Install Date: (not installed)               Build Host: ning Group       : applications/system           Source RPM: myddl-0.1-1.src.rpm Size        : 92615                            License: GPL Signature   : (none) Packager    : NinGoo URL         : http://www.ningoo.net/ Summary     : xxx Description : xxx
SPEC文件 第二部分:打包过程控制 %prep 准备阶段 解压SOURCES下的.tar.gz包 %setup -q 如果源.tar.gz包没有目录,则需要创建目录 %setup -q -c -n %{name}-%{version}
编写SPEC文件 第二部分:打包过程控制 %build 编译阶段 %configure宏或者自己 ./configure –prefix=%{_prefix} 编译 make -j `cat /proc/cpuinfo | grep processor | wc -l`
编写SPEC文件 第二部分:打包过程控制 %install 安装阶段 %make_install宏或者自己 make DESTDIR=$RPM_BUILD_ROOT install or make prefix=$RPM_BUILD_ROOT install or install -D xxx ${RPM_BUILD_ROOT}/%{_prefix}/
编写SPEC文件 第二部分:打包过程控制 %files RPM文件生成 设置文件默认权限和属主 %defattr(755,mysql,dba) %attr(755,mysql,dba) %{_prefix}/bin/* %doc %attr(644,mysql,dba) %{_prefix}/docs/* %config %attr(644,mysql,dba) %{_prefix}/conf/*
编写SPEC文件 第三部分:安装卸载控制部分 %pre 安装前执行 %post 安装结束执行 %preun卸载前执行 %postun卸载后执行
MySQL5.1打包演示 …
MySQL5.5打包演示 …
RPM包安装卸载 安装(只有relocatable的可以使用prefix执行另外的安装目录) rpm -i -prefix mysql-5.1.48.1.x86_64.rpm 卸载 rpm -e mysql 升级 rpm –Uvh mysql-5.1.49.1.x86_64.rpm
YUM(YellowDog Updater, Modified) 配置文件 /etc/yum/ /etc/yum.conf /etc/yum.repos.d
YUM(YellowDog Updater, Modified) 安装/更新/卸载 yum install mysql yum update mysql yum remove mysql
YUM(YellowDog Updater, Modified) 上传RPM到YUM仓库 上传工具 sudo yum install yumtools -b current *-b 分支,包括stable, current, test 配置yum … 上传 yum-upload --osver=5 --arch=x86_64 --group=dba mysql-5.1.48-1.x86_64.rpm -b test
参考 ,[object Object]
RPM包rpmbuild SPEC文件深度说明,[object Object]

Mais conteúdo relacionado

Mais procurados

Linux基础
Linux基础Linux基础
Linux基础zhuqling
 
Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版redhat9
 
The New Process No. 1 of Linux -- SystemD
The New Process No. 1 of Linux -- SystemDThe New Process No. 1 of Linux -- SystemD
The New Process No. 1 of Linux -- SystemDfreedman6022e20
 
Debian Policy - 5.6.12 Version
Debian Policy - 5.6.12 VersionDebian Policy - 5.6.12 Version
Debian Policy - 5.6.12 VersionShih-Yuan Lee
 
Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯liuts
 
Golang advance
Golang advanceGolang advance
Golang advancerfyiamcool
 
Golang 高性能实战
Golang 高性能实战Golang 高性能实战
Golang 高性能实战rfyiamcool
 
Linux network monitoring hands-on pratice
Linux network monitoring hands-on praticeLinux network monitoring hands-on pratice
Linux network monitoring hands-on praticeKenny (netman)
 
开源Pass平台flynn功能简介
开源Pass平台flynn功能简介开源Pass平台flynn功能简介
开源Pass平台flynn功能简介Zhichao Liang
 
Mysql fast share
Mysql fast shareMysql fast share
Mysql fast sharerfyiamcool
 
Linux必学的60个命令
Linux必学的60个命令Linux必学的60个命令
Linux必学的60个命令yiditushe
 
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具Will Huang
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newYiwei Ma
 
Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结Yiwei Ma
 
Effective linux.3.(diagnosis)
Effective linux.3.(diagnosis)Effective linux.3.(diagnosis)
Effective linux.3.(diagnosis)wang hongjiang
 
基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案Louis liu
 
Hadoop平台搭建
Hadoop平台搭建Hadoop平台搭建
Hadoop平台搭建Liyang Tang
 

Mais procurados (18)

Linux chapt3
Linux chapt3Linux chapt3
Linux chapt3
 
Linux基础
Linux基础Linux基础
Linux基础
 
Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版
 
The New Process No. 1 of Linux -- SystemD
The New Process No. 1 of Linux -- SystemDThe New Process No. 1 of Linux -- SystemD
The New Process No. 1 of Linux -- SystemD
 
Debian Policy - 5.6.12 Version
Debian Policy - 5.6.12 VersionDebian Policy - 5.6.12 Version
Debian Policy - 5.6.12 Version
 
Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯
 
Golang advance
Golang advanceGolang advance
Golang advance
 
Golang 高性能实战
Golang 高性能实战Golang 高性能实战
Golang 高性能实战
 
Linux network monitoring hands-on pratice
Linux network monitoring hands-on praticeLinux network monitoring hands-on pratice
Linux network monitoring hands-on pratice
 
开源Pass平台flynn功能简介
开源Pass平台flynn功能简介开源Pass平台flynn功能简介
开源Pass平台flynn功能简介
 
Mysql fast share
Mysql fast shareMysql fast share
Mysql fast share
 
Linux必学的60个命令
Linux必学的60个命令Linux必学的60个命令
Linux必学的60个命令
 
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 new
 
Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结
 
Effective linux.3.(diagnosis)
Effective linux.3.(diagnosis)Effective linux.3.(diagnosis)
Effective linux.3.(diagnosis)
 
基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案
 
Hadoop平台搭建
Hadoop平台搭建Hadoop平台搭建
Hadoop平台搭建
 

Destaque

dell服务器raid冷迁移方法
dell服务器raid冷迁移方法dell服务器raid冷迁移方法
dell服务器raid冷迁移方法Jinrong Ye
 
数据库系统设计漫谈
数据库系统设计漫谈数据库系统设计漫谈
数据库系统设计漫谈james tong
 
Oracle my sql-or-nosql
Oracle my sql-or-nosqlOracle my sql-or-nosql
Oracle my sql-or-nosqlSky Jian
 
Hbase运维碎碎念
Hbase运维碎碎念Hbase运维碎碎念
Hbase运维碎碎念haiyuan ning
 
垂直互联网站点的技术改造
垂直互联网站点的技术改造垂直互联网站点的技术改造
垂直互联网站点的技术改造Dahui Feng
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索Feng Yu
 
Cpu高效编程技术
Cpu高效编程技术Cpu高效编程技术
Cpu高效编程技术Feng Yu
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Feng Yu
 
Hp dl380 g7测试结果报告 - 20100823
Hp dl380 g7测试结果报告 - 20100823Hp dl380 g7测试结果报告 - 20100823
Hp dl380 g7测试结果报告 - 20100823Jinrong Ye
 
MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220Jinrong Ye
 
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223Jinrong Ye
 
Handler socket测试报告 - 20110422
Handler socket测试报告 - 20110422Handler socket测试报告 - 20110422
Handler socket测试报告 - 20110422Jinrong Ye
 
ibbackup vs mysqldump对比测试 - 20080718
ibbackup vs mysqldump对比测试 - 20080718ibbackup vs mysqldump对比测试 - 20080718
ibbackup vs mysqldump对比测试 - 20080718Jinrong Ye
 
Tpcc mysql使用手册 - 20120329
Tpcc mysql使用手册 - 20120329Tpcc mysql使用手册 - 20120329
Tpcc mysql使用手册 - 20120329Jinrong Ye
 
Xtrabackup工具使用简介 - 20110427
Xtrabackup工具使用简介 - 20110427Xtrabackup工具使用简介 - 20110427
Xtrabackup工具使用简介 - 20110427Jinrong Ye
 
InnoDB引擎数据表压缩特性测试 - 20120329
InnoDB引擎数据表压缩特性测试 - 20120329InnoDB引擎数据表压缩特性测试 - 20120329
InnoDB引擎数据表压缩特性测试 - 20120329Jinrong Ye
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130Jinrong Ye
 
mysql cluster测试记录 - 20120905
mysql cluster测试记录 - 20120905mysql cluster测试记录 - 20120905
mysql cluster测试记录 - 20120905Jinrong Ye
 
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Jinrong Ye
 
MySQL运维那些事
MySQL运维那些事MySQL运维那些事
MySQL运维那些事Jinrong Ye
 

Destaque (20)

dell服务器raid冷迁移方法
dell服务器raid冷迁移方法dell服务器raid冷迁移方法
dell服务器raid冷迁移方法
 
数据库系统设计漫谈
数据库系统设计漫谈数据库系统设计漫谈
数据库系统设计漫谈
 
Oracle my sql-or-nosql
Oracle my sql-or-nosqlOracle my sql-or-nosql
Oracle my sql-or-nosql
 
Hbase运维碎碎念
Hbase运维碎碎念Hbase运维碎碎念
Hbase运维碎碎念
 
垂直互联网站点的技术改造
垂直互联网站点的技术改造垂直互联网站点的技术改造
垂直互联网站点的技术改造
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
 
Cpu高效编程技术
Cpu高效编程技术Cpu高效编程技术
Cpu高效编程技术
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
 
Hp dl380 g7测试结果报告 - 20100823
Hp dl380 g7测试结果报告 - 20100823Hp dl380 g7测试结果报告 - 20100823
Hp dl380 g7测试结果报告 - 20100823
 
MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220
 
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
 
Handler socket测试报告 - 20110422
Handler socket测试报告 - 20110422Handler socket测试报告 - 20110422
Handler socket测试报告 - 20110422
 
ibbackup vs mysqldump对比测试 - 20080718
ibbackup vs mysqldump对比测试 - 20080718ibbackup vs mysqldump对比测试 - 20080718
ibbackup vs mysqldump对比测试 - 20080718
 
Tpcc mysql使用手册 - 20120329
Tpcc mysql使用手册 - 20120329Tpcc mysql使用手册 - 20120329
Tpcc mysql使用手册 - 20120329
 
Xtrabackup工具使用简介 - 20110427
Xtrabackup工具使用简介 - 20110427Xtrabackup工具使用简介 - 20110427
Xtrabackup工具使用简介 - 20110427
 
InnoDB引擎数据表压缩特性测试 - 20120329
InnoDB引擎数据表压缩特性测试 - 20120329InnoDB引擎数据表压缩特性测试 - 20120329
InnoDB引擎数据表压缩特性测试 - 20120329
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
 
mysql cluster测试记录 - 20120905
mysql cluster测试记录 - 20120905mysql cluster测试记录 - 20120905
mysql cluster测试记录 - 20120905
 
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用
 
MySQL运维那些事
MySQL运维那些事MySQL运维那些事
MySQL运维那些事
 

Semelhante a 使用Rpm&yum进行基础软件管理

Kick start无人值守批量安装linux
Kick start无人值守批量安装linuxKick start无人值守批量安装linux
Kick start无人值守批量安装linuxYiwei Ma
 
Android系统移植技术详解
Android系统移植技术详解Android系统移植技术详解
Android系统移植技术详解zzc89522
 
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1GNU Autoconf / Automake #1
GNU Autoconf / Automake #1imacat .
 
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacRuby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacMarsZ Chen
 
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuRuby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuMarsZ Chen
 
尚观Linux研究室 linux驱动程序全解析
尚观Linux研究室   linux驱动程序全解析尚观Linux研究室   linux驱动程序全解析
尚观Linux研究室 linux驱动程序全解析hangejnu
 
Centos下安装apache + subversion
Centos下安装apache + subversionCentos下安装apache + subversion
Centos下安装apache + subversionYiwei Ma
 
Ian 20150515 grunt
Ian 20150515 gruntIan 20150515 grunt
Ian 20150515 gruntLearningTech
 
Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档xuebao_zx
 
GNU Build System
GNU Build SystemGNU Build System
GNU Build Systemimacat .
 
使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...
使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...
使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...Laird Cheng
 
Apache安装配置mod security
Apache安装配置mod securityApache安装配置mod security
Apache安装配置mod securityHuang Toby
 
Bitbucket pipeline CI
Bitbucket pipeline CIBitbucket pipeline CI
Bitbucket pipeline CIZero Huang
 
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)Yiwei Ma
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡cachowu
 

Semelhante a 使用Rpm&yum进行基础软件管理 (20)

Kick start无人值守批量安装linux
Kick start无人值守批量安装linuxKick start无人值守批量安装linux
Kick start无人值守批量安装linux
 
Android系统移植技术详解
Android系统移植技术详解Android系统移植技术详解
Android系统移植技术详解
 
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
 
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacRuby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for Mac
 
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuRuby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for Ubuntu
 
OSGi Small Lab
OSGi Small LabOSGi Small Lab
OSGi Small Lab
 
尚观Linux研究室 linux驱动程序全解析
尚观Linux研究室   linux驱动程序全解析尚观Linux研究室   linux驱动程序全解析
尚观Linux研究室 linux驱动程序全解析
 
Centos下安装apache + subversion
Centos下安装apache + subversionCentos下安装apache + subversion
Centos下安装apache + subversion
 
Linuxguide4f2e
Linuxguide4f2eLinuxguide4f2e
Linuxguide4f2e
 
LinuxGuide4F2E
LinuxGuide4F2ELinuxGuide4F2E
LinuxGuide4F2E
 
Ian 20150515 grunt
Ian 20150515 gruntIan 20150515 grunt
Ian 20150515 grunt
 
Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档
 
GNU Build System
GNU Build SystemGNU Build System
GNU Build System
 
使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...
使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...
使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...
 
Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratchBuild Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
 
Apache安装配置mod security
Apache安装配置mod securityApache安装配置mod security
Apache安装配置mod security
 
Bitbucket pipeline CI
Bitbucket pipeline CIBitbucket pipeline CI
Bitbucket pipeline CI
 
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)
 
Gentoo linux
Gentoo linuxGentoo linux
Gentoo linux
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 

使用Rpm&yum进行基础软件管理