воскресенье, 8 июля 2012 г.

Ubuntu rvm

В свой последний приезд Лёня Лукин подкинул книженцию по rails. Вроде как дошли руки ее пощупать, но меня поджидал фэил в самом начале пути.

Установил ruby-rvm на Ubuntu 12.04. Начал инсталлить ruby и gems  согласно инструкции.

rvm install 1.9.2

Фигакс, сообщает мне под конец, что установка не удалась посмотрите log.


ERROR: Error running 'make ', please read /usr/share/ruby-rvm/log/ruby-1.9.2-p180/make.log

ERROR: There has been an error while running make. Halting the installation.


Смотрю log. Обнаруживаю там следующую запись.

ossl_ssl.c:110:1: ошибка: «SSLv2_method» undeclared here (not in a function)
ossl_ssl.c:111:1: ошибка: «SSLv2_server_method» undeclared here (not in a function)
ossl_ssl.c:112:1: ошибка: «SSLv2_client_method» undeclared here (not in a function)
make[1]: *** [ossl_ssl.o] Ошибка 1
make[1]: Выход из каталога `/var/cache/ruby-rvm/src/ruby-1.9.2-p180/ext/openssl'
make: *** [mkmain.sh] Ошибка 1

Как же я ненавижу ваш linux, мелькнуло в голове. Дальнейший алгоритм понятен, ищем в Гугле решение.

 # don't use ubuntus openssl 
rvm pkg install openssl 
rvm install 1.9.2 --with-openssl-dir=$rvm_path/usr

Вива, Кальман. Фокус удается. 


Оригинал решения здесь

суббота, 14 апреля 2012 г.

Wtf debian-sys-maint?



Переносили базы mysql в debian из другой опрерационной системы или повредили базу с названием "mysql", или имели счастье установить ее заново? ) Поздравляю, возможно у вас теперь появилась такая вот проблема:
debatest:~# /etc/init.d/mysql restart Stopping MySQL database server: mysqld. Starting MySQL database server: mysqld. Checking for corrupt, not cleanly closed and upgrade needing tables.. /usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)' debatest:~# /usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
Как это исправить? И что это вообще за пользователь такой? Итак, открываем /etc/mysql/debian.cnf находим в нем строку password, запоминаем - это пароль пользователя debian-sys-maint, нужного для запуска хотя-бы проверки таблиц при старте сервера. Заходим в клиента mysql и выполняем два запроса:

GRANT RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '-- тут пишем его пароль --';
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '-- тут пишем его пароль --' WITH GRANT OPTION;

После этого ошибка исправляется и мы плывем дальше. )

Оригинал: http://www.liveinternet.ru/users/stasikos/post80304705/

воскресенье, 22 января 2012 г.

Потеря сессии в IE

Пришлось столкнуться с идиотическим багом, портящим кровь. Информации по нему не так много, поэтому публикую на всякий случай.

Предыстория:
Руководитель проекта сообщил, что пользователь жалуется. Он логинится, передвигается по сайту и вдруг оказывается снова на странице авторизации. Проверили production-сервер и development . Никаких проблем не обнаружили. Но при добавлении очередной фичи , понадобилось проверить production-сервер в IE. И вот оно... Все как говорил пользователь, проходишь авторизацию, начинаешь бродить или даже просто делать refresh страницы - оказываешься на странице аутентификации, куда попадает только незалогиненный пользователь. Делаем вывод, куда-то потерялась сессия. Причем, проблема повторялась на всех доступных версиях IE.

Проверяю на development-сервере и на рабочей машине. Проблем нет. Значит дело 100% не в коде, нужно смотреть настройки сервера. Начинаю искать проблему. В основном попадается околотхенический бред. В конце концов натыкаюсь на то, что нужно.


http://swfupload.org/forum/generaldiscussion/1206

http://simply.com.au/blog/2009/11/flash-uploader-drops-the-session-in-internet-explorer/

Рецепт прост, меняем конфигурацию патча для php suhosin:

suhosin.session.cryptua = off
suhosin.session.encrypt = off

Если вы не имеете доступ к php.ini, вы можете внести эти изменения через .htaccess или в самом коде через ini_set


По умолчанию эти опции включены. То бишь, проблемы возникли именно из-за suhosin и его шифрования сессии на уровне движка php. К сожалению не нашел более полного описания этой проблемы и возникает она не со всеми версиями. На машине, где возникла проблема стоял suhosin patch 0.9.32.1 На моей рабочей машине 0.9.10, на ней никаких проблем не возникает.

понедельник, 30 мая 2011 г.

Cassandra Apache

С Cassandra фокусы не прошли, скорее всего придется устанавливать вручную. Пакет идущий из репозиториев (apache-cassandra) не работает.

Redis CentOS

Для установки Redis добавил на боевой сервер EPEL. После этого спокойно установил.

суббота, 23 октября 2010 г.

Как правильно перемещать новую ветку на удаленный git репозитиорий и с него

Чтобы закинуть новую ветку на удаленный репозиторий:

git push origin newbranch


Чтобы забрать ветку:

не забываем сделать 
git pull

а затем

git checkout -b newbranch origin/newbranch

понедельник, 24 мая 2010 г.

CentOS ImagMagick

Много раз я брался инсталлить на своем серваке ImageMagick. Делал это через yum и погружался в долгие чтения репортов о вылетающих ошибках. Пока наконец не наткнулся на волшебную заметку.

Installing ImageMagick on a centos vps

Unfortunately installing imagemagick can cause some issues

If you get the message "Error: Missing Dependency: udev >= 089-1 is needed by package hal"

DO NOT INSTALL UDEV, udev is known to cause problems with deleting entries in /dev, instead you can install from source yum install make

wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.4.0-9.tar.gz

tar xvfz ImageMagick-6.4.0-9.tar.gz

cd ImageMagick-6.4.0-9/

./configure && make && make install

М-да, сказал я себе, самый стабильный дистрибутив говоришь.... Хм. И заправив рубашку в трусы сел и проинсталли за 6 минут то, что не мог проинсталлить почти год.

Попутно при тесте выскочила ошибка

convert: error while loading shared libraries: libMagickCore.so.2: cannot open shared object file: No such file or directory

решил проблему добавив в /etc/profile

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH


Linux: генерация рандомной строки для пароля

 cat /dev/urandom | tr -dc '[:alnum:]' | fold -w ${1:-20} | head -n 1