首页 > Linux系统管理 > 制作MySQL的rpm包

制作MySQL的rpm包

2014年10月21日

制作MySQL的rpm包
http://blog.chinaunix.net/uid-16844903-id-3400438.html
制作流程
工具
yum install rpm-build
依赖包
yum install gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel libaio-devel bison cmake
准备源码包,放到~/rpmbuild/SOURCES目录下
在SPECS/目录下,编辑spec文件
执行rpmbuild命令
介绍
RPM 已编译的程序,RedHat Package Manager
SRPM 未编译的原始码

在Percona-Server的src.rpm的基础上进行修改.除了路径和名称,没有做其他改动.

系统
CentOS 6.2 x86_64

目录结构
在~/rpmbuild目录下

路径 说明
BUILD 解压SOURCES目录中的tar.gz源码包后,放到该目录下
BUILDROOT 执行make install时的”虚拟”目录
RPMS 打包好的rpm文件
SOURCES 源码包(tar.gz)
SPECS spec配置文件
SRPMS 打包好的src.rpm文件
rpm安装/升级命令
rpm -ivh package_name
rpm -Uvh package_name rpm
-Fvh package_name

选项与参数:
-i: install 的意思
-v: 察看更绅部的安装信息画面
-h:以安装信息列显示安装迚度
-U: 升级软件,如果系统未安装指定软件,则进行安装
-F: 升级指定的软件,如果该软件未安装,则不执行任何操作
卸载
rpm -e package_name

强制卸载
rpm -e –nodeps package_name
重建rpm数据库
rpm –rebuilddb
查询某个软件是否安装
rpm -qa|grep package_name

列出完成的安装信息
rpm -ql packa_name
rpmbuild
# 同时产生rpm和srpm包
rpmbuild -ba spec

#只产生rpm包
rpmbuild -bb spec

# 用srpm包生成rpm包
rpmbuild –rebuild src.rpm
spec文件解析变量/宏
变量/宏 说明
RPM_BUILD_DIR ~/rpmbuild/BUILD
RPM_BUILD_ROOT ~/rpmbuild/BUILDROOT
例如 /home/lianjie.ning/rpmbuild/BUILDROOT/Percona-Server-55-5.5.20-rel24.1.qunar.rhel6.x86_64
%{_sysconfdir} /etc
%{_sbindir} /usr/sbin
%{_datadir} /usr/share
%{_mandir} /usr/share/man
%{_libdir} /usr/lib64
%{_prefix} /usr
%{_bindir} /usr/bin
%{_localstatedir} /usr/var
几个重要的”段落”
名称 解释
%description 说明文档
%prep 准备部分
%setup 解压SOURCES目录中的源码包
%build 在BUILD目录编译
%install 安装到BUILDROOT虚拟目录
%clean 清理文件
%files 将指定的文件添加到rpm包中,如果有遗漏,会报错退出
%changelog 更新记录
规范格式

Name:
Version:
Release: 1%{?dist}
Summary:
Group:
License:
URL:
Source0:
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires:
Requires:
%description
%prep
%setup -q
%build
%configure
make %{?_smp_mflags}
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%doc
%changelog
参考:
<鸟哥的Linux私房菜>-二十三章
http://hlee.iteye.com/blog/343499
http://www.rpm.org/max-rpm/s1-rpm-inside-files-list-directives.html
http://zh.opensuse.org/index.php?title=openSUSE:Specfile_guidelines&variant=zh
http://fedoraproject.org/wiki/Packaging/RPMMacros#RPM_directory_macros

分类: Linux系统管理 标签: , ,
本文的评论功能被关闭了.