1.建立用于制作RPM包的目录:
默认,我们在 /usr/src 目录下建立 rpmbuild 目录:
再在 rpmbuild 目录下建立:BUILD RPMS SOURCES SPECS SRPMS [目录均为大写]
[root@localhost rpmbuild]# mkdir BUILD RPMS SOURCES SPECS SRPMS
注:
在centos 系统中,默认为root/rpmbuild/{ BUILD RPMS SOURCES SPECS SRPMS}
在redhat 系统中,默认为/usr/src/redhat/{BUILD RPMS SOURCES SPECS SRPMS}
但往往我们需要重新定义这个目录:
如下命令:
将新目录路径写入到 当前用户家目录下的.rpmmacros
echo “%_topdir /usr/src/rpmbuild” >> $HOME/.rpmmacros
2.安装mysql 编译需要的相关依赖包:
yum -y install gcc-c++ ncurses-devel make perl bison ncurses cmake
[ 这个spec文件,没有初始化数据库,只做编译]
Summary: MySQL 5.5.37
Name: mysql
Version:5.5.37
Release: 1%{?dist}
License: GPL
URL: http://downloads.mysql.com/archives/get/file/mysql-5.5.37.tar.gz
Group: applications/database
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: cmake
Packager: cloud_data@163.com
Autoreq: no
Source: %{name}-%{version}.tar.gz
prefix: /project/class/mysql
%description
%define MYSQL_USER mysql
%define MYSQL_GROUP mysql
%define __os_install_post %{nil}
%prep
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
%setup -q
%build
CFLAGS=”-O3 -g -fno-exceptions -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing”
CXX=g++
CXXFLAGS=”-O3 -g -fno-exceptions -fno-rtti -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing”
export CFLAGS CXX CXXFLAGS
cmake . \
-DCMAKE_INSTALL_PREFIX:PATH=%{prefix} \
-DSYSCONFDIR:PATH=%{prefix} \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DENABLE_PROFILING:BOOL=ON \
-DWITH_DEBUG:BOOL=OFF \
-DWITH_VALGRIND:BOOL=OFF \
-DENABLE_DEBUG_SYNC:BOOL=OFF \
-DWITH_EXTRA_CHARSETS:STRING=all \
-DWITH_SSL:STRING=bundled \
-DWITH_UNIT_TESTS:BOOL=OFF \
-DWITH_ZLIB:STRING=bundled \
-DWITH_PARTITION_STORAGE_ENGINE:BOOL=ON \
-DWITH_INNOBASE_STORAGE_ENGINE:BOOL=ON \
-DWITH_ARCHIVE_STORAGE_ENGINE:BOOL=ON \
-DWITH_BLACKHOLE_STORAGE_ENGINE:BOOL=ON \
-DWITH_PERFSCHEMA_STORAGE_ENGINE:BOOL=ON \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE:BOOL=ON \
-DWITH_EMBEDDED_SERVER=0 \
-DINSTALL_LAYOUT:STRING=STANDALONE \
-DCOMMUNITY_BUILD:BOOL=ON ;
make -j `cat /proc/cpuinfo | grep processor| wc -l`
%install
make DESTDIR=$RPM_BUILD_ROOT install#%pre%post
#ln -s %{prefix}/lib %{prefix}/lib64
mkdir -p %{prefix}/log
chown -R %{MYSQL_USER}:%{MYSQL_GROUP} %{prefix}/log%preun%clean
rm -rf $RPM_BUILD_ROOT%files
%defattr(-, %{MYSQL_USER}, %{MYSQL_GROUP})
%attr(755, %{MYSQL_USER}, %{MYSQL_GROUP}) %{prefix}
%changelog
4.进入SPECS目录:
执行如下命令:
以下命令 二 选 一
rpmbuild -ba mysql.spec # 这个制作成功会在RPMS里生成rpm包,在SRPMS里生成 源码的 RPM包
rpmbuild -bb mysql.spec # 这个只在在RPMS里生成rpm包
5.下面就可以利用刚才的RPM包安装了
这个安装包相当于 二进制安装包,安装完成后,需要手动初始化数据库,启动数据库