ОМСКАЯ ГРУППА ПОЛЬЗОВАТЕЛЕЙ LINUX http://omsklug.com Свобода - это ответственность. Вот почему все её так боятся. Бернард Шоу Tue, 14 May 2013 10:27:08 +0000 en hourly 1 http://wordpress.org/?v=3.2.1 День свободы форматов данных 2013 в Омске! http://omsklug.com/2013/03/document-freedom-day-2013/ http://omsklug.com/2013/03/document-freedom-day-2013/#comments Wed, 27 Mar 2013 16:50:39 +0000 linuxmasterz http://omsklug.com/?p=1464 Free Software Foundation Europe e.V.

Free Software Foundation Europe e.V.

2013-03-30 в 15.00 OMST (после полудня) Омская группа пользователей Linux (OmskLUG) проводит День свободы форматов данных на факультете компьютерных наук Омского государственного университета им. Ф.М. Достоевского (г. Омск, ул. Грозненская, д. 11, ауд. 207Б).

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

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

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

Для успешного проникновения на территорию ОмГУ необходима регистрация:

http://bit.ly/XH3zYt

]]>
http://omsklug.com/2013/03/document-freedom-day-2013/feed/ 2
Ubuntu Global Jam 13.04 в Омске! http://omsklug.com/2013/02/ubuntu-jam-13-04-omsk/ http://omsklug.com/2013/02/ubuntu-jam-13-04-omsk/#comments Tue, 26 Feb 2013 09:40:34 +0000 linuxmasterz http://omsklug.com/?p=1449 2013-03-04 в 17.00 OMST (вечер первого понедельника марта) Омская группа пользователей Linux (OmskLUG) проводит Ubuntu Global Jam на факультете компьютерных наук Омского государственного университета им. Ф.М. Достоевского (г. Омск, ул. Грозненская, д. 11, ауд. 207Б).

Что будем делать и обсуждать на Ubuntu Global Jam:
* Поиск и исправление ошибок
* Тестирование установки и обновления
* Работа над документацией
* Переводы (Антон Пацев aka chemtech)
* Сборка deb-пакетов
* Истории успеха использования Ubuntu как дома, так на рабочем месте (Андрей Литвинов aka winni)
* Можно будет попробовать запустить Steam и даже поиграть (LINUX HAS NO GAMES)

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

Для успешного проникновения на территорию ОмГУ необходима регистрация:

http://bit.ly/XXPBAt

]]>
http://omsklug.com/2013/02/ubuntu-jam-13-04-omsk/feed/ 1
Омские линуксоиды на Омском IT-субботнике http://omsklug.com/2013/02/linux-at-omsk-it/ http://omsklug.com/2013/02/linux-at-omsk-it/#comments Mon, 11 Feb 2013 09:47:36 +0000 linuxmasterz http://omsklug.com/?p=1427 Омский IT-субботник

Участники нашей группы пользователей Linux активно участвуют на Омском IT-субботнике (http://www.vk.com/omskit) Это такое некоммерческое мероприятие для создания “горизонтальных” связей в Омском IT-сообществе. Проводится каждую первую субботу месяца где-нибудь в Омске. В основном собираются представители Омского вебдева.

И вот на третьем субботнике, в феврале 2013 года, OmskLUG был представлен в т.н. “живом^W “уголке эксперта”. Конечно, интерес к “уголку эксперта” был сдержанный. Подошло только два человека: один пообщался про виртуализацию (один из докладов на третьем Омском IT-субботнике), второй – просто про OmskLUG, “что мы за ребята и кто нас видел”. Но даже это хорошо.

Приглашаем участников OmskLUG поучаствовать в этом действе, как в качестве слушателей, так и в качестве докладчиков, консультантов. Вопросы по свободному ПО у слушателей есть. Просто, видимо, они стесняются их спросить или не видят приятных для себя людей ^__^. В общем, вы поняли, приходите.

]]>
http://omsklug.com/2013/02/linux-at-omsk-it/feed/ 1
Сборка unstable-версии Wine для stable-ветки Debian (TrueЪ Debian-way) http://omsklug.com/2013/01/build-wine-on-debian-stable/ http://omsklug.com/2013/01/build-wine-on-debian-stable/#comments Thu, 10 Jan 2013 11:36:24 +0000 Shroom http://omsklug.com/?p=1362

Аннотация

В статье описан способ получения набора пакетов последней версии Wine для stable-ветки Debian GNU/Linux. В качестве инструмента используется утилита dpkg-buildpackage. Также кратко описан вариант использования dh_make.

Где найти?

Первая мысль, которая приходит в ответ на вопрос, где взять свежий Wine, — посмотреть собственно на сайте WineHQ в разделе Wine downloads (http://www.winehq.org/download/). Однако, как можно обнаружить при детальном исследовании ссылок на этой странице, никаких бинарников там нет. На самом же деле всё, что нам нужно, хранится на сайте стороннего разработчика, который и публикует сборки для Debian sid/unstable, а также выкладывает исходники с патчами. То есть, если у вас стоит sid (или подключены репозитории от unstable и experimental для разрешения зависимостей), вы можете взять пакеты прямо отсюда: http://dev.carbon-project.org/debian/wine-unstable/. Если же вы предпочитаете стабильность, но при этом хотите использовать новейшие разработки создателей Wine, придётся качать исходники. Ссылки на них размещены на этой же странице в разделе Source package. Фактически для сборки понадобятся два архива: wine-unstable_1.5.5.orig.tar.bz2 (это собственно дерево исходников) и wine-unstable_1.5.5-0.1.debian.tar.bz2 (это параметры для системы сборки пакетов). А файл wine-unstable_1.5.5-0.1.dsc — это подписанное маинтейнером описание архивов с исходниками.

С чего начать?

  1. Распаковать архив wine-unstable_1.5.5.orig.tar.bz2. Получится каталог wine-1.5.5.
  2. Распаковать архив wine-unstable_1.5.5-0.1.debian.tar.bz2 внутрь каталога wine-1.5.5. Таким образом внутри wine-1.5.5 должен появиться каталог с именем debian.
  3. Проверить, есть ли в системе пакет dpkg-dev (dpkg-buildpackage находится именно в нём): выполнить dpkg -l dpkg-dev | grep ii — если в результате вернётся строка с кратким описанием пакета, значит он уже есть, если ничего не будет, значит его нет. Если такой пакет не установлен, это недоразумение нужно исправить, выполнив apt-get install dpkg-dev.
  4. Перейти в wine-1.5.5 и запустить dpkg-buildpackage -b -us -uc (значения ключей будут описаны в следующем разделе). Если после всевозможных проверок сразу же началась компиляция, значит по какой-то волшебной причине у вас уже были поставлены все пакеты, от которых зависит сборка Wine. Если же процесс ещё и завершился корректно с кучей пакетов на выходе, вас можно только поздравить. Однако, с большой степенью вероятности dpkg-buildpackage завершится через пару секунд, вывалив примерно такое сообщение:
    dpkg-checkbuilddeps: Неудовлетворённые сборочные зависимости:
    debhelper flex bison libx11-dev libxext-dev libxi-dev
    libxrandr-dev libxrender-dev libxt-dev libxkbfile-dev
    libxxf86dga-dev libxxf86vm-dev libxinerama-dev libxcomposite-dev
    libgl1-mesa-dev | libgl-dev libglu1-mesa-dev | libglu-dev
    freeglut3-dev | libglut-dev libxmu-dev libxcursor-dev
    libncurses5-dev libcups2-dev libjpeg-dev libpng-dev
    libfreetype6-dev libfontconfig1-dev libopenal-dev libasound2-dev
    oss4-dev libsane-dev libusb-dev libgsm1-dev libmpg123-dev
    libcapi20-dev libdbus-1-dev | dbus-1-dev libgphoto2-2-dev
    liblcms1-dev libldap2-dev libssl-dev libgnutls-dev libxml2-dev
    libxslt1-dev unixodbc-dev prelink dctrl-tools | grep-dctrl lzma
    sharutils libgstreamer-plugins-base0.10-dev gettext valgrind
    dpkg-buildpackage: предупреждение: Неудовлетворительные
    зависимости/конфликты при сборке, останов.

  5. Поставить все пакеты из списка неудовлетворённых зависимостей, полученного на предыдущем шаге. Обратите внимание на пары имён пакетов, разделённых символом «|» («конвейер»). Это альтернативы, то есть одно имя соответствует реальному пакету, который найдётся в репозитории, а второе имя — это или виртуальный пакет, или устаревшее название. И ставить нужно реальный пакет. Так что, прежде чем копировать кучей сразу все названия в командную строку после apt-get install, выясните, какие из названий, разделённых «|», реально присутствуют в репозитории (например, через apt-cache search <regexp> или dpkg -l <regexp>.

Как собрать?

Совершенно тривиально:
dpkg-buildpackage -b -us -uc

После тучи ошибок первого запуска dpkg-buildpackage наверняка предложил во второй раз запустить себя с ключом -d. Этот ключ означает «не определять зависимости». Если вы уверены, что ничего не упустили, можно, конечно, добавить и его… Но ведь заранее никогда не знаешь… Поэтому перезапускаем как есть, с теми же тремя ключами:

-b
Ключ, предписывающий собирать только бинарные пакеты, без упаковки исходников. Без этого ключа dpkg-buildpackage попытается создать src-deb и будет искать архив с исходниками (то есть wine-unstable_1.5.5.orig.tar.bz2) рядом с каталогом сборки (то есть с wine-1.5.5). Если всё будет на месте, дополнительно получим ещё один пакет, который, впрочем, никому особо не нужен. И чтобы не множить сущности, ставим этот ключ.
-us
Не пытаться подписать .dsc-файл.
-uc
Не пытаться подписать файл .changes.

С момента запуска процесса сборки до получения набора пакетов может пройти (в зависимости от скорости работы компьютера) от 20 минут до полутора часов. В это время можно курить бамбук пить чай или кофе, поскольку возможности каким-либо образом повлиять на процесс до его окончания уже не представится.

Если всё прошло удачно, то в результате вы получите примерно такой список пакетов:

  • libwine-alsa-unstable_1.5.5-0.1_i386.deb
  • libwine-bin-unstable_1.5.5-0.1_i386.deb
  • libwine-capi-unstable_1.5.5-0.1_i386.deb
  • libwine-cms-unstable_1.5.5-0.1_i386.deb
  • libwine-dbg-unstable_1.5.5-0.1_i386.deb
  • libwine-dev-unstable_1.5.5-0.1_i386.deb
  • libwine-gl-unstable_1.5.5-0.1_i386.deb
  • libwine-gphoto2-unstable_1.5.5-0.1_i386.deb
  • libwine-ldap-unstable_1.5.5-0.1_i386.deb
  • libwine-openal-unstable_1.5.5-0.1_i386.deb
  • libwine-oss-unstable_1.5.5-0.1_i386.deb
  • libwine-print-unstable_1.5.5-0.1_i386.deb
  • libwine-sane-unstable_1.5.5-0.1_i386.deb
  • libwine-unstable_1.5.5-0.1_i386.deb
  • wine-bin-unstable_1.5.5-0.1_i386.deb
  • wine-unstable_1.5.5-0.1_i386.deb

Сразу замечу, что некоторые из пакетов можно не ставить:

libwine-cms-unstable_1.5.5-0.1_i386.deb
если вам не нужна система управления цветом (Color Management System) под вайном (то есть, если вы не собираетесь калибровать ваши монитор, принтер и сканер из-под Wine);
libwine-dbg-unstable_1.5.5-0.1_i386.deb
поскольку это отладочные символы для бинарников;
libwine-dev-unstable_1.5.5-0.1_i386.deb
потому что этот пакет нужен для разработки под Wine;
libwine-gphoto2-unstable_1.5.5-0.1_i386.deb
если вы не собираетесь смотреть фотки со своего цифрового фотоаппарата из виндовых приложений, запущенных под Wine’ом;
libwine-ldap-unstable_1.5.5-0.1_i386.deb
если вы не собираетесь авторизоваться через Wine в домене;
libwine-oss-unstable_1.5.5-0.1_i386.deb
поскольку технология OSS в Линуксе считается атавизмом (в отличие, например, от BSD-систем);
libwine-sane-unstable_1.5.5-0.1_i386.deb
если вы не собираетесь давать виндовым приложениям доступ к вашему сканеру.

Если же вожделенных пакетов вы так и не обнаружили… Что ж, переходите к чтению следующего раздела.

Что делать, если что-то пошло не так?

Во-первых, ещё раз проверить зависимости. Если какой-то пакет не ставится — скорее всего, вы пытаетесь поставить альтернативный вариант, который стоит рядом с «|». В этом случае нужно ставить тот пакет, который записан с другой стороны от значка конвейера.

Во-вторых, проверить, не поломалась ли структура «дебианизации» дерева исходников — содержимое каталога debian. Если есть сомнения, его нужно прибить и распаковать заново из скачанного архива. В данном случае из-за отсутствия некоторых специфических настроек в debian/rules после сборки могут запуститься тесты, которые на подавляющем большинстве систем будут давать сбои (как заявляют сами разработчики Wine’а в одном из списков рассылки). А потеряться эти настройки могут, если по ошибке каталог debian будет перезаписан или удалён и создан заново по шаблону с помощью команды dh_make.

В-третьих, прочитать man по dpkg-buildpackage и понять, какие параметры реально нужны в данной ситуации. Например, если его запускать без ключа -b, дополнительно будет собран src-пакет. Вернее, он будет собран, если рядом с каталогом wine-1.5.5 будет обнаружен архив wine-unstable_1.5.5.orig.tar.bz2. В противном случае вам предъявят следующее:

…
dpkg-source: ошибка: невозможно собрать с форматом
исходника «3.0 (quilt)»: файл orig.tar не найден
dpkg-buildpackage: ошибка:
dpkg-source -b wine-1.5.5 возвратил код ошибки 255
…

И если после этого захотеть исправить ситуацию с помощью dh_make, как об этом пишут на некоторых форумах, мы получим сброшенные настройки правил сборки пакетов и вернёмся к пункту «во-вторых».

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

Примечание: если вы чувствуете растерянность от обилия в тексте непонятных команд и утомлены описаниями вещей, которые кажутся вам бессмысленными, настоятельно рекомендую сделать паузу в чтении, отдохнуть и прочитать документацию ко всем упомянутым командам в формате man или info.

Что же такое dh_make?

Как сказано в мануале, это утилита для подготовки оригинальных сырцов к сборке из них дебиановского пакета. Вопрос «для чего это нужно?» мы сейчас рассматривать не будем, поскольку он является, скорее, философским и вполне может стать поводом для новой войны. В данном случае нас больше интересует, как это сделать.

Итак, если у вас есть просто голые исходники чего-либо (слитые, например, из какого-то репозитория на github или SourceForge), и вам позарез нужно сделать из них .deb-пакет, вам нужно будет совершить несколько нехитрых действий.

Самое первое — конечно же, распаковать архив с исходниками. Название директории после распаковки может быть, вообще говоря, любым, но для использования с dh_make нужно привести его к виду <названиепакета>-<версия>, причём <названиепакета> обязано содержать только маленькие буквы латинского алфавита, возможно, с цифрами и знаками «-» (обычный минус).

Следующим шагом будет собственно зайти в переименованную директорию и запустить там dh_make. И тут, как обычно, начинаются разные «но» и «если». Если не указан ключ --native, dh_make будет искать рядом с каталогом исходников архив вида <названиепакета>-<версия>.orig.tar.gz (впрочем, он может быть не только .gz, но также и .bz2, и .lzma). Если там такого файла нет, но указан ключ -f <имяфайла>, то dh_make скопирует <имяфайла> и использует его в качестве оригинального архива. Если же ключ -f не указан, но есть ключ --createorig, то dh_make создаст архив из текущего дерева исходников. Архив, кстати, нужен будет другим утилитам для генерации различий между оригинальными файлами и обновлёнными версиями (соответственно, для подготовки патчсета) и для построения дебиановской структуры src-пакета.

После того, как разобрались с архивом, нужно будет ответить на дополнительный вопрос: что мы хотим получить в результате — единственный пакет (single binary), архитектурно-независимые файлы (arch-independent), несколько пакетов (multiple binary), библиотеку (library), модуль ядра (kernel module) или же патч для ядра (kernel patch). От сделанного выбора будут зависеть параметры, которые dh_make запишет в структуру внутри каталога debian.

В сущности, это всё. После того, как dh_make отработал (будем надеяться, без ошибок), можно переходить к процедуре сборки пакета с помощью dpkg-buildpackage.

На самом же деле, если вы не собираетесь становиться маинтэйнером, скорее всего, эта утилита вам никогда не понадобится.

Благодарности

Автор выражает признательность члену OmskLUG с ником Lumpy за осуществление на практике и тестирование всего процесса, описанного в этом руководстве.

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

Эту статью можно скачать в формате PDF отсюда совершенно свободно.

]]> http://omsklug.com/2013/01/build-wine-on-debian-stable/feed/ 0 Направлениe в библиотеки школ и ВУЗов Linux-материалов http://omsklug.com/2012/12/linux-education-campaign/ http://omsklug.com/2012/12/linux-education-campaign/#comments Fri, 28 Dec 2012 18:35:04 +0000 linuxmasterz http://omsklug.com/?p=1353 TuxОмская группа пользователей Linux начинает кампанию по безвозмездному распространению образовательных материалов для библиотек учреждений среднего и высшего образования Омской области в виде комплекта из:

Единственное условие получения данных материалов – внесение полученных материалов в фонд библиотеки и размещение плаката на доступном для посетителей библиотеки месте.

На настоящее время данный комплект получили ОмГУ, ОмГТУ, СибАДА и около 15 учебных заведений среднего образования.

Планируется сделать ещё несколько тиражей и сделать версию книги для Ubuntu 12.04. Вы всегда можете морально и материально поддержать эту кампанию: http://omsklug.com/donate/ Омские линуксоиды открыты для сотрудничества.

]]>
http://omsklug.com/2012/12/linux-education-campaign/feed/ 4
Как собрать пакет WHDD http://omsklug.com/2012/12/whdd-assemble-and-install/ http://omsklug.com/2012/12/whdd-assemble-and-install/#comments Sat, 15 Dec 2012 07:04:12 +0000 Shroom http://omsklug.com/?p=1344 Аннотация

В статье рассказывается, как быстро собрать пакет WHDD для Debian-based дистрибутивов GNU/Linux.

1 Что такое WHDD?

  Собственно, эту информацию можно найти в README. Буквально там говорится следующее. «WHDD — это утилита для диагностики и восстановления блочных устройств (практически аналог MHDD для Linux)». Функционал пока весьма скромен, однако вполне полезен. WHDD умеет распознавать подключенные блочные устройства, может выдать информацию о параметрах S.M.A.R.T., а также может протестировать диск в двух режимах: «только чтение» (данные остаются на месте) и «запись нулей» (соответственно, все данные при этом будут потеряны). Естественно, эта утилита умеет и отображать результаты тестирования, при этом интерфейс практически один к одному повторяет таковой у MHDD.

2 Где найти?

  На момент написания этого Mini-HowTo (декабрь 2012 года) ни в одном дистрибутиве, кроме Gentoo, пакета WHDD не было. Если верить статье WHDD как аналог MHDD под GNU/Linux (http://syslinux.ru/node/1364), в Gentoo «whdd с марта 2012 года находится в основном дереве портежей, и максимум, что нужно сделать — это размаскировать этот пакет». Поэтому для Debian придётся скачать исходники из репозитория на github (https://github.com/krieger-od/whdd/ или сразу получить архив с последней версией исходников отсюда: https://github.com/krieger-od/whdd/archive/master.zip) и собрать программу на своей машине. Ничего страшного и сложного в этом нет; сейчас объясню, как это сделать.

3 Что понадобится?

  1. Естественно, прежде всего для сборки нужны исходники. Предполагаем, что они уже скачаны. Затем их нужно куда-то распаковать. Пусть, например, это будет каталог zoo в домашнем каталоге пользователя. Поскольку исходники находятся в zip-архиве, распаковать их в zoo, я надеюсь, не составит никакого труда (иначе вся информация, изложенная здесь, будет для вас абсолютно бесполезной).
  2. Библиотеки для работы программы:
    1. libmenuw.so и libncursesw.so находятся в пакете libncursesw5 («w» — это wide-character, то есть поддержка многобайтных символов);
    2. libtinfo.so находится в пакете libtinfo5;
    3. libc.so, libm.so, libdl.so, librt.so, libpthread.so являются частью пакета libс6, который ставится при установке, поскольку без него система просто не сможет работать. Поэтому о них можно не беспокоиться.
  3. Пакеты для сборки:
    1. libncursesw5-dev;
    2. libtinfo-dev;
    3. dialog;
    4. libncurses5-dev (обратите внимание — это пакет заголовков для libncurses без поддержки многобайтных символов, без него не находится unctrl.h, на который ссылается dialog.h);
    5. libc6-dev (если вы до этого момента никогда и ничего не собирали на своей машине, вам нужно его поставить; если же собирали, скорее всего, он у вас уже есть).
  4. Инструменты для сборки:
    gcc
    Компилятор C от GNU, если кто не в курсах. По умолчанию обычно не ставится, поэтому, если вы не разработчик, скорее всего, придётся поставить и его.
    make
    Система для автоматического разрешения зависимостей и оптимизации процесса сборки. Полезна не только для программистов, поскольку изначально предназначена для описания процесса создания неких конечных файлов из некоторого количества исходных. Основная особенность — процессы обработки запускаются только для тех файлов, которые были изменены после последней сборки.
    cmake
    Кросс-платформенный генератор make-файлов. При установке пакета тянет за собой emacsen-common (опосредованно, через зависимость от cmake-data), так что не пугайтесь.
    checkinstall
    Весьма полезная утилита, которая позволяет отслеживать файлы и каталоги, которые получаются в процессе сборки и установки софта из исходников (с помощью make && make install), и делать из них полноценный .deb-пакет. Собственно для процесса сборки не нужна, поэтому её можно не ставить. Однако я настоятельно рекомендую использовать именно её вместо традиционного make install, поскольку установленный пакет вычистить из системы значительно проще, нежели рыскать по дереву каталогов в поисках хвостов установленной когда-то программы, особенно если исходников уже давно нет и make uninstall сделать просто невозможно.

Если вы время от времени намерены собирать что-нибудь из исходников, вероятно, имеет смысл поставить пакет build-essential, в зависимостях которого указаны и libc6-dev, и gcc, и make.

 Итак, резюмируя вышесказанное одной командой,
# apt-get install build-essential libncursesw5-dev \
libtinfo-dev libncurses5-dev dialog libc6-dev cmake \
checkinstall libncursesw5 libtinfo5

  Обратите внимание на символ «\» (бэкслэш) на концах строк: здесь он приведён, чтобы показать, что вторая и третья строка являются продолжением первой. Никакой другой цели, кроме эстетической (избежать слишком длинной строки), в его использовании не было. В настоящем терминале можно обойтись и без него (записать команду со всеми параметрами просто в одну строчку), хотя там он выполняет ту же функцию — говорит оболочке о том, что строка не закончилась и будет продолжена дальше.

4 Как собрать?

  Для сборки проекта необходимо перейти в каталог с исходными текстами и выполнить всего две команды:
$ cmake . && make

  Обратите внимание на то, что эти две команды записаны в одной строке, причём оператор && гарантирует выполнение второй команды только после успешного завершения первой. Точка после cmake важна, так как задаёт рабочий каталог, в котором находятся параметры для cmake и в котором будет сгенерирован make-файл. Также можно запустить сборочный скрипт, который находится в этом же каталоге с исходниками:
$ ./build.sh
Но по сути этот скрипт запускает те же две команды сборки и предлагает выполнить make install для установки.

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

5 Как установить?

  Если вы выбрали путь наименьшего сопротивления и согласились выполнить make install (из-под административного аккаунта, то есть, от имени root‘а), можете пропустить этот раздел и сразу запустить whdd:
# whdd-cli
или
# whdd-curses

  Если же вы являетесь адептом строгого и рационального Debian-way, то сначала вы соберёте .deb-пакет, а затем установите его, и ваша система останется прозрачной, логичной и управляемой.

  Итак, checkinstall… Как вы, вероятно, заметили, сборка программы идёт с правами обычного пользователя, поскольку процесс происходит в пользовательском каталоге. То же самое касается и сборки пакета. Установка же предполагает запись в системные директории, что потребует наличия прав администратора. Сам по себе checkinstall, запущенный без параметров, соберёт пакет и попытается его установить. Таким образом, если вы хотите собрать пакет и сразу же установить его (автоматически), вы можете сделать это, выполнив
# checkinstall
с правами администратора. Если же вы хотите только собрать пакет без непосредственной установки, вы можете задать параметр --install=no, выполнив
$ checkinstall --install=no
с правами обычного пользователя.

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

Этот пакет был создан с использованием данных значений:
0 -  Maintainer: [ root@localhost ]
1 -  Summary: [  ]
2 -  Name:    [ krieger-od-whdd-c8a8691 ]
3 -  Version: [ c8a8691 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ krieger-od-whdd-c8a8691 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [  ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

Введите номер для изменения параметра или нажмите ВВОД для продолжения:

  Опять же, если вы не собираетесь распространять этот пакет, можете только изменить на что-то вменяемое имя пакета (2 - Name), версию (3 - Version) и предоставляемые пакеты (11 - Provides). Впрочем, последнее необязательно. Имя должно отражать реальное название софта, версия должна быть адекватной для того, чтобы можно было легко апгрейдиться после выхода новых и/или официальных версий (для whdd последняя версия на момент написания этого текста была 1.1), поле предоставляемых пакетов сообщает пакетному менеджеру информацию для разрешения зависимостей.

  Если хочется всё сделать правильно, тогда очень желательно дополнительно изменить поля «Ответственный за поддержку» (0 - Maintainer, обычно пишется имя, а затем адрес электронной почты в угловых скобках), «Краткое описание» (1 - Summary, сюда можно вставить первое предложение из README), «Раздел» (6 - Group, ветка дерева пакетов, в которую попадёт этот пакет; для whdd можно выставить util или admin), «Зависимости» (10 - Requires, здесь указываются пакеты, без наличия которых в системе приложение не запустится, и их версии). Вот что получилось в результате у меня (версии библиотек указаны для Debian 7 Wheezy/testing):

Этот пакет был создан с использованием данных значений:
0 -  Maintainer: [ Philaret Nikonov <phil@hyperion.cc> ]
1 -  Summary: [ WHDD is a diagnostic and recovery tool for
     block devices (near to replace MHDD for Linux). ]
2 -  Name:    [ whdd ]
3 -  Version: [ 1.1-git20121213-c8a8691 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ util ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ krieger-od-whdd-c8a8691 ]
9 -  Alternate source location: [  ]
10 - Requires: [ libc6 (= 2.13-37), libncursesw5 (=5.7), libtinfo5 (=5.7) ]
11 - Provides: [ whdd ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

Введите номер для изменения параметра или нажмите ВВОД для продолжения:

Installing with make install...

  В сущности, это всё. После нажатия <Enter> checkinstall соберёт пакет и (если ему этого не запретили явно) попытается его установить. После того, как пакет был успешно установлен, дерево исходников можно с лёгким сердцем удалять до следующего релиза.

6 Кого спросить?

  Итак, с вопросом «что делать?» мы (надеюсь) разобрались, остался вопрос «кто виноват?» То есть, «кому задавать вопросы, если всё пошло не так?»

  Во-первых, конечно же, авторам программы WHDD. Их координаты можно найти в файле README, который лежит в каталоге doc дерева исходных текстов, или в указанном выше репозитории на github.

  Во-вторых, автору этого текста. Его можно найти в джаббер-конференции омских линуксоидов (omsklug@conference.jabber.ru) под ником Shroom.

  Ну и, наконец, всем участникам вашего местного (или ближайшего к вам) LUG’а и вообще любым первым встречным линуксоидам.

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

Эту статью можно скачать в формате PDFотсюда совершенно свободно.

]]>
http://omsklug.com/2012/12/whdd-assemble-and-install/feed/ 1
Управляем сервером посредством SMS http://omsklug.com/2012/11/server-management-with-sms/ http://omsklug.com/2012/11/server-management-with-sms/#comments Sat, 17 Nov 2012 09:19:11 +0000 Plus http://omsklug.com/?p=1328 Основной источник: http://habrahabr.ru/post/114912/

Началось всё с того, что я наткнулся на эту статью в Интернете, сразу нашел завалявшиеся в закромах USB модемы.

Сначала следовал по инструкции и установил ряд пакетов:

apt-get install usb_modeswitch minicom smstools

После чего поправил конфиг /etc/usb-modeswitch.conf:

DefaultVendor = 0x12d1
DefaultProduct = 0x1446
MessageEndPoint = "0x01"
MessageContent = "55534243000000000000000000000011060000000000000000000000000000"

Это все делалось только для перевода модема в режим только модем.

После переподключил модем, следуя инструкции, дальше, все так же по инструкции, проверил:

ls /dev | grep ttyUSB:
ttyUSB0
ttyUSB1
ttyUSB2

Далее нужно настроить minicom, можно запустить так, как написано в инструкции с параметром -s, либо запустить minicom и открыть настройки комбинацией клавиш Ctrl+A+O. Заходим в настройки последовательного порта и меняем на свой (у меня это оказался ttyUSB1).

Следующим шагом нужно настроить smsd.

Дефолтных настроек в файле конфигурации куча, для адекватной работы достаточно оставить те, что описаны в инструкции (источнике). В качестве примера привожу свои в файле /etc/sms.conf:

devices = GSM1
logfile = /var/log/smsd.log
loglevel = 2
[GSM1]
device = /dev/ttyUSB0
baudrate = 115200
rtscts = no
init = at+cpms="sm","sm",""                       # редактированное init = at+cpms="mt","mt",""
incoming = yes
incoming = high
ВНИМАНИЕ!!!
Позднее попытавшись повторить на другом железе, возникла проблема, в том что в каталоге /var/spool/sms/incoming 
не создавались файлы с смской причиной тому стало то, что демон smsd не смотрел смски в памяти модема, а только на сим
карте, о чем было указано в /etc/smsd.conf в параметре init = at+cpms="sm","sm","" и проигнорировано мной. В последствии, не без помощи добрых людей, ткнувших мне в глаз и указав на путь истинный, решение нашлось.
Для того чтобы просматривать нужно поменять на наиболее подходящий параметр init, учитывая что:
"sm" — sim-card, "me" — memory, mt - проверять и на сим карте и в памяти. Другие дополнительные интересные параметры можно найти тут: http://www.developershome.com/sms/cpmsCommand.asp

Дальше по инструкции написано:

…настройки примерно понятные, запускаем демона, service smsd start и проверяем сие чудо: smssend 9128141111 ‘test message’…

Вот тут-то первая палка в колёса и прилетела. Дело в том что в последних версиях Ubuntu этого пакета просто нет. Начал искать в Интернетах нужный пакет и пытаться адаптировать. Время шло, дело не продвигалось, совсем опечалившись, но, еще питая надежду ;) , пошел читать маны (с английским у меня туго), и, о чудо, наткнулся на оффициальную инструкцию пакета… и тут эврика!

Повторюсь: дело в том, что в новых версих Ubuntu… Однако там есть замечательный пакет gsm-utils! в котором smssend заменен на gsmsendsms! Тут инструкция на русском.

Дальше ,опять вернувшись к инструкции, нужно научить сервер слушать и понимать, чего ему говорят:

Если отправить смс-ку на номер симки в модеме, через некоторое время smsd создаст файл в /var/spool/sms/incoming/huaweiE1550.* примерно следующего содержания:

From: 7913XXXXXXX
From_TOA: 91 international, ISDN/telephone
From_SMSC: 79126313431
Sent: 12-10-02 10:15:15
Received: 12-10-02 10:18:11
Subject: huaweiE1550
IMSI: 2500XXXXXXXXXXX
Report: no
Alphabet: ISO
UDH: false

Test message

Вот эти файлы и нужно проверять на наличие команд. Я приведу один способ, из двух описанных, который заработал у меня и ниже опишу какая ошибка возникла при втором способе.

Итак заработавший способ: это скрипт на bash, который пришлось мне немного изменить:

#!/bin/sh
# SMSCtrl Ubuntu 12.10
# Description: Sms control, Plus editor, 2012, http://www.omsklug.com
 
. /lib/lsb/init-functions
 
DAEMON=smsctrl
REFRESH_TIME=15
 
COMMAND_CHAR="#"
INCOMING_DIR=/var/spool/sms/incoming
ALLOW_PHONES="7********** "
SEND_BACK_REPORT=YES
 
to_log(){
        text=$1
        export LANG=en_EN
        log_date=`date "+%b %d %H:%M:%S "`
        log_host=`hostname -s`
        echo "$log_date $log_host $DAEMON: $text" >> /var/log/$DAEMON.log
}
 
start() {
        echo -n "Starting $DAEMON: "
        $0 --daemon &&   log_success_msg "$name is running" || log_failure_msg "$name is not running"
 
        RETVAL=$?
        echo
 
        [ $RETVAL = 0 ] && touch /var/lock/subsys/$DAEMON # тут нужно либо создать директорию, либо сменить директорию
        to_log "Starting ..."
        return $RETVAL
}
 
stop() {
        # Stop daemon.
        echo -n "Shutting down $DAEMON: "
        killproc $0
        RETVAL=$?
        to_log "Stopping ..."
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$DAEMON
}
 
run() {
    for File in $(ls $INCOMING_DIR); do
        Allow=0
        for Phone in $ALLOW_PHONES; do
            cat $INCOMING_DIR/$File | grep "From: $Phone" > /dev/null 2>&1
            [ $? -eq 0 ] && Allow=1
        done;
        [ $Allow -eq 0 ] && continue
 
        cat $INCOMING_DIR/$File | grep "$COMMAND_CHAR"
        [ $? -ne 0 ] && continue
 
        FromPhone=`cat $INCOMING_DIR/$File | grep "From:" | cut -d " " -f2`
 
        command=`cat $INCOMING_DIR/$File | grep "$COMMAND_CHAR" | cut -d "$COMMAND_CHAR" -f2`
        to_log "Incoming command: $command from $FromPhone"
        out=`$command`
 
        if [ "$SEND_BACK_REPORT" = "YES" ]; then
 
# Здесь нужно обратить внимание, что прямо тут указано с каким устройством
# работать, по умолчанию там
#
#      /dev/mobilephone,
#
#   либо нужно побороть gsmsendsms, на использование нужно девайса...
 
   gsmsendsms -d /dev/ttyUSB0 $FromPhone "$out"
            to_log "Send sms to $FromPhone: $out"
        fi
# если тут добавить cp -f $INCOMING_DIR/$File /var/spool/sms/remove/
# тогда перед удалением файлы с смс будут складываться в /var/spool/sms/remove/
 
 rm -f $INCOMING_DIR/$File
 to_log "Deleting file $INCOMING_DIR/$File"
    done
}
 
daemon() {
        exec >/dev/null
        exec 2>/dev/null
        (
        trap "" TERM
        while [ true ]; do
            run
            sleep $REFRESH_TIME;
        done;
        )&
}
 
case "$1" in
    --daemon)
          daemon
          ;;
    run)
          run
          ;;
    start)
          start
          ;;
    stop)
          stop
          ;;
    restart)
          $0 stop
          $0 start
          exit $?
          ;;
    status)
          status $DAEMON
          echo
          ;;
    *)
          echo "Usage: $DAEMON {start|stop|restart|status|run}"
          exit 1
  esac
 
  exit 0

COMMAND_CHAR=”#” – Признак команды

INCOMING_DIR=/var/spool/sms/incoming –Директория для входящих смс-ок

ALLOW_PHONES=”79*********” – Номера с которых разрешены команды

SEND_BACK_REPORT=YES – Отправлять вывод SMS обратно.

Далее подготавливаю простенький скрипт, наиболее наглядный:

#!/bin/bash
reboot

Далее ложу его в директорию /var/smsscript/ (директория может быть любой другой, в офф статье это /root/bin/)

Теперь проверяем систему.

Отправляем заветную SMSку:

#/var/smsscript/reboot.sh sms

И комп успешно уходит в ребут, при этом на телефон прилетает ответное SMS.

Дальше только собственное воображение может ограничить использование данного сервиса.

Profit!

]]>
http://omsklug.com/2012/11/server-management-with-sms/feed/ 0
Установка флагов раскладки клавиатуры в Ubuntu 12.04 http://omsklug.com/2012/11/flags-for-keyboard-indicator-ubuntu-12-04/ http://omsklug.com/2012/11/flags-for-keyboard-indicator-ubuntu-12-04/#comments Sun, 11 Nov 2012 19:23:31 +0000 Plus http://omsklug.com/?p=1251 В Ubuntu 12.04 метод установки национальных флагов индикатора раскладки клавиатуры несколько отличается от предыдущих версий. Итак:

1. Создаем папки:

mkdir ~/.icons
mkdir ~/.icons/flags

2. Копируем туда файлы с картинками для отображения в индикаторе: ru.png  и us.png. Не обязательно *.png, можно даже *.svg, а может кто-то попробует и анимированный *.gif?. Смотрим какой режим включен командой:

gsettings get org.gnome.libgnomekbd.indicator show-flags

3. если false, выполняем:

 

gsettings set org.gnome.libgnomekbd.indicator show-flags true

4. PROFIT!

]]>
http://omsklug.com/2012/11/flags-for-keyboard-indicator-ubuntu-12-04/feed/ 0
Проброс USB устройств в гостевую ОС KVM. http://omsklug.com/2012/11/kvm-usb-forwarding/ http://omsklug.com/2012/11/kvm-usb-forwarding/#comments Sun, 11 Nov 2012 19:05:02 +0000 Plus http://omsklug.com/?p=1223 Пришло время запускать сервера в работу! Первой задачей стало возможности использования компьютерных программ фирмы 1С сразу двух версий: 7.7 и 8.2. Причем конфигурации защищаются аппаратными ключами Katran. именно это стало первой причиной использования проброса USB в гостевую операционную систему, обитающую в KVM (Kernel-based Virtual Machine).

Перерыв весь Интернет, нашел много информации и методов для решения этой задачи.

В секции group_device_acl файла /etc/libvirt/qemu.conf раскоментировать строки и добавить

usb (dev/bus/usb/008/001)

cgroup_device_acl = [
"/dev/null", "/dev/full", "/dev/zero",
"/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
"/dev/rtc", "/dev/hpet", "/dev/net/tun",
"/dev/bus/usb/008/001",

Однако, ни указанные выше методы, ни иные ухищрения - не дали желаемых результатов...
Спустя день гугления решение нашлось на немецком форуме, благо школьных знаний по этому языку хватило, чтобы уловить основную суть, да и Google сделал свое дело;).
Итак: проблема в том, что по умолчанию, пробросу USB-устройств мешают аж две системы защиты прав. Безопасный Linux такой безопасный.
Первая - UDEV, выставляет права так, что к USB может обращаться только рут.
Решается так:

$ sudo addgroup vm
$ sudo addgroup $USER vm

И созданием файла /etc/udev/rules.d/41-vm-usb.rules с содержимым:

# Virtual Machine hypervisor access to USB devices
# link
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="vm"
SUBSYSTEM=="usb_device", GROUP="vm"

Вторая, AppArmor. Решается намного проще:
В файле /etc/apparmor.d/abstractions/libvirt-qemu найдём и раскомментируем
строчки, которые там даже уже и есть:

# WARNING: uncommenting these gives the guest direct access to host
hardware.
  # This is required for USB pass through but is a security risk. You have
been
  # warned.
  /sys/bus/usb/devices/ r,
  /sys/devices/*/*/usb[0-9]*/** r,
  /dev/bus/usb/*/[0-9]* rw,

А так, с аппаратной виртуализцией (экспериментирую на Intel Core2Duo P8800) в Linux - всё просто великолепно.

P.S: При перезагрузке виртуальной машины отвалились USB HASP ключи, решил перезапуском AppArmor прямо при работающей виртуальной машине. Для того чтобы не делать этого руками постоянно, написал скрипт и засунул в автозагрузку с задержкой запуска, дабы старт виртуалок был несколько раньше. Может кто-то знает иной способ - напишите в комментариях, буду рад узнать что-то новое.

]]>
http://omsklug.com/2012/11/kvm-usb-forwarding/feed/ 0
Омские линуксоиды участвуют в Яндекс.Олимпиаде для Linux администраторов 2012 http://omsklug.com/2012/10/root-yandex-ru-2012/ http://omsklug.com/2012/10/root-yandex-ru-2012/#comments Wed, 31 Oct 2012 15:31:31 +0000 linuxmasterz http://omsklug.com/?p=1308 root.yandex.ru 2012

Омские линуксоиды в составе 5 человек среди более чем сотни команд участвуют в Яндекс.Олимпиаде для Linux администраторов 2012. Страница команды:

http://root.yandex.ru/teams/team-d7829733-2df0-4c08-a342-7e8f0d1b064f/

Наш номер – 56. Название команды – “Омские линуксоиды” (что логично же).

Если ваш местный LUG еще не зарегистрировался – торопитесь, вскоре возможность создать команду исчезнет.

]]>
http://omsklug.com/2012/10/root-yandex-ru-2012/feed/ 1