Hg branch, hg merge

Сен 06
2011

Intro

Использовать системы контроля версий в таких задачах как разработка ПО или создание сайтов нынче хороший тон. Так уж сложилось, что в момент выбора куда смигрировать с SVN я решил использовать Mercurial, на тот момент мне эта система показалась немного более простой и удобной, нежели Git. С увеличением количества разработчиков в проекте, ну или просто, если хочется, что бы в репозитории был порядок, неизбежно все приходят к использованию веток. Даже в небольших проектах у меня всегда 2 ветки: default и devel, остальные возникают и исчезают по необходимости. В default, всегда находится стабильный, оттестированый код (хотя чего греха таить, баги тут тоже обитают), devel — общая для всех ветвь разрабатываемого кода, от которой, в процессе, могут создаваться дополнительные ветки для реализации новых фич. Вообще механизм веток в Mercurial не столь прозрачен, на мой взгляд, как в Git, там, как раз таки, данный механизм реализован более удачно. Мне привычнее использовать named branches.

Создание ветки

hg branch test
hg ci -m "new branch for testing code"
hg push --new-branch

Слияния веток

hg up default
hg merge test
hg ci -m "merge with test branch"
hg push

Закрытие ветки

hg up test
hg ci -m "close test branch" --close-branch
hg push

Вот так, довольно просто, можно использовать ветки в Mercurial. Это далеко не единственный вариант, например есть еще перемещаемые маркеры, они же bookmarks.

SuexecUserGroup directive requires SUEXEC wrapper

Авг 29
2011

После установки модуля mod_suexec в Slackware 13.37 выскочило вот такое предупреждение: «Warning: SuexecUserGroup directive requires SUEXEC wrapper». Лечится довольно просто.

Во-первых, все зависит от способа установки, я устанавливал в лоб, скачал rpm-пакет c rpm.pbone.net, который соответствовал моей платформе и версии апача (i686, apache-2.2.19), выдернул из cpio архива 2 файла: mod_suexec.so, который копируется в /usr/lib/httpd/modules и suexec, который копируется в /usr/sbin. Если вы устанавливали таким способом, то нужно проверить, где апач будет искать suexec:

httpd -V | grep SUEXEC_BIN

Если в выводе увидите -D SUEXEC_BIN=»/usr/sbin/suexec», то все ок, а если -D SUEXEC_BIN=»/usr/bin/suexec», то нужно сделать линк:

ln -s /usr/sbin/suexec /usr/bin/suexec

После этого, нужно подправить права, если это необходимо:

chown root:root /usr/sbin/suexec
chmod 4750 /usr/sbin/suexec

Рестартуем апач и можем спокойно использовать директиву SuexecUserGroup

Apache killer. Решение пролемы.

Авг 25
2011

В Apache обнаружена узвимость, которая позволяет провести атаку на приложение версии 2.2.х, вызывающую переполнение памяти. Уязвимость находится в коде, отвечающем за обработку байтовых диапазонов, указанных в специальных HTTP-заголовках. Уже и скрипт «Apache killer» выложили. Если статика раздается с помощью nginx, то скорее всего проблем не будет, во всяком случае, если nginx свежий. Проверить, уязвим ли Ваш сервер можно следующим образом:

curl -I -H "Range: bytes=0-1,0-2" -s http://www.site.ru/robots.txt | grep Partial

Если в ответе присутствует «206 Partial Content», то увы, Ваш сервер подвержен уязвимости. Прикрыть можно довольно простым способом, в .htaccess добавьте следующие строки:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(HEAD|GET) [NC]
RewriteCond %{HTTP:Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+
RewriteRule .* - [F]

Dovecot, MySQL, CentOS

Авг 23
2011

Ну вашу ж мамашу! В CentOS не только postfix, но и dovecot без MySQL собран. Посылаю мэйнтейнерам лучи света и любви. Решается практически аналогично с postfix:

yum remove dovecot
vi /etc/yum.repos.d/atrpms.repo

В него записываем:

[atrpms]
name=Red Hat Enterprise Linux 5 - x86_64 - ATrpms
baseurl=http://dl.atrpms.net/el5-x86_64/atrpms/stable
failovermethod=priority
exclude=dovecot-2*
includepkgs=dovecot dovecot-sieve
[atrpms-testing]
name=Red Hat Enterprise Linux 5 - x86_64 - ATrpms testing
baseurl=http://dl.atrpms.net/el5-x86_64/atrpms/testing
failovermethod=priority
enabled=1
exclude=dovecot-2*
includepkgs=dovecot dovecot-sieve
[atrpms-bleeding]
name=Red Hat Enterprise Linux 5 - x86_64 - ATrpms bleeding
baseurl=http://dl.atrpms.net/el5-x86_64/atrpms/bleeding
failovermethod=priority
enabled=0

Импортируем ключ:

wget http://ATrpms.net/RPM-GPG-KEY.atrpms
rpm --import RPM-GPG-KEY.atrpms

Устанавливаем Dovecot:

yum install dovecot dovecot-sieve
ln -s /usr/lib64/dovecot/ /usr/lib/dovecot # для x86_64
chkconfig --levels 235 dovecot on
service dovecot start

Негодую…

Postfix, MySQL, CentOS

Авг 23
2011

Не, ну что за гении положили в базовый репозиторий CentOS postfix собранный без поддержки MySQL?
Что бы исправить этот ай-я-я-й в файле /etc/yum.repos.d/CentOS-Base.repo делаем следующее:

[base]
exclude=postfix
[updates]
exclude=postfix
[centosplus]
enabled=1
includepkgs=postfix

Затем удаляем postfix, обновляем список пакетов и по новой ставим postfix:

yum remove postfix
yum update
yum install postfix
1 из 41234
Real Time Web Analytics