IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [143]
    Безопасность IT [404]
    Блоки питания, Power Banks, зарядки... [508]
    Видеорегистраторы [186]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [627]
    Измерительная техника, инструменты [437]
    Накопители данных [232]
    Нетбуки, Ноутбуки, Ультрабуки [689]
    Мультиварки, блендеры и не только... [162]
    Планшеты [764]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [360]
    Сети, сетевые технологии, оборудование... [273]
    Смартфоны [4959]
    Фотокамеры, объективы, искусство фотографии.. [541]
    Умный дом [50]
    Электронные книги [101]
    CB, LPD, PMR- связь... [170]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [3981]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1120]
    Smart TV, UltraHD, приставки, проекторы... [415]
    Smart Watch [268]
    Sound: наушники, плееры, усилители... [618]
    Windows 10... [301]
    Windows 11 [37]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1347
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 67
    Гостей: 67
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2014 » Апрель » 4 » ZNC боунсер на RPi
    06:29
    ZNC боунсер на RPi

    ZNC боунсер на RPi



    Так получилось, что в последнее время одним из каналов общения для меня стали IRC чаты. Практически сразу стало понятно, что «голый» IRC лишен некоторых удобств, к которым я так привык в скайпе, например:

    • История сообщений, доступная непосредственно из окна чата
    • Возможность подключаться из нескольких точек



    Для решения этих проблем через некоторое время у нас в компании появилась виртуалка с IRC боунсером, и все стало гораздо лучше и удобнее. Понятно, что для компании держать виртуалку под такие цели совершенно не проблема, но как быть, если захочется завести такого зверька для личных нужд (а мне в какой-то момент захотелось)? Отбросив варианты с хостингом (не стоит это лишних денег), отдельным компом (ибо нет), и виртуалкой на существующем (100 Вт потребляемые круглосуточно тоже денег стоят) я остановился на RaspberryPi, которая на тот момент выполняла роль как-бы NAS, но по факту большую часть времени бездействовала.

    Краткое описание того, на чем все собрано и о чем будет упомяунуто в статье:

    • Платформа — RaspberryPi Model B (512 Mb / Ethernet).
    • ОС — Raspbian.
    • Особенности установки ОС — корневой раздел полностью перенесен на USB 2.0 жесткий диск, на SD карте оставлен только загрузочный раздел. Об этом, к сожалению, ни слова, но могу написать, если будет интересно.
    • Боунсер — ZNC, версия 1.2.
    • Особенности установки боунсера — сборка из тарбола, установка в chroot, сборка модуля modpython (modperl, modtcl по желанию).



    В качестве боунсера я выбрал ZNC по следующим причинам:

    • Достаточно распространенный боунсер.
    • Возможность расширения функциональности за счет модулей.
    • Достаточно много этих самых модулей.
    • Возможность писать свои модули на python (а также perl и tcl, хотя это мне было не нужно).
    • После чтения вики проекта еще одним пунктом добавилась возможность простого переноса боунсера в chroot.



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

    Первым неприятным сюрпризом стало наличие весьма древней сборки ZNC в репозиториях — кажется это была 0.206. Впрочем, это лишь укрепило мое намерение собрать ZNC из тарболла, тем более что процес хорошо описан на вики проекта.

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

    Сначала надо установить необходимые пакеты для сборки:

    pi@raspberrypi ~ $ sudo apt-get install build-essential pkg-config libssl-dev
    



    Если нужно собрать модуль поддержки python, perl или tcl, потребуется установить соответствующие пакеты из списка:

    • modpython — пакет python-dev.
    • modperl — пакет libperl-dev.
    • modtcl — пакет tcl-dev.



    Мне нужен только модуль для питона:

    pi@raspberrypi ~ $ sudo apt-get install python-dev
    



    Скачиваем и распаковываем тарболл:

    pi@raspberrypi ~ $ wget http://znc.in/releases/znc-1.2.tar.gz
    pi@raspberrypi ~ $ tar xzvf znc-1.2.tar.gz
    



    Создаем пользователя для запуска боунсера:

    pi@raspberrypi ~ $ sudo adduser bouncer
    pi@raspberrypi ~ $ sudo passwd bouncer
    



    Создаем структуру каталогов для chroot (я буду ставить все в /opt/znc):

    pi@raspberrypi ~ $ sudo mkdir /opt/znc
    
    pi@raspberrypi ~ $ cd /opt/znc/
    pi@raspberrypi /opt/znc $ sudo mkdir -p etc dev usr/lib usr/local/{share,bin,lib} lib home/bouncer
    pi@raspberrypi /opt/znc $ sudo mkdir -p lib/arm-linux-gnueabihf usr/lib/arm-linux-gnueabihf
    
    pi@raspberrypi /opt/znc $ sudo chown bouncer:bouncer home/bouncer/
    
    pi@raspberrypi /opt/znc $ cd dev/
    pi@raspberrypi /opt/znc/dev $ sudo mknod -m 644 random c 1 8
    pi@raspberrypi /opt/znc/dev $ sudo mknod -m 644 urandom c 1 9
    pi@raspberrypi /opt/znc/dev $ sudo mknod -m 666 null c 1 3
    
    pi@raspberrypi /opt/znc $ sudo cp /etc/hosts etc/
    pi@raspberrypi /opt/znc $ sudo cp /etc/resolv.conf etc/
    pi@raspberrypi /opt/znc $ sudo cp /lib/arm-linux-gnueabihf/libnss_dns.so.2 lib/arm-linux-gnueabihf/
    pi@raspberrypi /opt/znc $ sudo cp /lib/arm-linux-gnueabihf/libresolv.so.2 lib/arm-linux-gnueabihf/
    
    pi@raspberrypi /opt/znc/dev $ cd
    



    Конфигурируем исходники для сборки. Для сборки модулей для perl или tcl нужно добавить --enable-perl и/или --enable-tcl соответственно:

    pi@raspberrypi ~ $ cd znc-1.2/
    pi@raspberrypi ~/znc-1.2 $ ./configure --enable-python
    



    Запускаем сборку (процесс занимает примерно 1.5-2 часа):

    pi@raspberrypi ~/znc-1.2 $ make
    



    Устанавливаем в chroot каталог. При таком способе установки (DESTDIR=/opt/znc) все файлы сразу оказываются в указанном подкаталоге, и не затрагивают основную систему. Кроме того, мы избавляемся от необходимости копировать файлы в chroot, как предлагается в официальном документе:

    pi@raspberrypi ~/znc-1.2 $ sudo DESTDIR=/opt/znc make install
    



    Теперь нужно посмотреть, какие библиотеки необходимы для работы приложения…

    pi@raspberrypi ~/znc-1.2 $ ldd /opt/znc/usr/local/bin/znc
    



    … и скопировать их:

    pi@raspberrypi ~/znc-1.2 $ cd /opt/znc/
    pi@raspberrypi /opt/znc $ sudo cp /usr/lib/arm-linux-gnueabihf/libcofi_rpi.so ./usr/lib/arm-linux-gnueabihf/libcofi_rpi.so
    pi@raspberrypi /opt/znc $ sudo cp /lib/arm-linux-gnueabihf/libdl.so.2 ./lib/arm-linux-gnueabihf/libdl.so.2
    pi@raspberrypi /opt/znc $ sudo cp /lib/arm-linux-gnueabihf/libz.so.1 ./lib/arm-linux-gnueabihf/libz.so.1
    pi@raspberrypi /opt/znc $ sudo cp /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 ./usr/lib/arm-linux-gnueabihf/libstdc++.so.6
    pi@raspberrypi /opt/znc $ sudo cp /lib/arm-linux-gnueabihf/libm.so.6 ./lib/arm-linux-gnueabihf/libm.so.6
    pi@raspberrypi /opt/znc $ sudo cp /lib/arm-linux-gnueabihf/libgcc_s.so.1 ./lib/arm-linux-gnueabihf/libgcc_s.so.1
    pi@raspberrypi /opt/znc $ sudo cp /lib/arm-linux-gnueabihf/libpthread.so.0 ./lib/arm-linux-gnueabihf/libpthread.so.0
    pi@raspberrypi /opt/znc $ sudo cp /lib/arm-linux-gnueabihf/libc.so.6 ./lib/arm-linux-gnueabihf/libc.so.6
    pi@raspberrypi /opt/znc $ sudo cp /lib/ld-linux-armhf.so.3 ./lib/ld-linux-armhf.so.3
    



    Осталось только создать несколько симлинков на каталоги znc, чтобы боунсер можно было запускать не только из chroot, но и «как обычно». Это потребуется нам при первом запуске (чтобы создать конфигурационный файл), а также в будущем, если нужно будет запускать компиляцию модулей для ZNC.

    Создаем симлинки:

    pi@raspberrypi ~ $ sudo ln -sv /opt/znc/usr/local/lib/znc /usr/local/lib/
    pi@raspberrypi ~ $ sudo ln -sv /opt/znc/usr/local/share/znc /usr/local/share/
    pi@raspberrypi ~ $ sudo ln -sv /opt/znc/usr/local/include/znc /usr/local/include/
    



    Прежде чем запускать боунсер, необходимо создать для него начальный конфиг и скопировать полученный конфиг в chroot каталог. Для этого становимся пользователем bouncer, переходим в домашний каталог и запускаем znc c ключом --makeconf:

    pi@raspberrypi ~ $ su bouncer
    bouncer@raspberrypi /home/pi $ cd
    bouncer@raspberrypi ~ $ /opt/znc/usr/local/bin/znc --makeconf
    



    Сам процесс настройки достаточно прост благодаря весьма информативным подсказкам. По завершении настройки мы должны получить запущенный работоспособный боунсер. Продолжить настройку можно открыв веб-интерфейс боунсера (если был активирован модуль webadmin), или через IRC клиента.

    Последнее, что осталось сделать — это переместить полученный конфиг в chroot и запустить боунсер уже оттуда. Кстати, не стоит редактировать конфиг файл боусера руками. Для этого рекомендуется использовать webadmin.

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

    bouncer@raspberrypi ~ $ pkill -SIGUSR1 znc
    bouncer@raspberrypi ~ $ pkill znc
    



    Копируем каталог с настройками в chroot:

    bouncer@raspberrypi ~ $ cp -r .znc /opt/znc/home/bouncer
    



    И запускаем уже из chroot каталога командой:

    pi@raspberrypi ~ $ sudo start-stop-daemon --chroot /opt/znc/ --chuid bouncer:bouncer --start --exec /usr/local/bin/znc
    



    Остановить боунсер можно командой:

    pi@raspberrypi ~ $ sudo start-stop-daemon --chroot /opt/znc/ --chuid bouncer:bouncer --stop --exec /usr/local/bin/znc
    



    Ну вот вроде бы и все. Для автоматического запуска боунера при старте системы можно добавить команду запуска в /etc/rc.local.

    Как обычно, вопросы и комментарии приветствуются.

    Ссылка на сайт проекта: ZNC

    http://habrahabr.ru/post/217973/

    Категория: mini computers и не только... | Просмотров: 511 | Добавил: laptop | Рейтинг: 4.0/1
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024