ОМСКАЯ ГРУППА ПОЛЬЗОВАТЕЛЕЙ LINUX http://omsklug.com Свобода - это ответственность. Вот почему все её так боятся. Бернард Шоу Wed, 28 Jan 2015 14:06:11 +0000 en hourly 1 http://wordpress.org/?v=3.2.1 Ubuntu Global Jam 15.04 в Омске! http://omsklug.com/2015/01/ubuntu-jam-15-04-omsk/ http://omsklug.com/2015/01/ubuntu-jam-15-04-omsk/#comments Sun, 25 Jan 2015 21:15:16 +0000 linuxmasterz http://omsklug.com/?p=1798 Логотип UbuntuЗачем Ubuntu Global Jam?

Международное мероприятие, когда можно помочь сообществу Ubuntu, сделать свой вклад в свободное ПО, а именно дистрибутив Ubuntu, перед его выпуском. Обычно организуется местным сообществом Ubuntu (Ubuntu LoCo).

Когда и где?

2015-02-07T11:00+0600 OMST (седьмого февраля 2015 года в 11 часов дня с утра по омскому времени) Омская группа пользователей Linux проводит #ubuntu global jam (#ugj) в Омском ITLoft (г. Омск, ул. Учебная, 83, второй этаж, каб. 212).

Что будем делать и обсуждать на Ubuntu Global Jam?

  • Поиск и исправление ошибок
  • Тестирование установки и обновления
  • Работа над документацией
  • Переводы
  • Сборка deb-пакетов
  • Истории успеха использования Ubuntu как дома, так на рабочем месте
  • Установки Ubuntu (install fest)
  • Можно будет попробовать запустить Steam и даже поиграть (LINUX HAS NO GAMES)
  • Традиционная безумная криптовечеринка (готовьте свои PGP ключи для нашей сети доверия)

Приглашаем всех поучаствовать как подготовке Ubuntu Global Jam: если есть желание поделиться своим опытом в Ubuntu и рассказать что-то интересное — оставляйте комментарии к этой статье на сайте, пишите на почту post@omsklug.com, забегайте в нашу jabber-конференцию: omsklug@conference.jabber.ru Мы всегда всем рады!

Для участия необходима добровольно-заявительная регистрация:

http://bit.ly/ugj2015

]]>
http://omsklug.com/2015/01/ubuntu-jam-15-04-omsk/feed/ 0
Как собрать chatbot’а для Tox http://omsklug.com/2015/01/how-to-build-toxbot/ http://omsklug.com/2015/01/how-to-build-toxbot/#comments Sat, 24 Jan 2015 22:00:22 +0000 Shroom http://omsklug.com/?p=1777 .local p {text-align: justify!important; text-justify: inter-word!important;} .local a {color: rgb(16, 8, 96)!important;} .local a:visited {color: Gray!important;} .local a:hover {text-decoration: underline; color: Blue!important;} .local code {font-family: Monospace,Courier!important;}

В этой статье собраны некоторые подводные камни, обнаруженные лично автором при сборке чатбота для tox на Debian GNU/Linux 7 (Wheezy) для архитектуры amd64. Приведены способы обхода обнаруженных ошибок.

Подготовка

Для начала нам нужно установить некоторое количество пакетов с библиотеками и заголовочными файлами и вообще со средствами разработки (если таковых в системе ещё нет). Начнём с инструментария разработчика:

apt-get install build-essential libtool autotools-dev \
automake checkinstall check git yasm

Для удовлетворения сборочных зависимостей и для разных дополнительных плюшек типа аудио/видео, возможности запуска bootstrap-демона и хостинга ноды, ncurses-интерфейса поставим ещё несколько пакетов:

apt-get install libopus-dev libvpx-dev pkg-config \
libconfig-dev ncurses-dev

В принципе, эти рекомендации указаны на странице, посвящённой сборке toxcore. А дальше пойдут некоторые особенности… Кстати, я не рекомендую проходить данный квест, одновременно читая этот текст, поскольку стиль изложения материала довольно свободный и допускает возврат на несколько шагов назад и повтор действий с возможным улучшением стратегии. В общем, информация дана в чисто ознакомительных целях и ни в коей мере не является полноценным HowTo и, тем более, пошаговой инструкцией.

Итак, начнём, так сказать, с базовых вещей. Для шифрования нужна библиотека NaCl (старая и плохо портируемая, но быстрая) или sodium (новая, хорошо переносимая, с совместимым API, но несоколько медленнее). При этом существуют косяки как с первой, так и со второй библиотекой. Косяк с первой: нет объектников randombytes.o и cpucycles.o, которые требуются для сборки toxcore, но которые не являются частью NaCl [см. обсуждение подобной проблемы]. Косяк со второй — её тупо нет в репах для Wheezy (появилась только в Jessie), поэтому нужно сливать сырцы для Jessie и собирать (Естественно, для этого нужно добавить соответствующий репозиторий в /etc/apt/sources.list, настроить pinning, чтобы ненароком не обновить систему и т.п. Хотя можно, конечно, скачать нужный пакет прямо с сайта Debian). Соответственно, на старых системах (или если хочется «скорости»):

apt-get install libnacl-dev

А вообще NaCl лучше собирать из исходников, чтобы было откуда выцарапать randombytes.[c|o].

На новых системах (а также на Ubuntu, Mint, Arch, Gentoo и прочих, где всё новьё можно найти в стандартных репах/ppa/портах и пр.):

apt-get install libsodium-dev libsodium13

На старых же системах, где libsodium придётся брать в виде исходиков для Jessie, нужно дополнительно поставить pkg-config и dh-autoreconf, которые указаны в зависимостях для сборки. Впрочем, первый из них мыуже поставили в самом начале, поэтому остаётся только второй (Я лично ограничился сборкой с использованием NaCl, поэтому не могу сказать, какие глюки можно словить с sodium. Однако, смею предположить, что как минимум отсутствие randombytes.o породит похожие эффекты).

Сборка NaCl

Предположим, мы собрались использовать NaCl.

apt-get source nacl-tools

Из этого получатся пакеты для «-tools» и для «-dev». Здесь в зависимостях для сборки присутствует docbook-to-man, поэтому ставим и его тоже.

Сборка пакета: ничего страшного. Как обычно,

dpkg-buildpackage -b -us -uc

Но перед этим нужно в файлике debian/rules закомментировать строчку вида

rm -f $(CURDIR)/build/$(SHORTHOSTNAME)/lib/*.o

чтобы иметь возможность упаковать вместе с основной библиотекой и нужные нам объектники (ну или просто чтобы найти их после сборки). На самом деле по зрелом размышлении можно понять, что сборка пакета по сути не нужна. Можно ограничиться готовым пакетом из репы. Однако, при этом в любом случае нужно в верхнем каталоге дерева исходников libnacl выполнить магический скрипт ./do, который, собственно, и занимается сборкой либы. И уже после этого можно выдернуть и куда-нибудь сложить cpucycles.o и randombytes.o. Этот вариант будет даже более правильным с точки зрения поддержания чистоты пакетов.

Сборка ToxCore

Со стандартными либами покончено. можно сливать с гитхаба исподники toxcore:

git clone git://github.com/irungentoo/toxcore.git

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

autoreconf -i

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

./configure --enable-nacl --enable-log --enable-ntox \
--enable-daemon --disable-testing

(в данном случае вся фишка в --enable-nacl; всё остальное — по желанию) закончится ошибкой. Нам скажут, что либа NaCl якобы не найдена, и предложат явно указать путь к ней. Хорошо, сделаем то, что просят, и даже больше, предполагая, что те самые cpucycles.o и randombytes.o лежат в одном из каталогов, известных линкеру (например, в /usr/lib рядом с libnacl.a):

./configure --enable-nacl --enable-log --enable-ntox \
--enable-daemon --disable-testing --with-nacl-libs=/usr/lib \
--with-nacl-headers=/usr/include/nacl

После того, как конфигуратор удовлетворится этой подсказкой, можно делать

make

Однако, сборка тоже не пройдёт с первого раза. Это, вероятно, связано как раз с ошибочным мнением разрабов toxcore о том, что randombytes.o принадлежит libnacl. Но это метафизика, а нам нужно что-нибудь уже собрать. Короче, процесс останавливается на линковке tox-bootstrapd с воплями о том, что в нескольких модулях найдены «undefined reference to ‘randombytes’». Хорошо, предоставим костыль в виде

make LIBS=''/usr/lib/randombytes.o''

после чего чудесным образом (Ну то есть сразу после ошибки запускаем «костыль» — и всё. Не нужно ничего нигде чистить, менять, копаться в файлах и др.пр.) дособерётся демон tox-bootstrapd (Естественно, если нет необходимости в этом функционале (а её в подавляющем большинстве случаев нет) и не был указан параметр --enable-daemon при вызове ./configure, то всё соберётся без проблем). После этого параноики могут проверить качество сборки, запустив

make check

(кстати, все тесты должны завершиться успешно), а все остальные могут сразу же приступить к сборке deb-пакета (ну или любого другого пакета на выбор) и его установке. Например, так:

sudo checkinstall -D make install

По умолчанию либы и бинарники будут установлены в /usr/local, поскольку мы не меняли эти пути в параметрах конфигуратора. Собственно, никто не мешает при вызове ./configure добавить параметр --prefix=/usr. Однако, это не является критичным для сборки бота.

Сборка ToxBot

Теперь, собственно, то, ради чего затевался весь этот сыр-бор. Сборка чат-бота.

Перед тем, как что-то собирать, это что-то нужно стянуть с гитхаба:

git clone git://github.com/JFreegman/ToxBot.git

Далее всё тривиально. Почти, опять же… Если взглянуть на руководство по установке, может возникнуть ложное чувство уверенности в своих силах и полного контроля над происходящим. В самом-то деле, что уж, так сложно единственную команду make запустить что ли?! Однако, в реальности всё не так, как на самом деле… Наверняка сборка загнётся опять же на этапе линковки, и линкер будет орать, что нашёл «undefined reference to `clock_gettime’» где-то в недрах toxcore. В принципе, он прав, потому что эта функция находится в библиотеке librt, а про неё линкеру никто ничего не рассказал. Поэтому придётся лезть в Makefile и менять строчку

LDFLAGS = $(shell pkg-config --libs $(LIBS))

на почти такую же, только с упоминанием нужной библиотеки:

LDFLAGS = -lrt $(shell pkg-config --libs $(LIBS))

После этого всё должно пройти без ошибок. Результат сборки — свежий бинарник toxbot, который не требует настройки и заводится с полпинка. Дальнейшие вопросы вроде «что делать, чтобы он признал хозяина?» и «как пробиться через заботливо закрытый файрвол?» автор статьи оставляет в качестве упражнения для читателя. Поверьте, это абсолютно несложно и даже описано в документации.


Спасибо за внимание!

Как обычно, полный текст этой статьи можно совершенно бесплатно, без регистрации, без смс свободно скачать отсюда в формате PDF.

]]>
http://omsklug.com/2015/01/how-to-build-toxbot/feed/ 0
Software Freedom Day 2014 в Омске анонс http://omsklug.com/2014/09/sfd2014announce/ http://omsklug.com/2014/09/sfd2014announce/#comments Mon, 15 Sep 2014 14:50:42 +0000 linuxmasterz http://omsklug.com/?p=1749 Software Freedom Day Logo2014-10-04T14:00+0700 OMST (четвёртого октября 2014 года в 2 часа дня после обеда по омскому времени) в 301 аудитории первого корпуса Омского государственного университета им. Ф.М. Достоевского (г. Омск, пр. Мира, д. 55А) пройдёт международный День свободы программного обеспечения (Software Freedom Day). Да, да, мы знаем, что он пройдёт 2014-09-20 по всему миру, но… В общем, мы слоупоки, извините. Если не сможете прийти, будет трансляция в Интернет всего действа вот тут: http://www.omsklug.com/tv. Вот карта для тех, кто ещё умеет понимать такие вещи:

карта подходов к первому корпусу ОмГУ © Участники OpenStreetMap

РЕГИСТРАЦИЯ

Просьба, в случае участия, зарегистрироваться вот здесь:

http://bit.ly/sfd2014omsk

Мы просто хотим знать, сколько вас будет, да и охрана ОмГУ будет рада.

ДОКЛАДЫ

Планируются доклады на следующие темы:

  • Итоги свободного программного обеспечения в 2014 (Алексей Тараканов)
  • История успеха: Puppet (Александр Рак)
  • BASH tips & tricks (Александр Матюхин)
  • Астериск: фреймворк для построения телефонии (Станислав Емец)

Честно говоря, это ещё и обычный Linux Install Fest, когда можно установить и получить безвозмездно понравившийся дистрибутив свободного программного обеспечения с помощью активистов OmskLUG (омских линуксоидов) — не только GNU/Linux, но и иное свободное ПО. Можно непринуждённо проконсультироваться по тому или иному вопросу о свободном программном обеспечении. Не забываем, что, как обычно, планируется отвязная криптовечеринка (KSP), поэтому готовьте свои PGP-ключи с сильной криптографией.

В кулуарах будет демонстрация не менее одной модели импортозамещающего росийского компьютера, который работает на свободном программном обеспечении.

ПОМОЩЬ

Помогите хотя бы в распространении информации о мероприятии, отправьте ссылку сюда на сайт своим знакомым через ваши любимые социальные сети, микроблоги и прочие вебдваноли. Распечатайте это объявление: http://bit.ly/sfd2014omskannounce, поместите на достаточно видное место у себя в курилке на работе, в подъезде любимой девушки, на заднике вашего мотоцикла или яхты. Мы были бы рады вашему рвению к продвижению свободного программного обеспечения, ведь эти ваши маленькие шажки неотвратимо делают свободное программное обеспечение лучше.

ССЫЛКИ

http://bit.ly/sfd2014omskannounce – ссылка на объявление о мероприятии

http://bit.ly/sfd2014omskannouncev – ссылка на объявление о мероприятии (вертикальное)

http://bit.ly/sfd2014omsk – ссылка на форму регистрации на мероприятие

Хештег для Twitter и для других мест, где принимают хештеги: #sfd2014omsk

До встречи на SFD 2014!

]]>
http://omsklug.com/2014/09/sfd2014announce/feed/ 1
Установка КонсультантПлюс в Ubuntu Linux 12.04 http://omsklug.com/2014/08/consultantplus-at-ubuntu-linux/ http://omsklug.com/2014/08/consultantplus-at-ubuntu-linux/#comments Fri, 15 Aug 2014 09:48:17 +0000 linuxmasterz http://omsklug.com/?p=1734 Общие слова

Есть такая база, правовая база данных КонсультантПлюс, каждый IT-специалист знает это произведение российской компьютерной мысли и наверное устанавливал не раз. Конечно, можно пользоваться только online-версией этой замечательной правовой базы данных, но зачем? Ведь есть возможность получить эту компьютерную программу на руки, подписав договор с региональным представителем (региональным информационным центром) и выплачивая небольшие деньги. Именно от них, от региональных представителей, можно получить волшебный файл-демон лицензирования conslin, который позволяет провести-таки регистрацию правовой базы данных КонсультантПлюс (ведь мы же пользуемся только легальным программным обеспечением, не так ли?) и файл с инструкцией по установке: linux.rtf. Нет уверенности в том, что файл с инструкцией по установке можно публиковать публично, так как в нём не указаны условия его распространения, но там довольно банальные вещи, кроме некоторых секретных элементов, которые включены в пределах разумного цитирования в настоящую инструкцию.

Начальная установка

Просто ставим с mini.iso систему Ubuntu Linux 12.04, куда доустанавливаем только самые нужные нам компоненты. Где взять mini.iso? Конечно же здесь:

https://help.ubuntu.com/community/Installation/MinimalCD

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

sudo apt-get install openssh-server samba4 wine xvfb

openssh-server – для удалённого доступа к операционной системе.

samba4 – для удалённой работы с правовой базой данных КонсультантПлюс.

wine – тот самый неэмулятор Wine Is Not Emulator, который позволит нам запускать на сервере неродные для Linux, исполнимые файлы системы КонсультантПлюс с целью регистрации этого программного продукта, регистрации рабочих станций, обновления правовой базы данных КонсультантПлюс.

xvfb – ещё одна программа неэмуляции, это самый настоящий X-сервер, но умеющий работать без устройств отображения и устройств ввода-вывода. Казалось бы, зачем такое нужно? А вот нужно, например, сейчас, когда нет необходимости ставить настоящий X-сервер на постоянную основу, а лишь пользоваться им спорадически. Ведь все же знают, что, за редкими исключениями, сервер с X-сервер – совсем никакой не сервер.

Такие сервисы, как правовая база данных КонсультантПлюс, удобно держать на сервере виртуальных машин на базе настоящего промышленного гипервизора Kernel-based Virtual Machine (KVM). Для создания образа жесткого диска виртуальной машины рекомендуется 10-гигабайтный “резиновый” образ qcow2 или qed (который умеет расширять свой размер, в зависимости от наполнения данными, но можно сделать и фиксированного объема), который по-настоящему занимает на сервере виртуальных машин изначально чуть более 1 гигабайта. Файлы же правовой базы данных не рекомендуется, а обязательно следует разместить на “резиновом” разделе с максимальным объемом не менее 30 гигабайт, что следует из практики использования, когда изначально объем всех файлов составлял около 9 гигабайт, а после года работы системы – около 14 гигабайт, учитывая, что подключены только федеральные базы законодательства без отраслевых вариантов и регионального законодательства. Оперативной памяти виртуальной машины для обычной работы системы КонсультантПлюс достаточно 256 мегабайт, но, выяснилось, что для обновления системы необходимо не менее 512 мегабайт, так как при недостатке памяти жуткий комплекс из wine и cons.exe вываливается в переполнение стека. Все указанные выше показатели применимы и к реальному аппаратному обеспечению (за исключением “резиновости” разделов и невозможности увеличить оперативную память оперативно).

Предварительные действия

Создаем раздел на диске для файлов системы КонсультантПлюс с помощью программы fdisk (где X – буква диска):

sudo fdisk /dev/sdX

Форматируем раздел, создавая на на нашем диске для файлов системы КонсультантПлюс файловую систему ext4 (где X – буква диска, а Y – цифра раздела):

sudo mkfs.ext4 /dev/sdXY

Узнаём UUID раздела диска для файлов системы КонсультантПлюс:

ls -la /dev/disk/by-uuid/

Создаём точку монтирования (подключения) файловой системы:

sudo mkdir /var/lib/cons

Монтируем (подключаем) в нашу систему раздел диска в подготовленную нами выше директорию через файл описания точек монтирования fstab:

sudo nano /etc/fstab

прописывая в нем запись монтирования раздела диска:

UUID=73bec7a9-a1d0-5c3f-9244-0cde01363eb4 /var/lib/cons            ext4    relatime,nodiratime,commit=120        0       2

где:

73bec7a9-a1d0-5c3f-9244-0cde01363eb4 – пример UUID раздела диска для монтирования;

/var/lib/cons – точка монтирования (подключения) раздела диска

ext4 – тип файловой системы, который мы указали при форматировании подключаемого раздела

relatime,nodiratime,commit=120 – параметры, ускоряющие работу файловой системы, путем уменьшения частоты записи на диск служебной информации.

0 – параметр, чтобы раздел не обрабатывался программой dump, которая по умолчанию и не установлена

2 – параметр, который заставлять fsck проверять раздел последним (можно поставить 0, чтобы вообще не проверять, но зачем?)

Применяем внесённые изменения:

sudo mount -a

Если диск виртуальный, то применяем ещё и дополнительные настройки для ускорения диска (это можно сделать даже в действующей системе, на “ходу”):

sudo nano /etc/rc.local

где добавляем через sudo -s то, что наш диск не крутится и может использовать любое ядро процессора для поток ввода-вывода, ведь у нас одно ядро в виртуальной машине и выбирать собственно не из чего (X – буква диска):

echo 0 > /sys/block/vdX/queue/rotational &
 
echo 0 > /sys/block/vdX/queue/rq_affinity &

Указанные выше параметры просто применить и в сессии “суперпользователя” через:

sudo -s

но действовать это будет только до перезагрузки.

Создаём осмысленное имя пользователя, от которого у нас будет работать главный пользователь КонсультантПлюс и собственно будут запускаться фоновые процессы обслуживания:

sudo adduser cons

Создаём имя пользователя, от которого у нас будет работать все остальные пользователи базы данных и у которых будут права только на чтение общего ресурса samba4:

sudo adduser consuser

Подготовка директории с базой данных

Каким-либо образом получаем доступ к дистрибутиву и копируем содержимое диска КонсультантПлюс в заранее подготовленную директорию /var/lib/cons (которая является, как мы помним, корнем специального раздела диска или отдельного диска для файлов правовой системы КонсультантПлюс):

sudo cp -R * /var/lib/cons/*

Присваиваем все файлы в директории /var/lib/cons пользователю и группе cons:

sudo chown -R /var/lib/cons/*

Узнаем одну из тайн сообщества КонсультантПлюс, которая была почерпнута в секретном linux.rtf. Директория ADM должна иметь атрибуты rwxrwsr-x, т.е. для пользователя чтение-запись-доступ и для группы чтение-запись-доступ + SGID (бит показывает, что создаваемые в директории файлы будут принадлежать той же группе, что и каталог, а не группе пользователя, который создаёт в директории файл):

sudo chmod 2770 /var/lib/cons/ADM

Что же лежит и будет лежать в директории /var/lib/cons/ADM? Да там же:

CONS.ADM, в котором хранится информация о лицензионности вашей системы КонсультантПлюс;

MBPxxxxxx.ADM, в котором хранится информация о авторизованных клиентских компьютерах (xxxxxx – номер поставки).

Оба файла имеют права rwxrwxr-x (775). Если права будут другими, то на клиентских машинах будет ошибка о занятости системы КонсультантПлюс некими иными пользователями. Бывает, когда некорректно проходят операции обновления, переиндексации, добавления новых клиентских компьютеров, права сбиваются на rwx—— (700)

Для возможности запуска cons.exe на клиентских компьютерах в неLinux-системах почему-то пришлось выставлять права rwxr-xr-x (755), а было rwxr-x— (750):

sudo chmod 755 /var/lob/cons/cons.exe

Подготовка общего ресурса SAMBA4

Редактируем файл настройки SAMBA /etc/samba/smb.conf:

В глобальной секции прописываем сетевую группу, режим авторизации, немного магии для ускорения чтения/записи на ресурсы SAMBA:

workgroup = THEFIRM
security = user
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=16384 SO_SNDBUF=16384

Закоментируйте ненужные нам секции:

 

[printers]
 
[print$]

 

Прописываем секцию общего ресурса SAMBA:

[CONS]
path = /var/lib/cons
browseable = yes
read only = no
guest ok = no
create mask = 0664
directory mask = 0775
veto oplock files = /*.BIS/*.ADM/
#kernel oplocks = no
level2 oplocks = no
use sendfile = yes
log level = 0

Создаем пользователей ресурса SAMBA:

 

sudo smbpasswd -a cons
 
sudo smbpasswd -a consuser

 

Включаем пользователей ресурса SAMBA:

 

sudo smbpasswd -e cons
 
sudo smbpasswd -e consuser

 

Регистрация комплекта и клиентских компьютеров

Копируем секретный демон лицензирования conslin в сервер, обычно в директорию /usr/local/bin/ и прописываем запуск его при старте сервера в /etc/rc.local до команды exit 0:

/usr/local/bin/conslin &

Можно конечно сделать демон /etc/init.d/conslin, но… стоит ли напрягаться? Помним, что & обязателен для того, чтобы conslin исполнялся при старте в фоне и загрузка продолжалась далее, а то мало ли что, это же злобный проприетарный модуль, что там внутри – неизвестно, зависнуть он может в любой момент и делать может что угодно, хотя есть информация, может работать по полгода и проблем не создавать (тьфу-тьфу). При старте демон conslin открывает TCP-порт 3333 на всех сетевых интерфейсах сервера.

Подключаемся с Вашего компьютера администратора удалённо с пробросом Х-сессии на сервер для регистрации комплекта:

ssh -X cons@192.168.1.50 wine /var/lib/cons/cons.exe /adm /linux /reg

Звоним или пишем региональному представителю КонсультантПлюс, говорим полученные цифры от программы, пишем в загрузившееся окно цифры от представителя, радуемся регистрации.

Подключаемся удалённо с Вашего компьютера администратора с пробросом X-сессии на сервер с базой данных для регистрации клиентских компьютеров:

ssh -X cons@192.168.1.50 wine /var/lib/cons/cons.exe /adm /linux

где:

192.168.1.50 – IP адрес сервера правовой базы данных КонсультантПлюс;

/adm – запуск в режиме администрирования;

/linux – запуск на Linux-системе.

Программная оболочка КонсультантПлюс загружается и мы идём в Меню/Сервис/Регистрация станций.

Запускаем на клиентском компьютере cons.exe, так же идём в меню Меню/Сервис/Регистрация станций.

Происходит магия лицензирования – смотрим на прогрессбар на комьютерах, жмём как на клиентской машине, так и на запущенной на Вашем компьютере оболочке КонсультантПлюс кнопки “ОК”. Регистрация должна быть произведена произведена. Клиентская машина записана на сервере как авторизованная для подключения и использования базы данных.

Что можно делать вручную?

Все эти действия делаются визуально на компьютере администратора, используя его X-сервер, но выполняются на сервере.

Обновлять базу данных через локальную директорию для обновлений (если у вас всё очень плохо с Интернетом):

ssh -X cons@192.168.1.50 wine cons.exe /adm /linux /receive /base* /yes

Обновлять базу данных через сеть Интернет:

ssh -X cons@192.168.1.50 wine cons.exe /adm /linux /receive_inet /base* /yes

Тестировать базу данных на неисправности и ошибки:

ssh -X cons@192.168.1.50 wine cons.exe /adm /linux /basetest /base* /yes

 

Индексировать файлы базы данных (это необходимо, когда теряется возможность нажимать на ссылки в программе, пишется фальшивое вообщение о том. что якобы “в данном комплекте не зарегистрирована эта возможность”):

ssh -X cons@192.168.1.50 wine cons.exe /adm /linux /reindex0 /base* /yes

Создаём скрипт автоматического обновления

Создаём файл /usr/local/bin/cons-update.sh со следующим содержимым:

 

#!/bin/bash
LOGFILE=/var/log/cons-update.log   # Log destination path
CONSDIR=/var/lib/cons/  #ConsultantPlus path
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
 
# Checking existance of log
if [ ! -f $LOGFILE ]; then
touch $LOGFILE
chown root:cons $LOGFILE
chmod 664 $LOGFILE
fi
echo "`date +%Y%m%d%H%M%S` ConsultantPlus is updating..." >> $LOGFILE
sudo -H -u cons xvfb-run -s '-screen 0 1024x768x24' wine Z:\\var\\lib\\cons\\cons.exe /adm /linux /adm /linux /receive_inet /base* /yes | iconv -f CP866 >> $LOGFILE
chmod 664 $CONSDIR/ADM/CONS.ADM
echo "`date +%Y%m%d%H%M%S` ConsultantPlus is ready to use..." >> $LOGFILE
exit 0

 

Не забываем сделать его исполнимым:

chmod +x /usr/local/bin/cons-update.sh

чтобы скрипт стал исполнимым. И сделать через sudo crontab -e запись:

0 6 * * 1 /usr/local/bin/cons-update.sh

чтобы база обновлялась один раз в неделю, а именно в понедельник, в 6 OMST (UTC+7) или 3 MSK (UTC+4) часов. Время и период подсказали сотрудники регионального информационного центра КонсультантПлюс, говорят, что нагрузка на сервера с обновлениями минимальна в это время, а чаще делать обновление не имеет смысла.

В процессе подготовки скрипта была раскрыта тайна, что оказывается, на самом деле, vr??????.res файл – исполнимый и его можно запускать через wine. И он тоже будет работать. Но злоупотреблять этим не надо, так как он постоянно обновляется и его версии тихонечко растут.

Также узнаем тайну авторов КонсультантПлюс: программа настолько стара, что использует для вывода лога работы кодировку CP866. Поэтому и сделана обработка данных лога через iconv. Логи CONS_ERR.TXT, CONS_INET_LISTFILES.TXT, CONS_INET.TXT,  CONS_LOG.TXT ведутся в кодировке CP1251, что более логично, но просит вопроса, почему же не прогрессивный UTF-8. Если это не тайна или вы можете объяснить, почему именно так, а не иначе – пишем в комментарии.

Выводы

Вот так вот несложно и незамысловато мы получили практически автономную правовую базу КонсультантПлюс в Ubuntu Linux 12.04, которая сама обновляется и работает без участия человека. Подключаться к базе можно как с Linux-клиентов, так и с других операционных систем, просто стартуя исполнимый модуль cons.exe.

]]>
http://omsklug.com/2014/08/consultantplus-at-ubuntu-linux/feed/ 0
Вводный курс GNU/Linux LFS101x от Linux Foundation http://omsklug.com/2014/07/lfs101x/ http://omsklug.com/2014/07/lfs101x/#comments Thu, 31 Jul 2014 06:17:26 +0000 linuxmasterz http://omsklug.com/?p=1729

Щелкните здесь для просмотра встроенного видео.

Вводный курс по операционной системе GNU/Linux LFS101x от организации Linux Foundation доступен для бесплатного прохождения на онлайн-платформе обучения edX. Ранее цена курса Introduction to Linux составляла 2400 USD. Курс предназначен для программистов под эту платформу и покажет различные инструментарий и техники, обычно используемые специалистами. По желанию можно заплатить 250 USD за сертификат курса. Начало курса 2014-08-01. Расчитывайте на 40-70 часов.

Регистрируемся! Учимся! Используем свои знания!

http://bit.ly/lfs101x

]]>
http://omsklug.com/2014/07/lfs101x/feed/ 0
Омские линуксоиды на Омском городском пикнике 2014 http://omsklug.com/2014/06/linux-at-omsk-local-picnic-2/ http://omsklug.com/2014/06/linux-at-omsk-local-picnic-2/#comments Mon, 30 Jun 2014 14:36:45 +0000 linuxmasterz http://omsklug.com/?p=1713 2014-07-05 с 12.00 ч. в Омске на полянке у д. 4 по ул. Берёзовая в ходе очередного Омского городского пикника (http://picnicomsk.ru) будут участвовать и омские линуксоиды. Приходите! Освободите себя и свой компьютер!

Что будет на нашей площадке:
Безвозмездная раздача свободного ПО.
Раздача и трансляция свободной музыки (jamendo.com, musopen.org),
Раздача и трансляция свободного видео (Elephant Dream, Big Buck Bunny, Sintel, Tears of Steel).
Свободные компьютерные игры (Supertuxkart, SuperTux, XMoto, lbreakout2, teeworlds).
Консультации по свободному ПО, по использованию свободных медиаматериалов, по использованию лицензий Creative Commons для медиаматериалов, GNU GPL, GNU FDL.
Разнузданная криптовечеринка (OpenPGP): для участия желательно отправить нам на e-mail post@omsklug.com или любыми иными средствами связи отпечаток вашего ключа, после чего прийти на криптовечеринку со своим отпечатком ключа и документом, удостоверяющим личность.

Организаторы Омского городского пикника просят пожертвовать совсем немного денег тут:

http://2014.picnicomsk.ru/#donation

]]>
http://omsklug.com/2014/06/linux-at-omsk-local-picnic-2/feed/ 0
Найстройка DNS сервера на базе Ubuntu 12.04 http://omsklug.com/2014/05/dns-server-bind-ubuntu-12-04/ http://omsklug.com/2014/05/dns-server-bind-ubuntu-12-04/#comments Thu, 01 May 2014 09:59:44 +0000 Plus http://omsklug.com/?p=1690 Все началось с установки kolab. Все ставилось, но при запуске setup-kolap вылетала ошибка:
Warning: hostname mail is not a fully qualified host and domain name

Решил настраивать DNS сервер, решил сделать на этой же машине.
Итак примтупим. Для начала необходимо поставить собственно сам dns:

sudo apt-get install bind9

Перейдем к настройке. Первым делом “поковыряем” файл named.conf.options:

Перейдем к настройке. Первым делом “поковыряем” файл named.conf.options
acl “lan” {
192.168.0.1/24;
};
options {
directory “/var/cache/bind”;
allow-query { any; };
version “MCRO DNS Master Server”;
auth-nxdomain no;
listen-on-v6 { none; };
notify yes;
recursion yes;
forward first;
forwarders {
8.8.8.8;
};
listen-on port 53 {
127.0.0.1;
192.168.254.2;
};
};

Остальные параметры оставляем по умолчанию.

forwarders – Параметр указывающий на какие сервера переадресовывать запросы, в случае отсутствия записей;
listen-on – Параметр указывающий на каких интерфейсах слушать 53 порт;
forward first - Параметр задает пересылку только первого запроса;
auth-nxdomain no – Параметр для совместимости RFC1035;
allow-query { any; }; - Параметр отвечающий за то- от кого принимать запросы, мы их принимаем от всех;
recursion - Параметр разрешает или запрещает рекурсивные запросы ( yes /no);
notify — Параметр указывает уведомлять или не уведомлять slave сервера об изминениях в зоне (yes/no);
version «Super DNS server»; -Параметр указывающий уровень болтливости сервера, вместо названия сервера выдаст Super DNS server;
acl “lan” { 192.168.0.1/24; } - Параметр задает группу подсетей;(можно написать что-то свое).


zone "omsklug.com" {
type master;
file "/etc/bind/omsklug.com";
};
zone "254.168.192.in-addr.arpa." {
type master;
file "/etc/bind/127.0.0.rev";
};

Файл omsklug.com отвечает за прямой просмотр, 127.0.0.rev за обратный соответственно.

Теперь необходимо создать эти файлы. Делаем /etc/bind/omsklug.com

$TTL 86400
@ IN SOA ns1.omsklug.com. post.omsklug.com (
2014050101 ; Serial
1d ; Refresh
12h ; Retry
1w ; Expire
3h ; Minimum
);
@ IN NS ns.omsklug.com.
ns1 IN A 127.0.0.1
@ IN A 127.0.0.1
mail IN A 192.168.254.3
www IN CNAME @

Во второй строке ns1.omsklug.com – имя корневого мастер-сервера зоны omsklug.com;
post.omsklug.com – e-mail адрес администратора зоны, пишется без “@”;
2014050101 ; Serial – серийный номер файла зоны, состоит из даты создания последние символы 01, указыавют на количество редактирований зоны;
1d ; Refresh – Период обновления;
12h ; Retry – Повтор каждые 12 часов;
1w ; Expire – Время хранения информаци;
3h ; Minimum – Время хранения TTL записи;
@ IN NS ns.omsklug.com. – Запись указывающая имя сервера, ответственного за зону;
ns1 IN A 127.0.0.1 – Запись указывающая ip адрес сервера, ответственного за зону omsklug.com;
@ IN A 127.0.0.1 – Запись указывающая ip адресс сервера, обслуживающего omsklug.com;
mail IN A 192.168.254.3 – Запись указывающая ip адрес сервера в лок.сети обслуживающего поддомен mail.omsklug.com;
www IN CNAME @ – Запись указывающая на переадресацию запросов, т.е. адреса omsklug.com и www.omsklug.com обслуживает один и тот же сервер, в данном случае сам dns сервер.

Далее настроим файл зоны обратного просмотра: /etc/bind/127.0.0.rev

$TTL 86400
@ IN SOA omsklug.com. root.omsklug.com (
2014050101 ; Serial
1d ; Refresh
12h ; Retry
1w ; Expire
3h ; Minimum
);

@ IN NS omsklug.com.
1 PTR omsklug.com.
3 PTR mail.omsklug.com.

Запись - 1 PTR omsklug.com. – указывает что зону omsklug.com обслуживает адрес 127.0.0.1
Запись – 3 PTR mail.omsklug.com. – указывает что поддомен mail.omsklug.com обслуживает адрес 192.168.254.3
Далее перезапускаем службу командой
sudo service bind9 restart

Проверку можно провести командой nslookup.
Вот и все:) Всем удачи, может что-то упустил, пишите поправим, дополним;).

]]>
http://omsklug.com/2014/05/dns-server-bind-ubuntu-12-04/feed/ 0
Document Freedom Day 2014 в Омске http://omsklug.com/2014/03/document-freedom-day-2014/ http://omsklug.com/2014/03/document-freedom-day-2014/#comments Sun, 23 Mar 2014 18:37:15 +0000 linuxmasterz http://omsklug.com/?p=1668 Document Freedom Day from Free Software Foundation Europe e.V.

2014-03-29 в 10.00 OMST (с утра) Омская группа пользователей Linux (OmskLUG) проводит День свободы форматов данных в Омском IT Loft (г. Омск, ул. Учебная, д. 83).

С 2008 года ежегодно во всем мире в последнюю среду марта проводится День свободы форматов данных (http://documentfreedom.org/). В 2014 году – это 26 марта (мы же перенесли на субботу, будний день – неудачное время). Это мероприятие направлено на повышение информированности общества об открытых стандартах и форматах.

Несколько докладов о свободных форматах данных в кругу единомышленников:

“Свободные форматы данных – как спасение человечества”
“Свободное железо”
“Свободные медиаресурсы”

Планирование акций по внедрению свободных форматов данных. Приходите со своими историями успеха, когда и как вас спасли свободные форматы данных и вообще свободный медиаконтент.

В ходе мероприятия, во время кофебрейка, после мероприятия будет “криптовечеринка” (KSP, Key Signing Party): приносите свои отпечатки публичных ключей  (а лучше отправьте их координатору на post@omsklug.com) и какой-нибудь документ, который удостоверяет, что вы есть. Что такое KSP? Вот: https://db.tt/86bW7biW

Если желаете поучаствовать в качестве организаторов, то оставляйте комментарии на сайте http://www.omsklug.com , пишите на почту post@omsklug.com, забегайте в нашу jabber-конференцию: omsklug@conference.jabber.ru

Для успешного проникновения на территорию IT Loft необходима регистрация и тапочки (ну или можете храбро ходить без обуви, если посмеете):

http://bit.ly/dfd2014

Если же проникнуть вам не удастся, то есть вариант посмотреть трансляцию мероприятия тут: http://www.omsklug.com/tv

]]>
http://omsklug.com/2014/03/document-freedom-day-2014/feed/ 2
Вторая троллинуксовка в Омске http://omsklug.com/2014/02/trolleybus-linux-meeting-2/ http://omsklug.com/2014/02/trolleybus-linux-meeting-2/#comments Sun, 23 Feb 2014 18:30:43 +0000 linuxmasterz http://omsklug.com/?p=1658

Утро

В морозное утро 22 февраля 2014 года омские линуксоиды выдвинулись на начальную точку движения в небольшом путешествии по Омску на WiFiизированном троллейбусе маршрута №4, а именно на остановку общественного транспорта «Железнодорожный вокзал». Это уже не первый случай такого «хождения в народ». Что-то подобное мы уже делали в 2011 году.

Собралось чуть более трёх человек. Если бы собрались в 11.00, то сразу бы выехали, но…. Получилось так, что ждали следующего троллейбуса до 12.10 часов, мёрзли на остановке, грелись в тамбуре железнодорожного вокзала, почему-то не привлекая внимания охраны.

В троллейбусе

Только присели, раскрыли ноутбуки, как некий пожилой господин стал активно интересоваться, чем же мы тут занимаемся, за что он был одарен брошюрой про GNU/Linux. Потом были девушки, студенты, ну и кондуктору выдали брошюрку, чтобы знали в троллейбусном парке, что тут делали омские линуксоиды. Было холодно, чертовски холодно, особенно ближе к полу, так как троллейбус был не совсем новый. Но в целом было весело, что смягчало температурный дискомфорт. Удивительно, что не каждый кондуктор знает, есть ли WiFi в троллейбусе или нет. Вообще, в том троллейбусе, на котором следовали в Нефтянники, не было каких-либо опозновательных знаков про WiFi, может это и к лучшему.

Тесты

Интернеты в WiFi-роутере были обычные. 200-300 ms задержки и 500-1200 килобит в секунду по скоростям (меряли кошерной iperf). Адрес роутера 192.168.1.1. Блокировки сайтов обычные, от основного провайдера. Порты, кроме 80 и 443, прекрасно пропускает, что серьёзный плюс, так как SSH и VPN жизненно важен для более-менее продвинутого линуксоида.

Сюрприз

Во время использования интернетов в троллейбусе, подошёл некий неизвестный школьник и давай показывать, что 3G-роутер совершенно беззащитен: имя учётной записи admin и пароль админки внезапно совпадали. Представители сообщества в интернетах предлагали залить в 3G-роутер улучшенную и безопасную прошивку OpenWRT, но не стали так делать. Хотя… Ведь есть же cjdns, да? Или i2p? Не, ну правда. Почему бы и нет? Скриншотики сохранили. Интернет раздавал Huawei B681 HSPA+ 4G Wireless gateway router. Молодцы, хороший выбор, не совсем плохая железка.

Фотосессия

Вторая троллинуксовка в Омске
Вторая троллинуксовка в Омске
]]>
http://omsklug.com/2014/02/trolleybus-linux-meeting-2/feed/ 0
Настройка ejabberd сервер + mysql + pyticq транспорт http://omsklug.com/2014/02/ejabberd-server-mysql-pyticq-transport/ http://omsklug.com/2014/02/ejabberd-server-mysql-pyticq-transport/#comments Sun, 09 Feb 2014 13:34:08 +0000 Plus http://omsklug.com/?p=1521 Обычная история про то, как я устанавливал обычный корпоративный сервер для общения между сотрудниками, так и через внешние аккаунты некогда популярных сетей общения.

1. Базовые настройки

Настройки /etc/ejabberd/ejabberd.cfg почти все стандартны, за исключением указанных ниже:

override_local.

Укажем логин администратора (у jabber-сервера свой администратор, не путать с системным) и имя сервера:
%% Admin user {acl, admin, {user, "info", "omsklug.com"}}.
%% Hostname {hosts, ["omsklug.com"]}.

Раскомментируем настройки транспорта icq:
%% Jabber ICQ Transport
{5555, ejabberd_service,
[{ip, {127, 0, 0, 1}},
{access, all},
{shaper_rule, fast},
{hosts, ["icq.omsklug.com", "sms.omsklug.com"],
[{password, "secret"}]}
]},

Если используется внутренняя база тогда раскоментируем:
%%{auth_method, internal}.

Если же используется база mysql, тогда открываем вот это:
{auth_method, odbc}.

Далее настроим доступ к Базе данных, предварительно её создав и настроить пользователя к ней:
{odbc_server, {mysql, "localhost", "ejabberd", "ejabberd", "ejabberd"}}.

Включаем настройку локализации:
{language, "ru"}.

Разрешаем регистрацию пользователей:
{access, register, [{allow, all}]}.

далее нужно подключить модули к mysql:
Меняем значения:
mod_last на mod_last_odbc
mod_offline на mod_offline_odbc
mod_privacy на mod_privacy_odbc
mod_private на mod_private_odbc
mod_roster на mod_roster_odbc
mod_vcard на mod_vcard_odbc

Сохраняем и закрываем /etc/ejabberd/ejabberd.cfg

2. Настройка базы MySQL для ejabberd

Теперь настройка mysql базы: нужно грамотно загрузить дамп пустой базы, поэтому берем его тут:
https://github.com/processone/ejabberd/blob/2.1.x/src/odbc/mysql.sql
После всех операций перезапускаем правильно необходимые сервисы ejabberd и mysqld:

sudo /etc/rc.d/ejabberd stop sudo /etc/rc.d/mysqld restart sudo /etc/rc.d/ejabberd start

3. Создание общего списка контактов сервера

В общем на этом можно было бы и остановиться, если бы не одно но. По умолчанию список контактов (ростер на терминологии jabber) нового пользователя пуст. Это вполне нормально для личного использования или для работы с публичными серверами – пользователь сам выбирает с кем общаться, но абсолютно неприемлемо для корпоративной среды, где список контактов заранее определен. Было бы неплохо, чтобы новый пользователь автоматически попадал в этот список и автоматически получал его в свой клиент. К счастью сделать это совсем несложно. В /etc/ejabberd/ejabberd.cfg найдем и раскомментируем следующую строку:

{mod_shared_roster, []},

Сохраняем файл, перезапускаем сервис. Теперь в веб-админке в разделе Virtual Hosts – имя вашего сервера появился пункт Группа общих контактов. Создаем такую группу и настраиваем. Для того, чтобы в группу автоматически попадали все пользователи в поле Члены укажите @all@, а в поле Видимые группы укажите название вашей группы, которое вы ввели при ее создании.

ВНИМАНИЕ!!!
Для Debian GNU/Linux надо установить клиент к БД. Готовый годный пакет -  здесь
Подробное описание конфига /etc/ejabberd/ejabberd.cfg можно посмотреть тут: http://blog.scaytrase.ru/linux/330/
Ещё один неплохой мануал: http://forum.odmins-it.ru/index.php?topic=170.0

4. Настройка транспорта ICQ

Далее переходим к настройке необходимого нам pyticq:
Здесь всё проще некуда:

<pyicqt>
<!-- The JabberID of the transport. -->
<jid>icq.hostname.server</jid>
<!-- The component JID of the transport. Unless you're doing clustering, leave this alone -->
<!-- <compjid>icq1</compjid> -->
<!-- The IP address of the main Jabberd server -->
<mainServer>127.0.0.1</mainServer> - адрес сервера
<!-- The JID of the main Jabber server -->
<mainServerJID>icq.adress.ru</mainServerJID> - имя сервера с транспортом
<!-- The website of the Jabber service -->
<website>http://adress.ru/</website> - адрес странички
<!-- The website of the transport service -->
<!-- <transportWebsite></transportWebsite> -->
<!-- The support room on your server -->
<!-- <supportRoom></supportRoom> -->
<supportJid>jid@adress.ru</supportJid>
<!-- The TCP port to connect to the Jabber server on -->
<!-- (this is the default for Jabberd2) -->
<port>5555</port> - порт указанный в транспорте конфига ejabberd.cfg
<!-- The TCP port that the web admin interface will answer on -->
<!-- (uncomment to enable) -->
<!-- <webport>12345</webport> -->
<webport>8022</webport>
<!-- The authentication token to use when connecting to the Jabber server -->
<secret>secret</secret>
<!-- The default language to use (for error/status messages) -->
<lang>ru</lang>
<!-- Default one-byte message encoding to use -->
<encoding>cp1251</encoding>
<!-- The hostname of the ICQ server you wish to connect to -->
<icqServer>login.icq.com</icqServer>
<!-- The port of the ICQ server you wish to connect to -->
<icqPort>5190</icqPort>

можно еще отредактировать блок:

<admins>
<jid>admin@jid</jid>
<!--<jid>admin@host.com</jid>-->
</admins>

Остальное оставляем по умолчанию. У нас получился XMPP-сервер (Jabber), проникнутый духом корпоративности и порядка. В будущем подумаем о других транспортах XMPP. В комментариях – пишите, какие транспорты IM-сетей вас интересуют.

]]>
http://omsklug.com/2014/02/ejabberd-server-mysql-pyticq-transport/feed/ 0