もっと詳しく

前回、Baidu Pan対応の高速ダウンローダとしての使い道を見出した Aria2 を、そのフロントエンドである AriaNg と共に、 Synology NAS DS213J へインストール。既に稼働中のDownload Stationと共に、ダウンローダ NAS の機能拡張してみました。

opkg bootstrapの導入

Synology NASAria2をインストールするには、パッケージマネージャをインストールする必要があります。以前はipkgが主流でしたが、これから入れるのであれば、ipkgからフォークしたopkgが良いようです。導入に当たっては、ターミナル上で機器のCPUに合わせたインストールスクリプトを入手、実行する方法もありますが、コミュニティベースのインストール用アプリ、Easy Bootstrap Installerがあるので、有り難くこれを使うことにします。

ブラウザでNASの管理画面DSMを開いたら、パッケージセンタにコミュニティベースのパッケージソースを、以下の要領で追加します。

  • 名前 : Community Package Hub (任意で可)
  • 場所 : https://www.cphub.net
図01.パッケージソースの追加

図01.パッケージソースの追加

設定を保存したら一度パッケージセンタを閉じ、再び開き直して追加したソースから、利用可能なパッケージの情報を取得させます。左側の参照元を「コミュニティ」にしたら、Easy Bootstrap Installerを選択し、インストールボタンを押します。

図02.コミュニティパッケージ一覧

図02.コミュニティパッケージ一覧

図03.Easy Bootstrap Installerパッケージ

図03.Easy Bootstrap Installerパッケージ

ぱっけーじのダウンロードが終わるとインストールウィザードが立ち上がり、約款に合意の後、先ずipkgかopkgどちらのBootstrapを導入するか聞かれるので、opkgを選択。

図04.Bootstraps Selection

図04.Bootstraps Selection

続くMisc Optionsでは、シンボリックリンクやパスをどう設定するか聞かれますが、デフォルトのまま次へ。

図05.Misc Options

図05.Misc Options

インストール前の最終確認とありますが、確認出来るのはパッケージ名とバージョン番号ぐらいです。

図06.インストール設定の確認

図06.インストール設定の確認

インストール後も特にGUIは用意されていません。不要になったらパッケージセンタでアンインストールすることができます。

図07.インストール後のパッケージ

図07.インストール後のパッケージ

特に何も促されませんが、opkgが使えるようになるのは機器の次回起動後なので、ここで再起動させます。

 

opkgでAria2をインストール

sshでNASに入り、opkgが使えることを確認します。デフォルトではrootのみ使用可能。

$ opkg
-sh: opkg: command not found

$ sudo opkg
Password: ******
sudo: opkg: command not found

$ sudo -i
# opkg update
Downloading http://bin.entware.net/armv7sf-k3.2/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/entware

早速Aria2をインストールします。

# opkg find aria2
aria2 - 1.35.0-4 - aria2 is a lightweight multi-protocol & multi-source command-line download utility

# opkg install aria2
Installing aria2 (1.35.0-4) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/aria2_1.35.0-4_armv7-3.2.ipk
Installing zlib (1.2.11-3) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/zlib_1.2.11-3_armv7-3.2.ipk
Installing libopenssl (1.1.1k-1) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libopenssl_1.1.1k-1_armv7-3.2.ipk
Installing libiconv-full (1.16-1) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libiconv-full_1.16-1_armv7-3.2.ipk
Installing libxml2 (2.9.12-1) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libxml2_2.9.12-1_armv7-3.2.ipk
Installing libmbedtls (2.16.11-1) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libmbedtls_2.16.11-1_armv7-3.2.ipk
Installing libssh2 (1.9.0-2) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libssh2_1.9.0-2_armv7-3.2.ipk
Configuring libmbedtls.
Configuring zlib.
Configuring libssh2.
Configuring libiconv-full.
Configuring libxml2.
Configuring libopenssl.
Configuring aria2.

少し前後してしまいますが、ここでopkgで既に入っているパッケージとその実体を確認します。

# opkg list-installed
aria2 - 1.35.0-4
entware-opt - 227000-3
entware-release - 1.0-2
entware-upgrade - 1.0-1
findutils - 4.8.0-1
grep - 3.6-1a
libc - 2.27-11
libgcc - 8.4.0-11
libiconv-full - 1.16-1
libmbedtls - 2.16.11-1
libopenssl - 1.1.1k-1
libpcre - 8.45-1
libpthread - 2.27-11
librt - 2.27-11
libssh2 - 1.9.0-2
libssp - 8.4.0-11
libstdcpp - 8.4.0-11
libxml2 - 2.9.12-1
locales - 2.27-9
opkg - 2021-06-13-1bf042dd-1
terminfo - 6.2-2a
zlib - 1.2.11-3
zoneinfo-asia - 2021a-1
zoneinfo-europe - 2021a-1

バイナリは

/opt/bin/

 に配置されています。

# ls -l /opt/bin
-rwxr-xr-x 1 root root 1785016 Aug 19 17:10 aria2c
lrwxrwxrwx 1 root root       8 Sep  3 22:50 ash -> /bin/ash
-rwxr-xr-x 1 root root      28 Aug 19 17:10 egrep
-rwxr-xr-x 1 root root      28 Aug 19 17:10 fgrep
-rwxr-xr-x 1 root root  248744 Aug 19 17:10 find
-rwxr-xr-x 1 root root  190512 Aug 19 17:10 grep
-rwxr-xr-x 1 root root  244220 Jul 17 04:55 localedef.new
-rwxr-xr-x 1 root root   31908 Jul 17 04:55 locale.new
lrwxrwxrwx 1 root root      12 Sep  3 22:50 netstat -> /bin/netstat
-rwxr-xr-x 1 root root  752564 Jul  9 04:13 opkg
lrwxrwxrwx 1 root root       7 Sep  3 22:50 sh -> /bin/sh
-rwxr-xr-x 1 root root   59184 Aug 19 17:10 xargs

aria2cコマンドを実行してみて、正しくインストールされたことを確認してみます。パスが通っていないのでroot限定ですが、今回はデーモンモードでの運用を前提としているので、このままで進めます。

# aria2c
Specify at least one URL.
Usage: aria2c [OPTIONS] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]...
See 'aria2c -h'.

$ aria2c
-sh: aria2c: command not found

 

Aria2をデーモンモードで自動起動

Aria2をデーモンモードで立ち上げるには、次の要領で実行します。

# aria2c --conf-path=/opt/etc/aria2.conf

このとき、次の2つのファイルが存在していないと正常に動作せず、エラーにも挙がらないので注意が必要です。

  •      設定)/opt/etc/aria2.conf
  • セッション)/opt/var/aria2/session.dat

このうち設定ファイルは、インストール時にデフォルトで用意されていたものの、セッションファイルは無かったので、空のファイルを予め以下のように生成しておきました。

# touch /opt/var/aria2/session.dat

デーモンモードで正常に起動しても特に戻り値などはないので、

ps

 コマンドでプロセスの存在を確認してみました。

# aria2c --conf-path=/opt/etc/aria2.conf
# ps axf | grep [a]ria2
32212 ?        Ss     0:08 /opt/bin/aria2c --conf-path=/opt/etc/aria2.conf

ps

grep

でプロセスを見つける際に、

grep

 自身のプロセスを除外する技については、こちらの記事を参考にさせて頂きました(鳴謝!)。

 

次に、NASの起動時にこのコマンドが実行されるよう、タスクスケジューラに登録します。ブートアップやシャットダウンと言ったイベントをトリガーとするタスクは、「トリガーされたタスク」で作成します。

図08.トリガーされたタスクメニュー

図08.トリガーされたタスクメニュー

タスクはrootユーザでブートアップ時の実行とし、「タスク設定」タブにある「ユーザ指定のスクリプト」欄に先ほどのコマンドを念のためフルパスで登録しました。

図09.ブートアップタスク作成

図09.ブートアップタスク作成

作成したタスクは一覧から右クリックすると出てくるメニューで、手動実行して確かめることも出来ます。

図10.タスクを手動実行

図10.タスクを手動実行

これで、Aria2がサービスとして自動起動するようになったので、次ページではそのフロントエンドを構築します。

投稿 Synology NAS DS213JへAria2をインストールFun Scripting 2.0 に最初に表示されました。