Механизм хранения архивов не включен сборкой MySQL по умолчанию в CentOS / RHEL. Я хотел бы включить его на нашем сервере CentOS 5.4. Моей первой реакцией было изменить файл SPEC для файла SRPMS, но этот указывает, что это может быть не так просто. Всегда есть возможность собрать исходный код MySQL, но я бы предпочел, если возможно, остаться в мире RPMS / Yum.
Есть ли у кого-нибудь успешный подход к этому с помощью RPMS / SRPMS / Yum? Какие-то патчи, которые делают эту работу безупречной с SRPMS?
Я создаю MySQL с изменениями в файле SPECS для MySQL и включенным механизмом хранения архивов. Вот подробный шаг о том, как это запустить:
Установите yum-utils:
sudo yum install yum-utils
Включите SRPMS RedHat в репозитории CentOS:
sudo vi /etc/yum.repos.d/srpm.repo
Добавьте следующую конфигурацию репо:
[rhel-src]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
Я не мог использовать $releasever
в URL-адресе, но нужно было установить 5Server
.
Загрузите пакет SRPMS:
yumdownloader --source mysql-server
Настройте область сборки для пользователя без полномочий root:
yum install rpm-build redhat-rpm-config
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
rpm -i mysql-server-5.0.xx.src.rpm
Установите необходимые инструменты разработки:
yum install gcc-c++ libtool gperf automake ncurses-devel readline-devel openssl-devel zlib-devel
Чтобы найти все необходимые библиотеки и инструменты, просто попробуйте выполнить следующую команду:
cd ~/rpmbuild/SPECS/
Измените файл спецификации:
vi ~/rpmbuild/SPECS/mysql.spec
Я добавил следующее в файл спецификации (я также хотел включить механизм федеративного хранилища):
%configure \
...
--with-archive-storage-engine \
--with-federated-storage-engine \
...
Помните: Это могло измениться в MySQL 5.1, где plugin
используется для указания механизмов хранения.
Чтобы ускорить процесс сборки, вам следует подумать о внесении этого изменения:
%{!?runselftest:%define runselftest 0}
Затем запустите (как пользователь без полномочий root):
cd ~/rpmbuild/SPECS/
rpmbuild -ba mysql.spec
Вы найдете RPM в ~/rpmbuild/RPMS/i386
. Просто установите и запустите MySQL, и вы получите версию MySQL с включенным механизмом хранения архивов.