Потребовалось поднять локально проект, жёстко завязанный на sphinx. Причем sphinx дремучей 0.9 версии. Сходу возникли проблемы. Для родной системы (у меня Arch) сборок нет — такое старьё в репах не держат. Собрать из исходников так-же оказалось невозможным — требует старой версии gcc.
В результате установил в virtualbox-е Debian — ту-же версию, что использовалась на сервере проекта. Сходу Debian надежд не оправдал — пакета с такой версией sphinx так-же не оказалось.
Поэтому накурившись манов приступил к ручной установке.
Ставим зависимости
apt-get install sudo g++ g++-4.4
Выбираем нужную версию gcc
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 20
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
везде выбираем gcc 4.4
Ставим с исходников
Распаковываем
wget http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz
rm -rf sphinx-0.9.9
tar -xzvf sphinx-0.9.9.tar.gz
cd sphinx-0.9.9
Конфигурируем и компилируем — в моём случае postgresql был не нужен
./configure --with-mysql --without-pgsql --prefix=/usr --localstatedir=/var --sysconfdir=/etc/sphinx
rm -rf /tmp/install-sphinx-0.9.9
mkdir /tmp/install-sphinx-0.9.9
make install DESTDIR=/tmp/install-sphinx-0.9.9
Собираем пакет
fpm -sdir -a i386 -t deb -n sphinx -v 0.9.9 -C /tmp/install-sphinx-0.9.9 -p sphinx-VERSION_ARCH.deb usr/bin usr/etc usr/var
Устанавливаем собранный пакет
sudo dpkg -i ./sphinx-0.9.9/sphinx_0.9.9-1_i386.deb
Вот собственно и все — ключевой момент всего квеста gcc версии не выше 4.4, остальное так — присказка.
Комментарии