前回、Baidu Pan対応の高速ダウンローダとしての使い道を見出した Aria2 を、そのフロントエンドである AriaNg と共に、 Synology NAS DS213J へインストール。既に稼働中のDownload Stationと共に、ダウンローダ NAS の機能拡張してみました。
opkg bootstrapの導入
Synology NASへAria2をインストールするには、パッケージマネージャをインストールする必要があります。以前はipkgが主流でしたが、これから入れるのであれば、ipkgからフォークしたopkgが良いようです。導入に当たっては、ターミナル上で機器のCPUに合わせたインストールスクリプトを入手、実行する方法もありますが、コミュニティベースのインストール用アプリ、Easy Bootstrap Installerがあるので、有り難くこれを使うことにします。
Showcase details | Community Package Hub – www.cphub.net |
ブラウザでNASの管理画面DSMを開いたら、パッケージセンタにコミュニティベースのパッケージソースを、以下の要領で追加します。
- 名前 : Community Package Hub (任意で可)
- 場所 : https://www.cphub.net
設定を保存したら一度パッケージセンタを閉じ、再び開き直して追加したソースから、利用可能なパッケージの情報を取得させます。左側の参照元を「コミュニティ」にしたら、Easy Bootstrap Installerを選択し、インストールボタンを押します。
ぱっけーじのダウンロードが終わるとインストールウィザードが立ち上がり、約款に合意の後、先ずipkgかopkgどちらのBootstrapを導入するか聞かれるので、opkgを選択。
続くMisc Optionsでは、シンボリックリンクやパスをどう設定するか聞かれますが、デフォルトのまま次へ。
インストール前の最終確認とありますが、確認出来るのはパッケージ名とバージョン番号ぐらいです。
インストール後も特にGUIは用意されていません。不要になったらパッケージセンタでアンインストールすることができます。
特に何も促されませんが、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の起動時にこのコマンドが実行されるよう、タスクスケジューラに登録します。ブートアップやシャットダウンと言ったイベントをトリガーとするタスクは、「トリガーされたタスク」で作成します。
タスクはrootユーザでブートアップ時の実行とし、「タスク設定」タブにある「ユーザ指定のスクリプト」欄に先ほどのコマンドを念のためフルパスで登録しました。
作成したタスクは一覧から右クリックすると出てくるメニューで、手動実行して確かめることも出来ます。
これで、Aria2がサービスとして自動起動するようになったので、次ページではそのフロントエンドを構築します。
投稿 Synology NAS DS213JへAria2をインストール は Fun Scripting 2.0 に最初に表示されました。