`

构建mysqlRPM安装包

阅读更多
构建环境
yum -y groupinstall "Development Tools"
yum -y install ruby ruby-devel rubygems gcc openssl-devel

安装FPM
gem sources --add http://mirrors.aliyun.com/rubygems/ --remove http://rubygems.org/
gem install arr-pm fpm

获取安装安装编译后的安装文件
获取安装的MySQL

[root@localhost ~]# rpm -qa | grep mysql
mysql-community-server-5.7.20-1.el7.x86_64
mysql-community-common-5.7.20-1.el7.x86_64
mysql-community-client-5.7.20-1.el7.x86_64

mysql-community-libs-5.7.20-1.el7.x86_64
获取安装MySQL的安装目录及文件

rpm -ql mysql-community-server-5.7.20-1.el7.x86_64 mysql-community-common-5.7.20-1.el7.x86_64 mysql-community-client-5.7.20-1.el7.x86_64 mysql-community-libs-5.7.20-1.el7.x86_64

将获取的文件拷贝到指定目录

mkdir mysql-5.7.20
rpm -ql mysql-community-server-5.7.20-1.el7.x86_64 mysql-community-common-5.7.20-1.el7.x86_64 mysql-community-client-5.7.20-1.el7.x86_64 mysql-community-libs-5.7.20-1.el7.x86_64 | xargs cp  --parent -rf --target-directory ./mysql-5.7.20

查看目录结构
	[root@localhost ~]# tree mysql-5.7.20/ -L 2
	mysql-5.7.20
	├── etc
	│   ├── ld.so.conf.d
	│   ├── logrotate.d
	│   ├── my.cnf
	│   └── my.cnf.d
	├── usr
	│   ├── bin
	│   ├── lib
	│   ├── lib64
	│   ├── sbin
	│   └── share
	└── var
			├── lib
			└── run

打tar包:
tar zcf mysql-5.7.20.tar.gz mysql-5.7.20/ --remove-files


before_install.sh
#!/bin/bash

/usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || :
/usr/sbin/useradd -M -N -g mysql -o -r -d /var/lib/mysql -s /bin/false \
    -c "MySQL Server" -u 27 mysql >/dev/null 2>&1 || :

after_install.sh
#!/bin/bash

/bin/touch /var/log/mysqld.log >/dev/null 2>&1 || :
/bin/chown mysql:mysql -R /var/log/mysqld.log /var/run/mysqld /var/lib/mysql /var/lib/mysql-files /var/lib/mysql-keyring>/dev/null 2>&1 || :
/usr/bin/systemctl enable mysqld >/dev/null 2>&1 || :
/usr/bin/systemctl restart mysqld.service >/dev/null 2>&1 || :

before_remove.sh
#!/bin/bash

# Package removal, not upgrade 
systemctl --no-reload disable mysqld.service > /dev/null 2>&1 || : 
systemctl stop mysqld.service > /dev/null 2>&1 || :

after_remove.sh
#!/bin/bash

systemctl daemon-reload >/dev/null 2>&1 || :
mv /var/lib/mysql /var/lib/mysql-$(data +%Y%m%d-%H%M)
rm -rf /usr/share/doc/mysql-community-*
rm -rf /usr/share/mysql /usr/lib64/mysql/ 

制作RPM安装包
mkdir -p /data/{download,rpms/pkgs}
cp mysql-5.7.20.tar.gz /data/rpms
cd /data/rpms
tar zxf mysql-5.7.20.tar.gz
export DIR_RPM_INSTALL=/data/rpms/mysql-5.7.20

fpm -f -s dir -t rpm -p $(pwd) -n mysql -v '5.7.20' \
    -C ${DIR_RPM_INSTALL} \
    --category=Applications/Databases \
    --url 'https://dev.mysql.com/doc/refman/5.7/en/' \
    --description 'mysql-5.7.20' \
    --vendor 'www.asiacom.net.cn' \
    --license 'GPL' \
    --iteration 1.el7 \
    --conflicts 'mariadb-libs' \
    -d '/usr/bin/perl net-tools perl(Getopt::Long) perl(strict)' \
    --before-install ${DIR_RPM_INSTALL}/usr/share/mysql/script/before_install.sh \
    --after-install ${DIR_RPM_INSTALL}/usr/share/mysql/script/after_install.sh \
    --before-remove ${DIR_RPM_INSTALL}/usr/share/mysql/script/before_remove.sh \
    --after-remove ${DIR_RPM_INSTALL}/usr/share/mysql/script/after_remove.sh \
    -m "zhangliqiang@asiacom.net.cn" 

查看RPM的属性信息
[root@localhost rpms]# rpm -pqi mysql-5.7.20-1.el7.x86_64.rpm 
Name        : mysql
Version     : 5.7.20
Release     : 1.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Databases
Size        : 1037310351
License     : GPL
Signature   : (none)
Source RPM  : mysql-5.7.20-1.el7.src.rpm
Build Date  : 2019年03月20日 星期三 18时28分22秒
Build Host  : localhost
Relocations : / 
Packager    : zhangliqiang@asiacom.net.cn
Vendor      : www.asiacom.net.cn
URL         : https://dev.mysql.com/doc/refman/5.7/en/
Summary     : mysql-5.7.20
Description :
mysql-5.7.20

RPM包验证:
[root@localhost rpms]# rpm -K mysql-5.7.20-1.el7.x86_64.rpm 
mysql-5.7.20-1.el7.x86_64.rpm: sha1 md5 确定

查看RPM包目录结构:
[root@localhost rpms]# rpm -pql mysql-5.7.20-1.el7.x86_64.rpm 
...
/etc/my.cnf
/usr/bin/mysql
...
/usr/share/mysql/script/after_install.sh
/usr/share/mysql/script/after_remove.sh
/usr/share/mysql/script/before_install.sh
/usr/share/mysql/script/before_remove.sh
...
/var/run/mysqld/mysqld.pid

查看RPM包中的脚本信息:
[root@localhost rpms]# rpm -pq --scripts mysql-5.7.20-1.el7.x86_64.rpm 
preinstall scriptlet (using /bin/sh):
#!/bin/bash

/usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || :
/usr/sbin/useradd -M -N -g mysql -o -r -d /var/lib/mysql -s /bin/false \
    -c "MySQL Server" -u 27 mysql >/dev/null 2>&1 || :
postinstall scriptlet (using /bin/sh):
#!/bin/bash

/bin/touch /var/log/mysqld.log >/dev/null 2>&1 || :
/bin/chown mysql:mysql -R /var/log/mysqld.log /var/run/mysqld /var/lib/mysql /var/lib/mysql-files /var/lib/mysql-keyring>/dev/null 2>&1 || :
/usr/bin/systemctl enable mysqld >/dev/null 2>&1 || :
/usr/bin/systemctl restart mysqld.service >/dev/null 2>&1 || :
preuninstall scriptlet (using /bin/sh):
#!/bin/bash

# Package removal, not upgrade 
systemctl --no-reload disable mysqld.service > /dev/null 2>&1 || : 
systemctl stop mysqld.service > /dev/null 2>&1 || :
postuninstall scriptlet (using /bin/sh):
#!/bin/bash

systemctl daemon-reload >/dev/null 2>&1 || :
mv /var/lib/mysql /var/lib/mysql-$(data +%Y%m%d-%H%M)
rm -rf /usr/share/doc/mysql-community-*
rm -rf /usr/share/mysql /usr/lib64/mysql/

rpm的安装:

* rpm默认安装时默认的根目录就是系统的'/':
* rpm手动指定安装时的根目录[ --prefix=/temp/roach]:
[root@localhost ~]# rpm -ivh mysql-5.7.20-1.el7.x86_64.rpm
分享到:
评论

相关推荐

    银河麒麟兆芯MYSQL离线安装包mysql5.7_kylin_i386.zip

    在这样的背景下,"银河麒麟兆芯MYSQL离线安装包mysql5.7_kylin_i386.zip" 是一个专为银河麒麟操作系统和兆芯处理器设计的MySQL 5.7数据库的离线安装包。这个包确保了在没有网络连接的情况下,用户也能在银河麒麟系统...

    银河麒麟_飞腾_MYSQL 离线安装包 mysql5.7_kylin_arm64.zip

    总的来说,"银河麒麟_飞腾_MYSQL 离线安装包 mysql5.7_kylin_arm64.zip" 提供了一种在国产硬件上部署和使用MySQL数据库的有效途径,确保了数据服务的稳定运行,同时也满足了在特定环境下的安全需求。通过深入理解和...

    mysql数据库安装包压缩包

    MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它以其高效、稳定和易于管理的特点在Web开发领域占据了重要地位。本压缩包包含了MySQL...通过熟练掌握MySQL,你将能够构建高效、可靠的数据存储解决方案。

    mysql-python安装包

    总的来说,`mysql-python`(或其替代品)是Python开发者连接和操作MySQL数据库的重要工具,对于构建数据驱动的应用程序至关重要。理解和掌握其安装与使用方法,对于Python开发者来说是非常基础且必要的技能。

    mysql-5.6.41安装包

    MySQL是世界上最受欢迎的开源数据库系统之一,特别是在Web应用程序中。MySQL 5.6.41是该系列的一个重要版本,提供了许多性能优化、...通过正确安装和配置,你可以充分利用其优势,构建高效、可靠的数据存储解决方案。

    MySQL安装包

    1. **下载**:可以从MySQL官方网站获取适合您操作系统的安装包。对于Windows用户,通常会下载到一个`.msi`文件;对于Linux用户,可能需要下载`.tar.gz`或`.rpm`文件。 2. **安装**:在Windows上,双击`.msi`文件,...

    mysql-5.7.25-el7-x86-64.tar.zip centos7 mysql5.7 安装包

    首先,我们需要从官方下载地址获取MySQL 5.7.25的安装包。你可以通过访问以下链接来下载:<https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.25-el7-x86_64.tar.gz>。这是一个针对64位CentOS 7系统的...

    mysql安装包及安装脚本

    本文将详细介绍如何使用提供的MySQL安装包和安装脚本来在Linux环境中快速安装和卸载MySQL。 一、MySQL 5.7.28 的特性 MySQL 5.7.28引入了许多性能优化和新特性,包括: 1. InnoDB存储引擎的改进:提供更快的事务...

    自制Mysql5.6源码编译安装包

    然而,源码编译的过程通常比较复杂,需要解决各种依赖问题,这个安装包则解决了这个问题,预先收集并打包了所有必要的RPM包。 在描述中提到,你需要将这个压缩包上传到运行CentOS 6.5的服务器,然后解压并执行`./...

    Linux系统下JDK-MySQL-tomcat安装包.rar

    在Linux系统中,Java开发工具包(JDK)、MySQL数据库和Tomcat服务器是构建和运行Web应用程序的关键组件。本文将详细介绍如何在Linux环境下安装和配置这些软件。 首先,我们需要了解JDK。Java Development Kit(JDK...

    rpm的php+apache安装包

    【描述】:描述中提到由于大小限制,MySQL的RPM安装包没有包含在这个压缩包里,但可以通过博主的博客找到下载链接。这暗示了在搭建LAMP(Linux、Apache、MySQL、PHP)环境时,用户需要自行下载并安装MySQL。LAMP是...

    Linux_mysql_5.6.24安装包.rar

    本资源“Linux_mysql_5.6.24安装包.rar”提供了在Linux环境中安装MySQL 5.6.24版本的具体RPM包,以及相关的JDBC驱动,为在Linux上构建数据库服务提供了便利。 首先,我们来详细了解一下MySQL 5.6.24这个版本。MySQL...

    linux mysql安装包

    MySQL在Web应用程序中被广泛使用,与PHP、Apache等开源软件结合,构建了低成本、高性能的LAMP(Linux、Apache、MySQL、PHP/Perl/Python)架构。 2. **i386架构**:i386代表的是32位Intel处理器的架构,这在早期的...

    mysql高可用MHA节点node和管理manage安装包rpm

    MySQL高可用性解决方案MHA(Master High Availability)是一种用于...综上所述,MHA是构建MySQL高可用性环境的重要工具,通过RPM包安装可以简化部署过程。正确配置和管理MHA,将有助于提高数据库系统的稳定性和可靠性。

    Tengine服务器快速搭建方法 云服务器一键安装LTMP(TengineRPM一键安装)

    总结起来,TengineRPM一键安装包为开发者和系统管理员提供了一个快速、便捷的途径,构建一个具备高可用性和高性能的Web服务环境。无论是个人项目还是企业级应用,Tengine+LTMP的组合都是一个值得考虑的优秀选择。

    tomcat+mysql+redis安装包.zip

    本压缩包“tomcat+mysql+redis安装包.zip”包含了用于Linux系统的三个关键组件:Tomcat、MySQL Server和Redis,这些都是Web应用开发与部署不可或缺的部分。接下来,我们将深入探讨这三个组件以及它们在Linux环境中的...

    rpm打包及企业YUM仓库构建

    ### RPM 打包与企业 YUM 仓库构建详解 #### 一、RPM与YUM仓库概述 在Linux环境中,管理软件包的方式多种多样。其中,RPM (Red Hat Package Manager) 和 YUM (Yellowdog Updater Modified) 是两种非常重要的工具。...

    linux中mysql二进制资源包安装全过程附mysql安装包

    在Linux系统中,MySQL是一个广泛使用的开源关系型数据库管理系统,对于开发者和系统管理员来说,它是构建Web应用程序和服务的重要工具。本文将详细介绍如何在Linux(包括CentOS 6、CentOS 7、RHEL 6和RHEL 7)上安装...

    Centos系统Mysql5.7.25官方安装文件(带Boost的版本)和CMake安装包3.0

    你需要先安装CMake 3.0或更高版本,然后使用其命令行工具来配置和构建MySQL源代码。 安装MySQL 5.7.25的基本步骤如下: 1. **下载安装包**:从MySQL官方网站获取适用于CentOS的MySQL 5.7.25 RPM包,同时确保也下载...

    MySQL 5.7.28 开发资源包

    该资源包包含了开发人员所需的头文件、库文件和其他必要的组件,以便在这些64位ARM平台上构建和调试MySQL相关的应用程序。 首先,`mysql-community-devel-5.7.28-1.el7.aarch64.rpm` 文件是主要的开发包,它属于Red...

Global site tag (gtag.js) - Google Analytics