• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
使用Rpm&yum进行基础软件管理
 

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

on

  • 10,487 views

 

Statistics

Views

Total Views
10,487
Views on SlideShare
4,280
Embed Views
6,207

Actions

Likes
12
Downloads
108
Comments
0

18 Embeds 6,207

http://www.ningoo.net 5908
url_unknown 95
http://rss.ningoo.net 60
http://feeds2.feedburner.com 42
http://xianguo.com 31
http://www.zhuaxia.com 29
http://www.freedba.net 8
http://feed.feedsky.com 8
http://cache.baidu.com 7
http://translate.googleusercontent.com 4
http://zhuaxia.com 4
http://webcache.googleusercontent.com 3
http://feeds.feedburner.com 2
http://www.slideshare.net 2
http://www.ningoo.net} {781922555|||pingback 1
http://cncc.bingj.com 1
http://131.253.14.66 1
https://reader.aol.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • 用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
    • 参考
      • Maximum RPM
      • RPM包rpmbuild SPEC文件深度说明
    • 追求简单,做到极致
      The End
      Thanks~~