Raspberry PiにServiioメディアサーバーをインストールする方法
目的
Raspberry PiにServiioメディアサービスをインストールする必要条件
- Raspbian "Stretch"が動作するようにインストールされたRaspberry Pi
- ルート権限
困難
かんたん規約
- # -与えられたLinuxコマンドは、rootユーザーとして直接、または
sudo
コマンドを使用して、root権限で実行する必要があります - $ -特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります
前書き
Serviioは、javaで記述されたメディアサーバーです。それは2つのバージョンで利用可能です:無料のもの(ビールのように残念ながら無料)とリモートアクセスのようないくつかの追加機能が付属している「プロ」バージョン。このチュートリアルでは、Raspbian "Stretch"の最小バージョンを実行しているRaspberry PiへのServiioのインストールについて説明します。依存関係のインストール
ServiioはJavaで記述されているため、使用するにはJava開発キットをインストールする必要があります。Raspbian Stretchリポジトリには、GPLv2
ライセンスに基づいてリリースされたオープンソースバージョンのと呼ばれるJDKのバージョンと、OpenJDK
オラクルの商用の専用バージョン(パッケージは実際にはoracle-java8-jdkと呼ばれています)の2つのバージョンがあります。どちらも正しく機能するはずですが、このチュートリアルでは前者を使用します。# apt-get update && apt-get install --no-install-recommends openjdk-8-jdk ffmpeg x264
Serviioを取得してインストールする
必要なパッケージをすべてインストールしたので、Serviio tarballを取得する必要がありwget
ます。ヘッドレスマシンで作業しているため、タスクを実行するために使用します。したがって、以下を実行します。wget http://download.serviio.org/releases/serviio-1.9-linux.tar.gzダウンロードが完了したら、実際のServiioのインストールに進むことができます。
/opt
ディレクトリ内のtarballのコンテンツを抽出します。明らかに別のものを選択できますが、/ optは通常、自己完結型のサードパーティアプリケーションをホストするために使用されます。先に進みましょう:# tar -xvzf serviio-1.9-linux.tar.gz -C /opt
-C
(略してオプションが--directory
)操作を実行する前に、与えられたものに変更ディレクトリへのタールを指示します。Serviio用のsystemdサービスを作成する
Serviioがインストールされたので、/opt/serviio-1.9/bin
ディレクトリ内に2つのスクリプトが存在することを確認できます
:serviio.sh
およびserviio-console.sh。 1つ目はサーバーを起動し、2つ目はサーバーを制御するインターフェースです。この時点で、システムの起動時にserviioを起動するためのsystemdサービスを作成するために必要なものがすべて揃っています。このタスクを実行するには、小さなサービスファイルを作成する必要があります。ご存じのとおり、systemdは新しいLinux initシステムであり、現在、すべての主要なディストリビューションで採用されています。これはオープンソースコミュニティで多くの議論の元となっていますが、間違いなく標準になっています。サービスを作成するには、お気に入りのエディターを起動して、以下のテキストを含むserviio.serviceというファイルを作成します。
[Unit]
Description=Serviio media Server
After=syslog.target network.target
[Service]
User=serviio
ExecStart=/opt/serviio-1.9/bin/serviio.sh
ExecStop=/opt/serviio-1.9/bin/serviio.sh -stop
[Install]
WantedBy=multi-user.target
systemdサービスファイルの構文を記述することは、このチュートリアルの目的ではありませんが、User=serviio
命令を含む行に注意してください。これで取得したいのはserviio
、セキュリティ上の理由から、rootとしてではなくユーザー特権でデーモンを実行する必要があることを指定することです。serviio
ユーザーは、その者は、それを作成してみましょうし、それに/opt/serviio-1.9ディレクトリとその中のすべてのファイルの所有権を与える、まだ存在していません。# useradd -r -U -s /sbin/nologin serviio && chown -R serviio:serviio /opt/serviio-1.9あなたはおそらく
useradd
コマンドに精通しているでしょうが、明確にするために、提供されたオプションが何のためにあるかを指定しましょう。
-r
オプションでは、私たちが作成することを指定しますsystem account
。システムアカウントにはエージング情報がなくuid
、値が1000未満です。このようなアカウントの場合、ホームディレクトリは作成されません。この-U
オプションは、ユーザーと同じ名前のグループも作成し、ユーザーをそのグループに自動的に追加するようにプログラムに指示します。最後に
-s
、ユーザーのシェルを指定しました。この場合、私たちは/sbin/nologin
どちらを使用しましたfake shell
。セキュリティ上の理由から使用しました。この方法では、ユーザー、サービスが実行されているため、実際のシェルを使用してコマンドを実行することはできません。これで、servviioユーザーが作成され、サービスファイルが作成されました。次に、それを
/usr/systemd/system
ディレクトリにコピーする必要があります。# cp serviio.service /etc/systemd/systemサービスを有効にするには、次を実行します。
# systemctl enable serviio.serviceここで、システムを再起動します。問題がなければ、ブートプロセスが完了したときにserviioサービスがすでにアクティブになっています。次のコマンドを実行して、ステータスを確認できます。
$ systemctl status serviio.serviceSystemdは、デーモンのステータスについて通知します。次に例を示します。
● serviio.service - Serviio media Server Loaded: loaded (/etc/systemd/system/serviio.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2017-09-28 21:29:18 CEST; 31s ago Main PID: 420 (java) CGroup: /system.slice/serviio.service └─420 java -Xmx512M -Xms20M -XX:+UseG1GC -XX:GCTimeRatio=1 -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -Djava.net.preferIPv4Stack=true [...]ご覧のように、サービスはアクティブで実行中なので、すべて期待どおりに進みました。問題が発生してサービスの起動に問題が発生した場合は、同じコマンドで提供されたログを使用して問題を解決できます。
あなたがあなたのマシン上でファイアウォールを実行している場合も、ポートを開く必要があり
8895/tcp
、
1900/udp
、23423/tcp
と23424/tcp
。最後の2つのポートは、コンソールの制御とメディアブラウザへのアクセスにそれぞれ必要ですControl Serviio
serviioを制御するには、いくつかのオプションがあります。ヘッドレスマシンで実行しているため、グラフィカルコンソールにはアクセスできませんhttp://yourmachineip:23423/console/
が、同じLAN内の別のマシンからナビゲートするか、Androidアプリ「ServiiDroid」などのサードパーティアプリケーションを使用して、Webインターフェイスにアクセスできます。可能なオプションの完全なリストは、次の場所にあります
http://serviio.org/apps"
。Serviioの「プロ」バージョンを実行している場合は、からアクセスできる統合されたメディアブラウザーを使用してカタログを探索することもできますhttp://yourmachineip:23424/mediabrowser/
。