пятница, 27 апреля 2012 г.

Установка jenkins в качестве службы windows

Вначале необходимо создать узел в jenkins с требуемой конфигурацией. Затем запустить машину, которая будет использоваться в качестве узла сборки. Установить на нее java, далее открыть браузер и пройти по адресу http://jenkins_host/computer/node_name/slave-agent.jnlp, где jenkins_host - адрес сервера jenkins, node_name - имя узла сборки на jenkins. Данная команда начнет скачивание java-файла, после запуска которого установиться соединение с jenkins. Из меню исполняемого java-файла можно установить jenkins в качестве службы windows.

Настройка запуска службы jenkins от имени пользователя

По умолчанию, служба jenkins запускается от имени пользователя SYSTEM. Но иногда необходимо выполнять задачи на машине сборки от имени конкретного пользователя, например, выполнить инсталляцию пакета администратором. Для выполнения подобной задачи необходимо сконфигурировать машину сборки и узел на jenkins. На машине сборки в настройках службы указываем имя и пароль пользователя (внимание, пароль не может быть пустым, установите пароль для пользователя), а также заполняем соответствующие поля для узла jenkins.

Выполнение GUI-задач в Jenkins

При необходимости настроить slave на gui режим требуется в настройках узла virtualbox slave указать соответствующую опцию. Также нужно в настройках службы на машине сборки установить возможность взаимодействия с рабочим столом.

четверг, 26 апреля 2012 г.

Линковка с определенной версией so-файла


Для разделяемых библиотек существует понятие real name (libQtGui.so.4.7.0) и soname (libQtGui.so.4).

Линковка приложения будет производится с версией либы, соответствующей soname.

При сборке разделяемой библиотеки soname устанавливает через опции линковщика.

Полезные утилиты:

Просмотр динамических зависимостей:
ldd various_tests

Просмотр soname
readelf -Wa /usr/lib/libQtGui.so | grep SONAME

Links:

http://www.dwheeler.com/program-library/Program-Library-HOWTO/x36.html
http://stackoverflow.com/questions/3839756/how-do-applications-resolve-to-different-versions-of-shared-libraries-at-run-tim

понедельник, 16 апреля 2012 г.

Установка phpmyadmin в kubuntu 12.04

Проблема.
После установки всех пакетов и зависимостей и перезапуска apache2 phpmyadmin отказался запускаться по адресу http://localhost/phpmyadmin.

Решение.
Оказалось, что конфигурационный файл для apache2 не подхватывает настройки phpmyadmin. Необходимо прокинуть ссылку ln -s /etc/phpmyadmin/apache.conf /etc/apache2/sites-enabled/phpmyadmin.conf.

Установка utf8 кодировки mysql по умолчанию

/etc/mysql/my.cnf в секцию mysqld добавить строки


init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

понедельник, 9 апреля 2012 г.

Chrome отказался работать в kubuntu 12.04 через прокси

Проблема.
При обновлении kubuntu до версии 12.04 браузер google chrome отказался выходить в сеть через прокси при системных настройках прокси в kubuntu.

Решение.
Установка расширения для google chrome, позволяющего настроить прокси не через систему.

Расширения
proxy anywhere
proxy switcher

среда, 4 апреля 2012 г.

Проблемы аутентификации jenkins+svn+sasl+ldap


Проблема.
После перевода subversion на режим аутентификации ldap перестали работать задачи сборок на jenkins. FAILED: org.tmatesoft.svn.core.SVNErrorMessage: svn: SASL(-13): authentication failure: Password verification failed.


Причины.
Старая версия subversion плагина для jenkins (1.34).


Решение:
Установка новой версии плагина svn для jenkins (версия не ниже 1.37). Есть один нюанс, если после обновления плагина web-интерфейс до версии 1.39 перезапустить jenkins, произойдет откат до версии 1.34. Это происходит из-за того, что subversion плагин является прикрепленным к jenkins, т.е. при обновлении jenkins самостоятельно меняет версию плагина (https://wiki.jenkins-ci.org/display/JENKINS/Pinned+Plugins). Такой статус плагина требует определенных действий для обновления. Необходимо скачать нужную версию плагина с http://updates.jenkins-ci.org/download/plugins/subversion/, добавить ее вручную при помощи интерфейса управления плагинами jenkins (закладка дополнительно), в папка $JENKINS_HOME/plugins создать файл subversion.jpi.pinned и перезапустить jenkins.

Мусор в mergeinfo при слиянии svn

Проблема.
Появилась проблема автоматического добавления свойств svn:mergeinfo к файлам при слиянии даже в том случае, если diff пуст.

Причины.
В какой-то момент использовалась старая версия svn клиента.

Решение.
Необходимо обновить клиента до версии не ниже 1.6.6.
Рекурсивно почистить свойство svn:mergeinfo, за исключением каталога верхнего уровня (root).



svn propdel svn:mergeinfo -R
svn revert .
svn ci -m "Removed mergeinfo"

Ссылки по теме:
http://jan.baresovi.cz/dr/en/subversion-mergeinfo
http://stackoverflow.com/questions/767418/remove-unnecessary-svnmergeinfo-properties/2648969#2648969