0
用RPM&YUM进行基础软件管理<br />@NinGoo<br />http://NinGoo.net<br />2011.5.25<br />
简化自动安装过程<br />标准化<br />解决RPM依赖<br />集中的软件库,版本控制<br />简化分发部署<br />。。。<br />WHY:为什么用RPM/YUM<br />
源代码编译安装<br />二进制执行文件<br />可执行脚本<br />Shell命令<br />文本配置文件<br />。。。<br />WHAT:什么适合打成RPM包<br />
HOW: 打包工具rpmbuild<br />1. 构建二进制rpm包<br />rpmbuild –bb x.spec<br />2. 构建源码rpm包<br />rpmbuild –bsx.spec<br />3. 同时构建二进制和源rpm...
打包工作路径<br />Default:/usr/src/redhat<br />BUILD:            解包编译<br />BUILDROOT: 安装<br />RPMS:            目标rpm包<br />SOURC...
自定义打包工作路径<br />vi ~/.rpmmacros<br />%_topdir /home/ningoo/rpm<br />%_prefix /u01/mysql<br />mkdir /home/ningoo/rpm<br />cd...
SPEC的精髓:宏<br />默    认:/usr/lib/rpm/macros or /etc/rpm/macros<br />自定义:~/.rpmmacros<br />查看所有宏<br />rpmbuild  --showrc<br />
常见宏<br />%_topdir工作根目录<br />%_tmpdir工作临时目录<br />%_prefix  前导目录<br />%optflags编译优化参数<br />%prep      准备阶段<br />    %setup 解...
SPEC文件<br />第一部分:包的详细信息描述<br />Name: helloworld<br />Summary: Hello World!<br />Version: 0.1<br />Release: 1<br />License:...
SPEC文件<br />第一部分:包的详细信息描述<br />$ rpm -qpi myddl-0.1-1.i386.rpm <br />Name        : myddl                        Relocation...
SPEC文件<br />第二部分:打包过程控制<br />%prep 准备阶段<br />解压SOURCES下的.tar.gz包<br />%setup -q<br />如果源.tar.gz包没有目录,则需要创建目录<br />%setup -...
编写SPEC文件<br />第二部分:打包过程控制<br />%build 编译阶段<br />%configure宏或者自己<br />./configure –prefix=%{_prefix}<br />编译<br />make -j `...
编写SPEC文件<br />第二部分:打包过程控制<br />%install 安装阶段<br />%make_install宏或者自己<br />make DESTDIR=$RPM_BUILD_ROOT install<br />or<br ...
编写SPEC文件<br />第二部分:打包过程控制<br />%files RPM文件生成<br />设置文件默认权限和属主<br />%defattr(755,mysql,dba)<br />%attr(755,mysql,dba) %{_p...
编写SPEC文件<br />第三部分:安装卸载控制部分<br />%pre 安装前执行<br />%post 安装结束执行<br />%preun卸载前执行<br />%postun卸载后执行<br />
MySQL5.1打包演示<br />…<br />
MySQL5.5打包演示<br />…<br />
RPM包安装卸载<br />安装(只有relocatable的可以使用prefix执行另外的安装目录)<br />rpm -i -prefix mysql-5.1.48.1.x86_64.rpm<br />卸载<br />rpm -e mysq...
YUM(YellowDog Updater, Modified)<br />配置文件<br />/etc/yum/<br />/etc/yum.conf<br />/etc/yum.repos.d<br />
YUM(YellowDog Updater, Modified)<br />安装/更新/卸载<br />yum install mysql<br />yum update mysql<br />yum remove mysql<br />
YUM(YellowDog Updater, Modified)<br />上传RPM到YUM仓库<br />上传工具<br />sudo yum install yumtools -b current<br />*-b 分支,包括stable...
参考<br /><ul><li>Maximum RPM
RPM包rpmbuild SPEC文件深度说明</li></li></ul><li>追求简单,做到极致<br />The End<br />Thanks~~<br />
Upcoming SlideShare
Loading in...5
×

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

10,600

Published on

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,600
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
116
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

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

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

    Clipping is a handy way to collect important slides you want to go back to later.

×