SlideShare a Scribd company logo
1 of 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]

More Related Content

What's hot

20150604 docker 新手入門
20150604 docker 新手入門20150604 docker 新手入門
20150604 docker 新手入門azole Lai
 
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出Miles Chou
 
Hadoop平台搭建
Hadoop平台搭建Hadoop平台搭建
Hadoop平台搭建Liyang Tang
 
使用Samba提升linux平台开发效率
使用Samba提升linux平台开发效率使用Samba提升linux平台开发效率
使用Samba提升linux平台开发效率Zhen Li
 
开源Pass平台flynn功能简介
开源Pass平台flynn功能简介开源Pass平台flynn功能简介
开源Pass平台flynn功能简介Zhichao Liang
 
Firefox OS Overview
Firefox OS OverviewFirefox OS Overview
Firefox OS OverviewYan-ren Tsai
 
Introduction to Golang final
Introduction to Golang final Introduction to Golang final
Introduction to Golang final Paul Chao
 
5, system admin
5, system admin5, system admin
5, system adminted-xu
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡Cary Yang
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡guest2d0fe3
 
Cent os 安装 subversion
Cent os 安装 subversionCent os 安装 subversion
Cent os 安装 subversionYUCHENG HU
 
Linux基础
Linux基础Linux基础
Linux基础zhuqling
 
Linux network monitoring hands-on pratice
Linux network monitoring hands-on praticeLinux network monitoring hands-on pratice
Linux network monitoring hands-on praticeKenny (netman)
 
NF core-workflow
NF core-workflow NF core-workflow
NF core-workflow ChenzheLuo
 
微软Bot framework简介
微软Bot framework简介微软Bot framework简介
微软Bot framework简介Zhichao Liang
 
Docker Compose
Docker ComposeDocker Compose
Docker ComposeMiles Chou
 
Android系统移植技术详解
Android系统移植技术详解Android系统移植技术详解
Android系统移植技术详解zzc89522
 
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯SZ Lin
 
Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯liuts
 

What's hot (20)

20150604 docker 新手入門
20150604 docker 新手入門20150604 docker 新手入門
20150604 docker 新手入門
 
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出
 
Hadoop平台搭建
Hadoop平台搭建Hadoop平台搭建
Hadoop平台搭建
 
使用Samba提升linux平台开发效率
使用Samba提升linux平台开发效率使用Samba提升linux平台开发效率
使用Samba提升linux平台开发效率
 
开源Pass平台flynn功能简介
开源Pass平台flynn功能简介开源Pass平台flynn功能简介
开源Pass平台flynn功能简介
 
Firefox OS Overview
Firefox OS OverviewFirefox OS Overview
Firefox OS Overview
 
Introduction to Golang final
Introduction to Golang final Introduction to Golang final
Introduction to Golang final
 
5, system admin
5, system admin5, system admin
5, system admin
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 
Cent os 安装 subversion
Cent os 安装 subversionCent os 安装 subversion
Cent os 安装 subversion
 
Linux基础
Linux基础Linux基础
Linux基础
 
Docker Build
Docker BuildDocker Build
Docker Build
 
Linux network monitoring hands-on pratice
Linux network monitoring hands-on praticeLinux network monitoring hands-on pratice
Linux network monitoring hands-on pratice
 
NF core-workflow
NF core-workflow NF core-workflow
NF core-workflow
 
微软Bot framework简介
微软Bot framework简介微软Bot framework简介
微软Bot framework简介
 
Docker Compose
Docker ComposeDocker Compose
Docker Compose
 
Android系统移植技术详解
Android系统移植技术详解Android系统移植技术详解
Android系统移植技术详解
 
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
 
Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯
 

Viewers also liked

Future of cities meda city congress november 2012
Future of cities   meda city congress november 2012Future of cities   meda city congress november 2012
Future of cities meda city congress november 2012Alain Jordà
 
'Coca cola final with ref april 8
'Coca cola final with ref april 8'Coca cola final with ref april 8
'Coca cola final with ref april 8Aarathi Subramanian
 
РИФ+КИБ 2012 // CPL-Механики // CPA Network Russia (Кира Жесткова)
РИФ+КИБ 2012 // CPL-Механики // CPA Network Russia (Кира Жесткова)РИФ+КИБ 2012 // CPL-Механики // CPA Network Russia (Кира Жесткова)
РИФ+КИБ 2012 // CPL-Механики // CPA Network Russia (Кира Жесткова)Kira Zhestkova
 
সৃজনশীল প্রশ্ন, শিক্ষক ও শ্রেণি কার্যক্রম
সৃজনশীল প্রশ্ন, শিক্ষক ও শ্রেণি কার্যক্রমসৃজনশীল প্রশ্ন, শিক্ষক ও শ্রেণি কার্যক্রম
সৃজনশীল প্রশ্ন, শিক্ষক ও শ্রেণি কার্যক্রমAbul Bashar
 
Brain inf2012(present)
Brain inf2012(present)Brain inf2012(present)
Brain inf2012(present)Alvaro Barbosa
 
Slide bcs4311
Slide bcs4311Slide bcs4311
Slide bcs4311dparkin
 
Commemoration of the Great War 1914-1918 by David Langford
Commemoration of the Great War 1914-1918 by David LangfordCommemoration of the Great War 1914-1918 by David Langford
Commemoration of the Great War 1914-1918 by David Langfordonthewight
 
Arrangeren van-leermiddelen: keuzes in het leerplan
Arrangeren van-leermiddelen: keuzes in het leerplanArrangeren van-leermiddelen: keuzes in het leerplan
Arrangeren van-leermiddelen: keuzes in het leerplanwimdboer
 
Hàbits Lectors i Promoció de la Lectura (Ciro Llueca, 2012)
Hàbits Lectors i Promoció de la Lectura (Ciro Llueca, 2012)Hàbits Lectors i Promoció de la Lectura (Ciro Llueca, 2012)
Hàbits Lectors i Promoció de la Lectura (Ciro Llueca, 2012)Ciro Llueca
 
Actors and Academics
Actors and AcademicsActors and Academics
Actors and AcademicsDavid Hopes
 
солонго 5 р анги
солонго 5 р ангисолонго 5 р анги
солонго 5 р ангиsolongobaga
 
Presentació curs mitjà xixona 2014
Presentació curs mitjà xixona 2014Presentació curs mitjà xixona 2014
Presentació curs mitjà xixona 2014Josep Miquel
 
dMT SPC Presentation Products-engl.
dMT SPC Presentation Products-engl.dMT SPC Presentation Products-engl.
dMT SPC Presentation Products-engl.dmtgms
 
Introducing A Branded Cell Phone To Vietnam
Introducing A Branded Cell Phone To VietnamIntroducing A Branded Cell Phone To Vietnam
Introducing A Branded Cell Phone To Vietnamsedagokoglu
 
Diseños de google sketchup
Diseños de google sketchupDiseños de google sketchup
Diseños de google sketchupbelloloco698
 

Viewers also liked (20)

Goldora duyen
Goldora   duyenGoldora   duyen
Goldora duyen
 
Future of cities meda city congress november 2012
Future of cities   meda city congress november 2012Future of cities   meda city congress november 2012
Future of cities meda city congress november 2012
 
'Coca cola final with ref april 8
'Coca cola final with ref april 8'Coca cola final with ref april 8
'Coca cola final with ref april 8
 
РИФ+КИБ 2012 // CPL-Механики // CPA Network Russia (Кира Жесткова)
РИФ+КИБ 2012 // CPL-Механики // CPA Network Russia (Кира Жесткова)РИФ+КИБ 2012 // CPL-Механики // CPA Network Russia (Кира Жесткова)
РИФ+КИБ 2012 // CPL-Механики // CPA Network Russia (Кира Жесткова)
 
সৃজনশীল প্রশ্ন, শিক্ষক ও শ্রেণি কার্যক্রম
সৃজনশীল প্রশ্ন, শিক্ষক ও শ্রেণি কার্যক্রমসৃজনশীল প্রশ্ন, শিক্ষক ও শ্রেণি কার্যক্রম
সৃজনশীল প্রশ্ন, শিক্ষক ও শ্রেণি কার্যক্রম
 
Brain inf2012(present)
Brain inf2012(present)Brain inf2012(present)
Brain inf2012(present)
 
Slide bcs4311
Slide bcs4311Slide bcs4311
Slide bcs4311
 
JAXB
JAXBJAXB
JAXB
 
Commemoration of the Great War 1914-1918 by David Langford
Commemoration of the Great War 1914-1918 by David LangfordCommemoration of the Great War 1914-1918 by David Langford
Commemoration of the Great War 1914-1918 by David Langford
 
Arrangeren van-leermiddelen: keuzes in het leerplan
Arrangeren van-leermiddelen: keuzes in het leerplanArrangeren van-leermiddelen: keuzes in het leerplan
Arrangeren van-leermiddelen: keuzes in het leerplan
 
Hàbits Lectors i Promoció de la Lectura (Ciro Llueca, 2012)
Hàbits Lectors i Promoció de la Lectura (Ciro Llueca, 2012)Hàbits Lectors i Promoció de la Lectura (Ciro Llueca, 2012)
Hàbits Lectors i Promoció de la Lectura (Ciro Llueca, 2012)
 
Actors and Academics
Actors and AcademicsActors and Academics
Actors and Academics
 
солонго 5 р анги
солонго 5 р ангисолонго 5 р анги
солонго 5 р анги
 
Monterey Slides
Monterey SlidesMonterey Slides
Monterey Slides
 
JAXB
JAXBJAXB
JAXB
 
Presentació curs mitjà xixona 2014
Presentació curs mitjà xixona 2014Presentació curs mitjà xixona 2014
Presentació curs mitjà xixona 2014
 
Lect07
Lect07Lect07
Lect07
 
dMT SPC Presentation Products-engl.
dMT SPC Presentation Products-engl.dMT SPC Presentation Products-engl.
dMT SPC Presentation Products-engl.
 
Introducing A Branded Cell Phone To Vietnam
Introducing A Branded Cell Phone To VietnamIntroducing A Branded Cell Phone To Vietnam
Introducing A Branded Cell Phone To Vietnam
 
Diseños de google sketchup
Diseños de google sketchupDiseños de google sketchup
Diseños de google sketchup
 

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

Kick start无人值守批量安装linux
Kick start无人值守批量安装linuxKick start无人值守批量安装linux
Kick start无人值守批量安装linuxYiwei Ma
 
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1GNU Autoconf / Automake #1
GNU Autoconf / Automake #1imacat .
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newYiwei Ma
 
尚观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
 
Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结Yiwei Ma
 
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)Yiwei Ma
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡cachowu
 
unix toolbox 中文版
unix toolbox 中文版unix toolbox 中文版
unix toolbox 中文版Jie Bao
 

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

Kick start无人值守批量安装linux
Kick start无人值守批量安装linuxKick start无人值守批量安装linux
Kick start无人值守批量安装linux
 
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 new
 
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
 
Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结
 
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)
 
Gentoo linux
Gentoo linuxGentoo linux
Gentoo linux
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 
unix toolbox 中文版
unix toolbox 中文版unix toolbox 中文版
unix toolbox 中文版
 

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