19 окт. 2009 г.

Восстановление после неудачной установки .deb-пакета

Если вы устанавливали некий deb-пакет, и в процессе вас постигла неудача, выполните следующее (воспользуйтесь этим способом только в случае неудачной установки):
cd /var/lib/dpkg/info
rm package-name.*
Откройте (с правами администратора) в любимом текстовом редакторе файл /var/lib/dpkg/status. Вам нужно удалить секцию с примерно следующим содержанием:
Package: package-name
Status: install ok installed
Priority: extra
Section: alien
Installed-Size: 8440
Maintainer: root

Architecture: amd64

Version: v4.0rc9-999

Depends: blablabla

Conffiles:
Description: blahblahblah
 .
Ну а потом сделать apt-get -f install, дабы удалить следы остаточных конфликтов.
Первоисточник и вдохновитель - тут.

12 окт. 2009 г.

Openfire + Java heap error

При использовании Jabber-сервера Openfire (у меня 3.6.3, но думаю, актуально и на более старых версиях) в linux влюченные plugin-ы, особенно IM Gateway, охочи до памяти. При достаточной активности и количестве подключенных пользователей, пользующих те или иные транспорты, возможно переполнение выделенной java-машине памяти и выпадение сервера в ошибку java.lang.OutOfMemoryError: Java heap space. В качестве решения можно предложить увеличение объема отдаваемой java-машине памяти (по умолчанию дается 32MB). Для этого нужно поправить init-скрипт openfire - ищем определение переменной DAEMON_OPTS и определяем ее следующим образом:
DAEMON_OPTS="$DAEMON_OPTS -server -Xmx128m -DopenfireHome=${DAEMON_DIR} \
-Dopenfire.lib.dir=${DAEMON_LIB} -classpath ${DAEMON_LIB}/startup.jar\
-jar ${DAEMON_LIB}/startup.jar"
Жирным маркером выделена свежедобавленная опция. В данном примере java-машине (и openfire-у соответственно) выделяется 128 метров памяти, чего хватить должно с избытком. Осталось лишь перезапустить сервер /etc/init.d/openfire restart.

5 окт. 2009 г.

Apache 2 + vhosts

Короткое и информативное HOW-TO по настройке нескольких VirtualHost-ов в apache2.

Проблемы при обновлении MySQL

Столкнулся с проблемой при обновлении mysql5:
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
При том, что мускуль сам по себе работает и с консоли к себе нормально пускает. Добавление GRANT'ом пользователя debian-sys-maint в СУБД не помогает. Решение оказалось очень простым. Зачем то дебиановский инсталлер создает файл /etc/mysql/debian.cnf следующего содержания:
Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = aIOlSOy4SM3GGIhA
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = debian-sys-maint
password = aIOlSOy4SM3GGIhA
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

Если этот файл удалить (или закомментировать имеющиеся в нем строки), то скриптами инициализации начинает использоваться дефолтные параметры работы с СУБД. И все работает =)