По порядку в общем-то.
http://redis.io/topics/quickstart
И как хорошие котики, мы хотим запустить make test. И получаем ошибку, что tcl8.5 not found
Ок, ставим эту приблуду.
(стырено http://dragkh.wordpress.com/2012/05/15/install-redis-stable-2-4-13-on-centos-release-6-2-x86_64-and-slackware-12-0-0-i686/)
Теперь make test запускается.
Ок, следуем дальше.
Пыщщщщ! Инсталл-сервер внезапно выдает следующий лулз:
Installing service...
./install_server.sh: line 178: update-rc.d: command not found
Но мы же умные котики! Открываем файл, находим строку 178, и что мы там видим: проверка на существование команды chkconfig if [ !`which chkconfig` ] ; then
В общем, гениальный скрипт ВНЕЗАПНО? заходит в этот if блок и пытается выполнить update-rc.d в RHEL системе :D
Включаем покерфейс и, к примеру, меняем содержимое этого места на
#Install the service
echo "Installing service..."
if [ !`which chkconfig` ] ; then
chkconfig --level 345 redis_$REDIS_PORT on && echo "Successfully added to runlevels 345!"
else
# we're chkconfig, so lets add to chkconfig and put in runlevel 345
chkconfig --add redis_$REDIS_PORT && echo "Successfully added to chkconfig!"
chkconfig --level 345 redis_$REDIS_PORT on && echo "Successfully added to runlevels 345!"
fi
http://redis.io/topics/quickstart
И как хорошие котики, мы хотим запустить make test. И получаем ошибку, что tcl8.5 not found
You need 'tclsh8.5' in order to run the Redis test
ВТФ? (спойлер: на этом приключения не заканчиваются)Ок, ставим эту приблуду.
wget http://prdownloads.sourceforge.net/tcl/tcl8.5.11-src.tar.gztar xvfz tcl8.5.11-src.tar.gzcd tcl8.5.11/cd unix/./configuremake -j3removepkg tcl-8.4.15-i486-1make installldconfigТеперь make test запускается.
Ок, следуем дальше.
make install
cd utils
./install_server.sh
Пыщщщщ! Инсталл-сервер внезапно выдает следующий лулз:
Installing service...
./install_server.sh: line 178: update-rc.d: command not found
Включаем покерфейс и, к примеру, меняем содержимое этого места на
#Install the service
echo "Installing service..."
if [ !`which chkconfig` ] ; then
#if we're not a chkconfig box assume we're able to use update-rc.d
chkconfig --add redis_$REDIS_PORT && echo "Successfully added to chkconfig!"chkconfig --level 345 redis_$REDIS_PORT on && echo "Successfully added to runlevels 345!"
else
# we're chkconfig, so lets add to chkconfig and put in runlevel 345
chkconfig --add redis_$REDIS_PORT && echo "Successfully added to chkconfig!"
chkconfig --level 345 redis_$REDIS_PORT on && echo "Successfully added to runlevels 345!"
fi
(или пишем правильный if блок, но мы же хотим послужить богу Ганеше?)
Ругается на service redis_6379 does not support chkconfig, чуть позже фиксим)
ок, теперь инсталл скрипты запускаются.
Осталось запустить собсна redis.
ТАДААА!
[root@localhost utils]# /etc/init.d/redis_6379 start
exists, process is already running or crashed
Процесс не запущен нифига.
Ок, открываем редактором и дебажим. Вуаля - переменная $PIDFILE не задается.
Лечится подменой содержимого файла конфигом доброго человека https://github.com/antirez/redis/blob/unstable/utils/redis_init_script
На случай выпила репозитория - оставлю это здеся.
REDISPORT=6379EXEC=/usr/local/bin/redis-serverCLIEXEC=/usr/local/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pidCONF="/etc/redis/${REDISPORT}.conf"case "$1" instart)if [ -f $PIDFILE ]thenecho "$PIDFILE exists, process is already running or crashed"elseecho "Starting Redis server..."$EXEC $CONFfi;;stop)if [ ! -f $PIDFILE ]thenecho "$PIDFILE does not exist, process is not running"elsePID=$(cat $PIDFILE)echo "Stopping ..."$CLIEXEC -p $REDISPORT shutdownwhile [ -x /proc/${PID} ]doecho "Waiting for Redis to shutdown ..."sleep 1doneecho "Redis stopped"fi;;*)echo "Please use start or stop as first argument";;esacТеперь можем запустить ps aux | grep redis, и убедиться, что это творение сумрачного гения РАБОТАЕТ.[root@localhost utils]# ps aux | grep redisroot 13452 0.3 0.0 28080 1584 ? Ssl 23:33 0:00 /usr/local/bin/redis-server /etc/redis/6379.conf root 13474 0.0 0.0 4940 848 pts/0 S+ 23:33 0:00 grep --color=auto redis(да, от рута. Позже разберусь.)