В моей организации нам необходимо развернуть пользовательские пакеты mysql для наших узлов Scientific Linux. Нам нужна последняя версия mysql и каталог установки как
/ opt / mysql
Я пытаюсь собрать из архива Generic Linux Source Code mysql-5.5.18.tar.gz
Это моя первая попытка создать пакет rpm, и я застрял с этим файлом спецификации:
Name: mysql
Version: 5.5.18
Release: 1
Summary: よろしく
Group: incubation
License: GPL
Source0: mysql-5.5.18.tar.gz
BuildRoot: %{_tmppath}/%{name}-buildroot
Source1: mysql.sysconfig
Source2: mysql.init
Source3: my.cnf
%description
first shot
%prep
%setup -q
%build
cmake . -DCMAKE_INSTALL_PREFIX="/opt/mysql" \
-DMYSQL_DATADIR="/var/lib/mysql"
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
mkdir -p $RPM_BUILD_ROOT/var/log
touch $RPM_BUILD_ROOT/var/log/mysqld.log
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
mkdir -p $RPM_BUILD_ROOT/var/run/mysqld
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
install -m 0755 -d $RPM_BUILD_ROOT/var/lib/mysql
%clean
rm -rf $RPM_BUILD_ROOT
С такими ошибками:
rpmbuild -ba SPECS/mysql-server.spec
[ STRIPPED DATA ]
-- Installing: /home/jean_daniel/rpmbuild/BUILDROOT/mysql-5.5.18-1.x86_64/opt/mysql/man/man8/mysqld.8
+ mkdir -p /home/jean_daniel/rpmbuild/BUILDROOT/mysql-5.5.18-1.x86_64/var/log
+ touch /home/jean_daniel/rpmbuild/BUILDROOT/mysql-5.5.18-1.x86_64/var/log/mysqld.log
+ mkdir -p /home/jean_daniel/rpmbuild/BUILDROOT/mysql-5.5.18-1.x86_64/etc/rc.d/init.d
+ mkdir -p /home/jean_daniel/rpmbuild/BUILDROOT/mysql-5.5.18-1.x86_64/var/run/mysqld
+ mkdir -p /home/jean_daniel/rpmbuild/BUILDROOT/mysql-5.5.18-1.x86_64/etc/sysconfig
+ install -m 0755 -d /home/jean_daniel/rpmbuild/BUILDROOT/mysql-5.5.18-1.x86_64/var/lib/mysql
+ /usr/lib/rpm/find-debuginfo.sh --strict-build-id /home/jean_daniel/rpmbuild/BUILD/mysql-5.5.18
extracting debug info from /home/jean_daniel/rpmbuild/BUILDROOT/mysql-5.5.18-1.x86_64/opt/mysql/bin/mysql_plugin
extracting debug info from /home/jean_daniel/rpmbuild/BUILDROOT/mysql-5.5.18-
[ STRIPPED DATA ]
extracting debug info from /home/jean_daniel/rpmbuild/BUILDROOT/mysql-5.5.18-1.x86_64/opt/mysql/lib/libmysqlclient.so.18.0.0
symlinked /usr/lib/debug/opt/mysql/lib/libmysqlclient.so.18.0.0.debug to /usr/lib/debug/opt/mysql/lib/libmysqlclient_r.so.18.debug
symlinked /usr/lib/debug/opt/mysql/lib/libmysqlclient.so.18.0.0.debug to /usr/lib/debug/opt/mysql/lib/libmysqlclient_r.so.debug
symlinked /usr/lib/debug/opt/mysql/lib/libmysqlclient.so.18.0.0.debug to /usr/lib/debug/opt/mysql/lib/libmysqlclient.so.debug
symlinked /usr/lib/debug/opt/mysql/lib/libmysqlclient.so.18.0.0.debug to /usr/lib/debug/opt/mysql/lib/libmysqlclient_r.so.18.0.0.debug
symlinked /usr/lib/debug/opt/mysql/lib/libmysqlclient.so.18.0.0.debug to /usr/lib/debug/opt/mysql/lib/libmysqlclient.so.18.debug
cpio: mysql-5.5.18/storage/innobase/lexyy.c: Cannot stat: No such file or directory
cpio: mysql-5.5.18/storage/innobase/pars0grm.c: Cannot stat: No such file or directory
cpio: mysql-5.5.18/storage/innobase/pars0grm.y: Cannot stat: No such file or directory
cpio: mysql-5.5.18/storage/innobase/pars0lex.l: Cannot stat: No such file or directory
74358 blocks
+ /usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/brp-python-bytecompile
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
error: Bad file: /home/jean_daniel/rpmbuild/SOURCES/my.cnf: No such file or directory
error: Bad file: /home/jean_daniel/rpmbuild/SOURCES/mysql.init: No such file or directory
error: Bad file: /home/jean_daniel/rpmbuild/SOURCES/mysql.sysconfig: No such file or directory
RPM build errors:
Bad file: /home/jean_daniel/rpmbuild/SOURCES/my.cnf: No such file or directory
Bad file: /home/jean_daniel/rpmbuild/SOURCES/mysql.init: No such file or directory
Bad file: /home/jean_daniel/rpmbuild/SOURCES/mysql.sysconfig: No such file or directory
Не знаю, куда смотреть.
Любые идеи? заранее спасибо
Отсутствующие файлы (указанные в файле спецификации как Source [123]) относятся либо к RedHat, либо к базовому файлу my.cnf. Обычно они не включаются в базовый архив исходных текстов mysql-5.5.18 и обычно добавляются Red Hat в свои пакеты RPM.
Я бы получил SRPM для этой версии MySQL. Перейти к http://dev.mysql.com/downloads/mysql/ и «Выбрать платформу: исходный код». Это даст вам список SRPM для RHEL. Выберите тот, который соответствует вашей версии Scientific, и установите его.
Это даст вам кучу файлов в / usr / src / redhat (я думаю, это было давно), включая файл спецификации RedHat, который вы можете изменить, указав на / opt / mysql. Он также предоставит вам дополнительные файлы, которые вам не хватает в каталоге / usr / src / redhat / SOURCES. Оттуда можно исходить. Процесс сборки RPM ищет эти файлы в каталоге SOURCES. (Спецификационный файл, вероятно, разбивает все на кучу отдельных RPM, когда вы его фактически создаете, то есть клиентский пакет, серверный пакет, библиотеки разработки и т. Д.)
Обновление: взгляните на http://fedoraproject.org/wiki/How_to_create_an_RPM_package#Macros который описывает, как файл спецификации упорядочивает установленные файлы. Я считаю, что вам нужно определить макросы типа «_bindir», «_sbindir» и т. Д. В верхней части файла спецификации.