Files
tms-mysql-pkg/PKGBUILD
2025-12-12 23:36:00 +08:00

103 lines
3.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Maintainer: Your Name <your.email@example.com>
pkgname=smarttms-mysql
pkgver=5.6.47
pkgrel=1
pkgdesc="MySQL 5.6.47 Database Server for SmartTMS Application (pre-compiled binary)"
arch=('x86_64')
url="https://www.mysql.com/"
license=('GPLv2')
# Arch Linux 通常不直接使用 group 字段,但可以作为 pkgdesc 的补充
# group="Applications/Databases"
# Source0 是 MySQL 预编译二进制包
# Source1 是自定义的 my.cnf 配置文件
# Source2 是 systemd 服务单元文件
# Source3 是 SmartTMS 应用程序的初始数据库 SQL 文件
# 注意:这里假设这些文件与 PKGBUILD 在同一目录。
# 对于 mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz建议提供一个可下载的URL或确保本地存在。
# 如果你希望从官方下载,可以修改为:
# "mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz::https://downloads.mysql.com/archives/get/file/mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz"
source=(
"mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz"
"my.cnf"
"mysqld.service"
"tms_db_s3.sql"
)
# 构建依赖
# systemd 是运行时依赖tar/gzip 是 pacman 自动处理的
makedepends=('systemd') # systemd 用于处理服务文件
# 运行时依赖
# shadow-utils 提供 useradd/groupadd
# libaio 是 MySQL 常见的运行时依赖
# perl-data-dumper 是 mysql_install_db 脚本的依赖
depends=(
'systemd'
'libaio'
'perl-data-dumper'
)
# 安装脚本,用于处理用户/组、数据目录、服务启用和数据库初始化
install="${pkgname}.install"
# 校验和,请使用 makepkg -g 生成
# makepkg -g >> PKGBUILD
sha256sums=('be2fa4fffc74dff626cfa8d62f16d9eef93bcd81bc8133ae500e04460e1fb795'
'a664d5b110640f877bd994e3218a0ae4531a0493f0a3869eea8973928f06e0cd'
'92cc61a5db1e791e463a030955566c1a6eb308f1cd3ff921f6d7bd1e4cdd48ff'
'b9e6e58cbc4809a2dd3432d36272ba71e0fc63af4a48288b24f30968c830e0c9')
# 配置备份,如果用户修改了这些文件,升级时会生成 .pacnew 文件
backup=(
'etc/my.cnf'
'etc/profile.d/mysql.sh'
'etc/systemd/system/mysqld.service' # 虽然是服务文件,但如果用户修改了,也可以备份
)
prepare() {
# 解压 MySQL 二进制包
# tar -xzf "${srcdir}/mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz" -C "${srcdir}"
# 假设 tarball 内部顶层目录名为 mysql-5.6.47-linux-glibc2.12-x86_64
cd "${srcdir}/mysql-5.6.47-linux-glibc2.12-x86_64"
}
build() {
# 对于预编译二进制包,通常不需要编译步骤。
# 如果需要,可以在这里添加编译命令。
msg "No build step required for pre-compiled binaries."
}
package() {
# 清理构建根目录 (makepkg 会自动清理 $pkgdir)
# rm -rf "${pkgdir}"
# 创建安装路径
install -d "${pkgdir}/usr/local"
install -d "${pkgdir}/etc/systemd/system" # systemd 服务文件通常放在这里
install -d "${pkgdir}/etc/profile.d"
install -d "${pkgdir}/usr/share/${pkgname}" # 用于存放 SQL 导入文件
# 复制 MySQL 二进制文件到 /usr/local/
# 注意prepare 已经将内容解压到 "${srcdir}/mysql-5.6.47-linux-glibc2.12-x86_64"
cp -a "${srcdir}/mysql-5.6.47-linux-glibc2.12-x86_64/." "${pkgdir}/usr/local/mysql-5.6.47-linux-glibc2.12-x86_64"
# 创建 /usr/local/mysql 软链接
ln -s mysql-5.6.47-linux-glibc2.12-x86_64 "${pkgdir}/usr/local/mysql"
# 复制配置文件
install -m644 "${srcdir}/my.cnf" "${pkgdir}/etc/my.cnf"
# 复制 systemd 服务文件
install -m644 "${srcdir}/mysqld.service" "${pkgdir}/etc/systemd/system/mysqld.service"
# 创建 PATH 环境变量配置脚本
echo 'PATH=/usr/local/mysql/bin:$PATH' > "${pkgdir}/etc/profile.d/mysql.sh"
chmod 0644 "${pkgdir}/etc/profile.d/mysql.sh"
# 复制初始 SQL 导入文件
install -m644 "${srcdir}/tms_db_s3.sql" "${pkgdir}/usr/share/${pkgname}/tms_db_s3.sql"
}