LINUX.ORG.RU

Сообщения Artem_Korneev

 

Запуск скриптов из postfix

Понадобилось мне от постфикса что-то вроде хуков. К примеру, запустилась SMTP-сессия — нужно выполнить один скрипт, передав ему параметры. Закончилась SMTP-сессия — нужно выполнить другой скрипт. Оно вообще такое умеет? Что покурить для просветления?

>>>

Artem_Korneev
()

Возможно ли совмещение Debian way и Gentoo way?..

Сабж.

Поставил Gentoo, пожил на ней некоторое время. Множество мелких неприятных глюков, но в целом как система понравилась. Если бы не одно "но" - нормально жить с Gentoo можно только имея широкий безлимитный канал или бесплатно доступное зеркало Gentoo. Попробовал я вытянуть январский срез через узенькую безлимитку на работе - пока оно тянулось, часть тарболлов уже была удалена с distfiles.gentoo.org :( Да и если захочется поиметь более новые версии для части софта - я так понял, что соответствующие ебилды придётся скачивать вручную. Если обновить дерево ебилдов - эдак оно потом будет ставить более новые версии всего софта, а не только того, который я хочу.

В общем, жалко, но решил снести. Сейчас посматриваю на Arch, там вроде бы есть понятие релизов, т.е. можно зеркалировать срезы за определённую дату и использовать локальное зеркало с исходниками. Плюс порадовало, что сборка из исходников в Arch - опциональна. Если есть время - можно собрать из исходников. Если времени нет - можно поставить бинарный пакет. Хотя опасаюсь налететь на ту же проблему - пока буду зеркалировать срез, исходники уже сменятся на более новые, а старые удалят.

Я понял, что в идеале я бы хотел, наверное, Debian, но с возможностью столь же легко управлять софтом, собранным из исходников, как это сделано в Gentoo. Насколько я знаю, в репозиториях Debian есть пакеты с исходниками. Никто не пробовал на Debian-системе использовать софт из .src.deb (или как оно там..)? Т.е. просто при желании можно было вместо somepackage.deb выбрать somepackage.src.deb и чтоб оно автоматически собралось и установилось? А если мне захочется поменять некоторые опции компилляции?

>>>

Artem_Korneev
()

Задержка трафика.

Понадобилось создать задержку отправления пакетов. Не просто шейпинг исходящего трафика, а задержка каждого пакета на заданное количество секунд. Чем можно такое реализовать? Насколько я понимаю, шейперы просто пропускают не более n байт в секунду, это не подходит. Что ещё можно покурить?

>>>

Artem_Korneev
()

emacs в качестве IDE

День добрый.

Один из наиболее часто встречающихся вопросов на юниксово-программерских форумах/ньюсгруппах/эхоконференциях — “скажите, какие есть IDE под Unix?”. Часто на этот вопрос советуют использовать emacs либо vim. Сам я всегда использовал vim, но последнее время решил пощупать emacs и назрело у меня по этому поводу некоторое количество вопросов. Поделитесь либо готовыми решениями, либо ссылками на внятные статьи по этой теме. Советовать учить elisp – не надо. Выучу. Но сейчас меня интересуют несколько вполне определённых вещей, которыми я хочу научиться пользоваться в emacs сейчас.

1. Перемещение по тэгам.
Люди, ткните пальцем, где по-человечески описана работа с тэгами. Интересует работа с тэгами в C/C++, Java и Python. В vim я для этих целей генерировал файл с тэгами с помощью ctags и потом мог перемещаться по коду с помощью хоткеев Ctrl + ] / Ctrl + t. Как можно тоже самое сделать в emacs? Сгенерировал я теги, используя etags, куда дальше копать? Возможно ли по нажатию на клавишу получать меню со списком вхождений интересующего тега и, в идеале, самой найденной строкой, чтоб можно было посмотреть не переходя по тегу?

2. Что есть юзабельного для интеграции emacs с системами контроля версий? Конкретно – интересует svn. Желаемый минимум – checkout/update/commit, но душа просит всяких вкусностей типа удобного просмотра диффов, запроса списка ревизий, в которых менялась интересующая строка и прочих прелестей.

3. Как включить подсветку парной скобки? А переход на парную скобку есть? Возможно ли в дополнение к подсветке парной скобки настроить и выделение фрагмента в скобках изменением фона?

4. Сейчас пробую пользовать Gnus для чтения ньюсов и назрел вопрос – возможно ли заставить gnus автоматически сохранять локальные копии прочитанных сообщений? Чтоб не тянуть их заново из инета.

5. Как работать с автодополнением? Возможно ли сделать вывод вариантов автодополнения в виде выпадающего меню?
По умолчанию работает что-то вроде автодополнения по Ctrl + Alt + /, но оно приводит все буквы к одному регистру, не обращая внимания на регистр дополняемого слова. Это багофича, или это я такой криворукий, что-то не так настроил? Краем уха слышал, что в emacs через cedet должно работать контекстно-зависимое автодополнение, вот и хочется пощупать его.

6. Есть ли какая-нибудь продвинутая работа с закладками? Мне хочется иметь возможность просмотреть список расставленных мною закладок, желательно – с кусками близлежащего кода и возможностью оставлять комменты к закладкам.

С уважением, Artem Korneev.

>>>

Artem_Korneev
()

Иксы, переключение раскладки двумя способами.

У меня настроено переключение раскладки клавиатуры (Ru/En) по нажатию на Caps Lock. Всё бы ничего, но жена вчера заявила что, мол, ей так не удобно и она хочет "по-старинке", Alt+Shift. Ну или Ctrl+Shift. В общем, "как в оффтопике".

Можно ли в иксах прикрутить сразу два хоткея на переключение раскладки? На выбор, так сказать?

>>>

Artem_Korneev
()

Установка загрузочных скриптов средствами rpm

Собрал я из своих исходников rpm-пакет, все бинарники прекрасно ставятся и удаляются, но мне нужно помимо бинарников добавить скрипты в /etc/init.d и сделать симлинки из /etc/rcN.d

Что-то не могу понять.. как это по-человечески делается? Хотел "подглядеть" в spec-файлы других сервисов - но не могу найти rpm spec-файлы, например, от squid. Или ещё от чего-нибудь. :( Весь интернет прочитал.

Где можно посмотреть на примеры?

>>>

Artem_Korneev
()

Сборка rpm

Столкнулся с одной странностью. Сдаётся мне, что rpmbuild обладает излишней интеллектуальностью. :-\
Написал я для проекта шаблоны autotools, проверил сборку - вроде всё нормально. После этого стал писать спек-файл для сборки rpm
и наткнулся на одну странность. Пакет собирается, но помимо тех зависимостей, которые я указал, он каким-то образом подхватывает
ещё две зависимости. При попытке установить пакет, rpm выдаёт следующее:

error: Failed dependencies:
       libclntsh.so.10.1 is needed by myrpm-5.0-5.rh4.i386
       libocci.so.10.1 is needed by myrpm-5.0-5.rh4.i386

Причём, эти библиотеки установлены. Но в зависимости попадает не пакет, содержащий эти библиотеки, а а сами библиотеки. :-\

У меня пока подозрения есть на один сторонний m4-скрипт, который я использовал для проверки доступности библиотек Oracle:
  http://autoconf-archive.cryp.to/ax_lib_oracle_oci.html

Кто-нибудь может подсказать, откуда rpmbuild может получать информацию о зависимостях, помимо файла .spec?

>>>

Artem_Korneev
()

Вопрос по autoconf

Пишу шаблон configure.ac для одного проекта. Что-то никак не могу понять, как в configure.ac проверить, определён ли символ?
Проще говоря, мне нужно проверить, что в системе установлены библиотеки Oracle C++ client interface. Я нашёл готовый макрос m4 для этих целей -- http://autoconf-archive.cryp.to/ax_lib_oracle_oci.html
Этот макрос устанавливает HAVE_ORACLE. Теперь я хочу остановить configure с ошибкой, если Oracle не найден. Как это сделать? Порылся в других проектах, почитал гугл, но просветление что-то никак не придёт. :( Всяческие if, #if, ifdef и пр. уже попробовал. Пока не помогло.

>>>

Artem_Korneev
()

libtool, небольшая проблема

Решил использовать для сборки библиотеки libtool + automake. Состряпал Makefile.am следующего содержания:

lib_LTLIBRARIES = libCommon.la
libCommon_la_SOURCES = libCommon.c

INCDIR  = ../INCLUDE
AM_CXXFLAGS = @CXXFLAGS@ -Wall $(INCDIR)

И собираю всё это безобразие через:
$ aclocal ; autoheader ; automake -ac ; autoconf ; ./configure ; make

Вроде бы всё нормально, но заметил несколько странностей.

1. Помимо этой библиотеки в проекте собирается ещё несколько бинарников, расположенных в других каталогах. В тех каталогах есть свои Makefile'ы, но они ссылаются на la-файл вышеуказанной библиотеки:

StartServer_LDADD = $(COMMON)/libCommon.la

В результате сборки в файле StartServer оказывается вовсе не ожидаемый бинарник (бинарник кладётся в каталог .libs), а какая-то обёртка, сгенерированная скриптом ltmain.sh Это нормально? Можно изменить это поведение, чтоб в каталоге лежал сразу бинарник?
После make install в каталоги установки копируются бинарники, но всё равно это дело меня несколько смущает.

2. При установке библиотек (make install) выскакивает следующий ворнинг:

Libraries have been installed in:
/usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
— add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
— add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
— use the `-Wl,--rpath -Wl,LIBDIR' linker flag
— have your system administrator add LIBDIR to `/etc/ld.so.conf'

Каталог /usr/local/lib я уже прописал в /etc/ld.so.conf, не помогло. Как можно исправить эту проблему?

3. При установке библиотек в /usr/local/lib помимо самих библиотек, копируются также и .la файлы (libCommon.la, например). Можно это дело как-нибудь пофиксить?

>>>

Artem_Korneev
()

OpenVPN, привязать IP к клиенту.

Что-то не могу разобраться, возможно ли в OpenVPN привязать к каждому клиенту свой IP? Ткните в нужное место в документации, если не трудно.

>>>

Artem_Korneev
()

Снапшоты разделов.

Понадобилось сделать сабж. Задача следующая — разместить данные в отдельном разделе, после этого создать N снапшотов и дать пользователям работать с ними (read-write). При этом, необходимо чтоб место под снапшоты резервировалось не сразу, а по мере того как пользователи будут что-то менять в своих снапшотах. Т.е, например, на жёстком диске в 40 гигабайт разместить один эталонный образ на 10 гигабайт и штук 30 снапшотов, дабы 30 пользователей могли с ними работать.

Пробовал использовать для этого дела LVM2. Там при создании снапшота указывается, сколько места зарезервировать для хранения изменений и это место резервируется сразу. В документации говорится про copy-on-write, но я так понял, это относится к тем изменениям, которые будут произведены над эталонным образом, а не над снапшотами. В общем, я попробовал создать на диске в 40 гигабайт раздел на 10 гигабайт и 3 снапшота с лимитом записи в 10 гигабайт. На третьем снапшоте место закончилось, т.е. место выделяется сразу. А ставить лимит записи меньше размера исходного раздела — опасно. В этом случае при превышении лимита снапшот вообще падает наглухо.

Что вообще можно использовать для этих целей? Может быть LVM2 умеет это, просто я его не так использовал? Какие ещё есть аналогичные системы? Без разницы под какую OS — Linux, BSD, Solaris или что-либо другое.

На днях посоветовали zfs, в настоящий момент разбираюсь и пробую. Ещё какие-нибудь варианты есть?

>>>

Artem_Korneev
()

Есть ли смысл воровать бесплатное?

Полгода назад, находясь в коммандировке на другой стороне глобуса и желая занять себя чем-либо полезным, я написал пару небольших статей с практическими примерами добавления функциональности в код netfilter/iptables. Статьи я разместил на сайте появившегося прошлой весной проекта linuxkernel.ru, а в конце статей оставил приписку что, цитирую "Допускается свободное копирование текста статьи при условии указания авторства". Вот ссылки на публикации:

http://linuxkernel.ru/?q=node/215 http://linuxkernel.ru/?q=node/222

Некоторое время спустя я обнаружил одну из этих статей, уже без форматирования, на сайте армянской LUG. Причём, все копирайты были аккуратно вырезаны. Вот ссылка:

http://www.lug.am/index.php?action=ar...

Я предположил, что строчки с указанием авторства потерялись где-то на полпути при копировании и оставил заметку в гостевой книге с просьбой исправить досадное недоразумение. Каково же было моё удивление, когда на следующий день я обнаружил, что администратор сайта заблокировал доступ к сайту с моего IP, а зайдя с другого IP я увидел, что моё сообщение в гостевой книге, ествественно, было удалено. Интереса ради я полистал некоторые другие статьи на сайте - копирайтов нет нигде.

Вот такое вот свинство. Только понять не могу - зачем?

С уважением, Artem Korneev.

>>> Подробности

Artem_Korneev
()

Управление проектами

Решил на днях присмотреть софт для управления проектами а'ля MS Project от мелкомягких. Но при этом хочется чтобы софтина была web-ориентированная. Порывшись в гугле и пересмотрев несколько скринштов, решил попробовать phprojekt и gforge. Первый (phprojekt) сейчас поставил, покопался, и решил снести. Не понравилось две багофичи: - Невозможно изменять дату окончания проекта; - Рисование gantt-диаграмм глючит, диаграмма не всегда рисуется;

gforge сейчас буду ставить и пробовать, хотя судя по скриншотам, gantt-диаграммки там не шибко красочные.

Кто-нибудь может подсказать, на какие ещё системы стоит взглянуть? В крайнем случае возьму TaskJuggler, только вот он не web. Пробовал GanttProject, но интерфейс у него какой-то неудобный, да и, опять же, не web. А хотелось бы чтобы исполнители сами отмечали степень выполнения задач. В идеале - чтобы оно ещё и интегрировалось с багтреккером, тасктреккером и тп. Ну и при этом было бы бесплатным. :)

Бывает такое в природе, или я хочу слишком многого?

Artem_Korneev
()

Тула, вакансии разработчиков C/C++

Компании Smartech требуются разработчики с опытом разработки на C/C++ под Unix/Linux платформы.

Требования: - Уверенное знание C/C++ и объектно-ориентированного проектирования - Работа в Unix/Linux на уровне пользователя - Знание принципов разработки многопоточных приложений - Опыт разработки сетевых приложений - Знание английского языка

Работа предполагает возможность длительных коммандировок в США, от 3-х до 6-ти месяцев (по желанию).

Оплата: - в Туле 800 уе - на время коммандировок - 2400 уе

Резюме присылать на artem.korneev[гав]gmail.com, по всем вопросам можно в аську - uin 169521527.

Artem_Korneev
()

smtp на exim, фильтрация по домену отправителя

Есть smtp-сервер на Exim, пересылающий письма из локальной сети. Никакой авторизации либо фильтрации там не настроено, ибо соединения он принимает только из локалки.

Теперь понадобилось запретить пользователям указывать в письмах адрес отправителя из одного домен. Допустим, example.com То есть smtp должен пропускать все письма от любых отправителей, кроме отправителей вида user@example.com Полистал конфиги Exim, вроде бы нашёл там фильтрацию, но хотелось бы где-нибудь примеры посмотреть. Может кто-нибудь подскажет?..

Artem_Korneev
()

RSS подписка на новые темы