プログラマーになりたい。

プログラミングや写真や本や読書会のことや、日常のこと。

ASUSTOR製NASへのEntware-ngのインストールについて(翻訳)

若干マイナー気味のメーカであるASUSTOR製な上に、さらにEntware-ngというマイナーなパッケージマネージャを載せると、ドキュメントがどんどん減っていく感じがして心細いが、いまのところ、特に問題はないようだ。それよりも、将来どこまでメンテナンスされるかが問題かもしれない。メンテナンスの継続を切に願っている。

ASUSTOR NASについて公式には次のページを参考にするように書いてあるが、ぱっと見ただけでは何が書いてあるかよくわからないんだよね……。しかたがないから、大ざっぱに翻訳してみた。ただし、公開の許諾を得る英語力はない!ので、以下はそれを元に概要を説明する。

ちなみに、ASUSTOR製NASにインストールするだけなら、ここから「.apkg」ファイルをダウンロードし、解凍し、NASの管理画面の「App Central」から「手動インストール」のところにアップロードすればOK。

Entware-ngはマルチプラットフォーム(mipsel, armel, armhf, x86, x86_64)対応で、毎月アップデート。最新のライブラリを収録している(例:libcは、Asustorは2.13を配布しているのに対し、2.22を配布中)。

※ごめん……コマンドのusageを後回しにしたら、途中で力尽きた……。コマンドのヘルプが一部、英文のままになっています。

Optware・Astwareからの移行について

  • インストールされたソフトウェアと、それらが依存しているソフトウェアのリストを作る
    • 例:[/apps]/opt/bin/opkg list_installed | grep -v ^opkg | cut -d ' ' -f 1 > /share/Public/my_applistのような感じ
  • それらの設定ファイルを別の場所に保存する
  • それらと、Optware/Astwareをアンインストール
  • Entware-ngをインストール
  • リストに従って、ソフトウェアをインストール
    • 例:while read line ; do /opt/bin/opkg install $line ; done < /share/Public/my_applistのような感じ
    • ただし、パッケージ名は完全に同じわけではないため、エラーになった分はopkg findなどで検索し、インストールをする必要がある

注意: * Optwareからの移行は本当はやめたほうがいいらしい。(訳者注:僕は/opt以下を削除したせいか、成功しました。) * それに比べると、Astwareからの移行はリスクが少ないらしい。 * セキュリティ保護のため、OptwareとAstwareはEntware-ngのインストール前に削除すること

Entware-ngは/optディレクトリ以下を使用する

[現在のバージョン]

0.96
01.01.2016
0.96でファームウェアを修正した。(2.5.1 Beta以前では、AS_NAS_ARCH環境変数が32bitのx86 CPU搭載モデルで入力されないバグがあります)

[対応モデル]

[要件]

OptwareとAstwareはアンインストールしてあること(x86モデルではAstwareを残すことも可能だがリスクが高まるらしい)。

[パッケージ]

Wiki : https://github.com/Entware/entware/wiki (Asustorの実装専用) バグ報告 : https://github.com/Entware/entware/issues (Entwareパッケージ専用)

[使い方]

  • 従来のipkgと対応するコマンドは:opkg
  • バックグラウンドプロセスを起動するためのメカニズムがある(すべて、ユーザ権限らしい)。

以下はコマンドの出力を翻訳したもの。

# opkg
opkg must have one sub-command argument
usage: opkg [options...] sub-command [arguments...]
sub-commandは下記のいずれか:

パッケージ操作:
        update                  利用可能パッケージのリストを更新
        upgrade                 インストール済パッケージの更新
        install <pkgs>          パッケージ<pkgs>(複数可)をインストール
        configure <pkgs>        開梱済みパッケージ<pkgs>(複数可)を設定
        remove <pkgs|regexp>    パッケージ<pkgs|regexp>(複数可、正規表現可)を削除
        flag <flag> <pkgs>      パッケージ<pkgs>(複数可)のフラグを変更
         <flag>=hold|noprune|user|ok|installed|unpacked (一度に1つ)

情報コマンド:
        list                    利用可能パッケージのリストを表示
        list-installed          インストール済パッケージのリストを表示
        list-upgradable         更新できるインストール済パッケージのリストを表示
        list-changed-conffiles  コンフィギュレーションファイルのリストを表示
        files <pkg>             パッケージ<pkg>に付属のファイルのリストを表示
        search <file|regexp>    ファイル<file>を含むパッケージを表示
        find <regexp>           名前か説明に<regexp>が含まれるパッケージのリストを表示
        info [pkg|regexp]       パッケージ<pkg>の全情報を表示
        status [pkg|regexp]     パッケージ<pkg>の全ステータスを表示
        download <pkg>          カレントディレクトリにパッケージ<pkg>をダウンロード
        compare-versions <v1> <op> <v2>
                                <= < > >= = << >> を使用して
                                2つのバージョンを比較
        print-architecture      インストール済パッケージのアーキテクチャのリストを表示
        depends [-A] [pkgname|pat]+
        whatdepends [-A] [pkgname|pat]+
        whatdependsrec [-A] [pkgname|pat]+
        whatrecommends[-A] [pkgname|pat]+
        whatsuggests[-A] [pkgname|pat]+
        whatprovides [-A] [pkgname|pat]+
        whatconflicts [-A] [pkgname|pat]+
        whatreplaces [-A] [pkgname|pat]+

オプション:
        -A                      未インストールを含む、全パッケージをクエリ
        -V[<level>]             表示冗長度レベルを<level>に設定
        --verbosity[=<level>]   冗長度レベル:
                                        0 エラーのみ
                                        1 標準メッセージ (デフォルト)
                                        2 情報メッセージ
                                        3 デバッグ
                                        4 デバッグレベル2
        -f <conf_file>          <conf_file>をopkgのコンフィギュレーションファイルとして使用
        --conf <conf_file>
        --cache <directory>     Use a package cache
        -d <dest_name>          Use <dest_name> as the the root directory for
        --dest <dest_name>      package installation, removal, upgrading.
                                <dest_name> should be a defined dest name from
                                the configuration file, (but can also be a
                                directory name in a pinch).
        -o <dir>                Use <dir> as the root directory for
        --offline-root <dir>    offline installation of packages.
        --add-arch <arch>:<prio>        Register architecture with given priority
        --add-dest <name>:<path>        Register destination with given path

Force Options:
        --force-depends         Install/remove despite failed dependencies
        --force-maintainer      Overwrite preexisting config files
        --force-reinstall       Reinstall package(s)
        --force-overwrite       Overwrite files from other package(s)
        --force-downgrade       Allow opkg to downgrade packages
        --force-space           Disable free space checks
        --force-postinstall     Run postinstall scripts even in offline mode
        --force-remove  Remove package even if prerm script fails
        --force-checksum        Don't fail on checksum mismatches
        --noaction              No action -- test only
        --download-only No action -- download only
        --nodeps                Do not follow dependencies
        --nocase                Perform case insensitive pattern matching
        --force-removal-of-dependent-packages
                                Remove package and all dependencies
        --autoremove            Remove packages that were installed
                                automatically to satisfy dependencies
        -t                      Specify tmp-dir.
        --tmp-dir               Specify tmp-dir.

 regexp could be something like 'pkgname*' '*file*' or similar
 e.g. opkg info 'libstd*' or opkg search '*libop*' or opkg remove 'libncur*'

[ダウンロード] APKGファイル(ZIP圧縮): https://mega.nz/#!I9skFI7Q!2yUn7yTYjhcs-ulxQkp8RkCsJxysAzw8m6JEwd1SNN4

*1:訳者注:よく分からないのでちゃんと訳せない

Creative Commons License ©2007-2021 IIDA Munenori.