ZNC RPiバウンサー





つい最近、IRCチャットが私にとってコミュニケーションチャネルの1つになりました。 ほとんどすぐに、「裸の」IRCが、Skypeで私が慣れ親しんでいるアメニティのいくつかを奪われていることが明らかになりました。例えば:





これらの問題を解決するために、しばらくして、IRCバウンサーを備えた仮想マシンが当社に登場し、すべてがより良く、より便利になりました。 企業がそのような目的のために仮想マシンを保持することは絶対に問題ではないことは明らかですが、個人的なニーズに合わせてそのような獣を持ちたい場合はどうすればよいでしょうか(また、いつかしたかった場合)? ホスティング(余分なお金の価値はありません)、別のコンピューター(無料)、および既存のコンピューター(24時間消費される100 Wの費用もかかります)でオプションを破棄したため、当時NASの役割を果たしていたRaspberryPiに決めましたが、ほとんどの場合、事実は無効でした。



すべてが収集される対象と記事で言及される内容の簡単な説明:





ZNCをバウンサーとして選択した理由は次のとおりです。





そもそも、ZNCを「通常の」ubuntuに配置して、動作状態でどのように見えるかを確認しました。 すべてがシンプルで明確であることが判明したため、この中間的な成功に触発されて、RPiの構成に進みました。



最初の不快な驚きは、リポジトリに非常に古いZNCビルドが存在することでした-0.206だったようです。 ただし、これは、特にプロセスがプロジェクトwikiで詳しく説明されているため、ZNCをtarballからアセンブルするという私の意図を強化しただけです。



基本的に、既存の非常に適切なインストールガイドと重複しないように、コンソールに入力したコマンドを提供します。 コメントのほとんどは、公式文書との違いがある場所にのみあります。



最初に、アセンブリに必要なパッケージをインストールする必要があります。

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







python、perl、またはtclサポートモジュールをビルドする必要がある場合は、リストから適切なパッケージをインストールする必要があります。





私はPython用のモジュールのみが必要です:

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







tarballをダウンロードして解凍します。

 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
      
      







バウンサーをchrootからだけでなく「通常どおり」起動できるように、zncディレクトリへのシンボリックリンクをいくつか作成するだけです。 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ディレクトリにコピーする必要があります。 これを行うには、 バウンサーユーザーになり、ホームディレクトリに移動し、-- --makeconf



使用して--makeconf



を実行します。

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







設定プロセス自体は、非常に有益なヒントのおかげで非常に簡単です。 セットアップが完了すると、実行中の効率的なバウンサーを取得する必要があります。 設定を続行するには、バウンサーのWebインターフェイスを開くか( webadminモジュールがアクティブ化されている場合)、IRCクライアントを使用します。



最後に行うことは、受け取った構成をchrootに移動し、そこからバウンサーを開始することです。 ちなみに、ブラウザの設定ファイルを手で編集しないでください。 これにはwebadminを使用することをお勧めします。



まず、警備員を停止します。 最初のコマンドは現在の構成を構成ファイルに保存し、2番目のコマンドはバウンサーを停止します。

 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



All Articles