Nextcloud

【techblog】Nextcloudの管理用CLI「occ」詳細: アプリ管理に関するコマンド

はじめに

NextcloudにはCLI環境としてoccというものがあり、さまざまな設定、管理を行うことができます。 ここではoccで使える様々なコマンド群のうち、アプリ管理に関するコマンド群についてまとめてみます。

※occ の使い方については、 【techblog】Nextcloudの管理用CLI「occ」コマンドについての記事を参照ください。
※occ の共通オプションについては、【techblog】Nextcloudの管理用CLI「occ」詳細: Nextcloud自体に対するコマンド群、共通オプション設定の記事を参照ください。

環境について

ここで記載するoccを実行するNextcloudのバージョンは、2019年3月9日現在で最新の15.0.5を利用します。
WebサーバはNginxを利用した環境で実施しております。ApacheをWebサーバとして利用している場合は、sudo -u のユーザIDをapacheに読み替えてください。

アプリ管理に関するコマンド群

アプリ管理に関するコマンドは以下のようなものがあります。

  • app:check-code
  • app:disable
  • app:enable
  • app:getpath
  • app:install
  • app:list
  • app:remove
  • app:update

app:list

利用可能なアプリのリストを出力します。アプリが有効化されているかどうかも確認することができます。

使い方

app:list [オプション]

オプション

  • --output=[OUTPUT]
    アプリ情報の出力フォーマットを指定します。指定できるフォーマットは次のとおりです。

    • plain: 普通の出力 (オプション未指定の場合のデフォルト)
    • json: JSON形式
    • json_pretty: 整形されたJSON形式
  • --shipped=SHIPPED
    trueを指定するとNextcloudのパッケージとしてインストールされたアプリのみをリストとして出力します。falseを指定するとNextcloud App Storeなどから別でインストールされたアプリのみをリストとして出力します。
    このオプションが指定されない場合は全てのアプリをリストとして出力します。

使用例

①全ての利用可能なアプリのリストを出力する。

$ sudo -u nginx php /var/www/html/nextcloud/occ app:list 
Enabled:
  - accessibility: 1.1.0
  - activity: 2.8.2
  - bruteforcesettings: 1.3.0
  - cloud_federation_api: 0.1.0
  - comments: 1.5.0
  - dav: 1.8.1
  - federatedfilesharing: 1.5.0
  - federation: 1.5.0
  - files: 1.10.0
  - files_pdfviewer: 1.4.0
  - files_sharing: 1.7.0
  - files_texteditor: 2.7.0
  - files_trashbin: 1.5.0
  - files_versions: 1.8.0
  - files_videoplayer: 1.4.0
  - firstrunwizard: 2.4.0
  - gallery: 18.2.0
  - logreader: 2.0.0
  - lookup_server_connector: 1.3.0
  - news: 13.1.0
  - nextcloud_announcements: 1.4.0
  - notifications: 2.3.0
  - oauth2: 1.3.0
  - password_policy: 1.5.0
  - provisioning_api: 1.5.0
  - serverinfo: 1.5.0
  - sharebymail: 1.5.0
  - support: 1.0.0
  - survey_client: 1.3.0
  - systemtags: 1.5.0
  - theming: 1.6.0
  - twofactor_backupcodes: 1.4.1
  - updatenotification: 1.5.0
  - workflowengine: 1.5.0
Disabled:
  - admin_audit
  - encryption
  - files_external
  - user_ldap

②Nextcloud App Storeなどから別でインストールされたアプリのみのリストを整形されたJSON形式で出力する。

$ sudo -u nginx php /var/www/html/nextcloud/occ app:list --shipped=false --output=json_pretty
{
    "enabled": {
        "bruteforcesettings": "1.3.0",
        "news": "13.1.0"
    },
    "disabled": []
}

app:disable

アプリを無効にします。

使い方

app:disable <アプリID>

アプリID

無効にしたいアプリのアプリIDを指定します。すでに無効にされているアプリIDが指定された場合や存在しないアプリIDが指定された場合はNo such app enabled: <アプリID>というメッセージが表示されます。

使用例

①newsアプリを無効化する。

$ sudo -u nginx php /var/www/html/nextcloud/occ app:disable news
news disabled

app:enable

アプリを有効にします。

使い方

app:enable <アプリID>

アプリID

有効にしたアプリのアプリIDを指定します。すでに有効にされているアプリIDが指定された場合でも処理が実行され正常終了します。存在しないアプリIDが指定された場合は<アプリID> not foundというメッセージが表示されます。

使用例

①newsアプリを有効化する。

$ sudo -u nginx php /var/www/html/nextcloud/occ app:enable news
news enabled

app:getpath

利用可能なアプリがインストールされている絶対パスを出力します。

使い方

app:getpath <オプション> <アプリID>

アプリID

パスを表示したいアプリのアプリIDを指定します。存在しないアプリIDが指定された場合は何も表示されません。

オプション

  • --output=[OUTPUT]
    アプリ情報の出力フォーマットを指定します。指定できるフォーマットは次のとおりです。

    • plain: 普通の出力 (オプション未指定の場合のデフォルト)
    • json: JSON形式
    • json_pretty: 整形されたJSON形式

# 現状としてはどの出力フォーマットを指定しても出力結果は同じとなります。

使用例

①newsアプリのインストール先絶対パスを出力する。

$ sudo -u nginx php /var/www/html/nextcloud/occ app:getpath news
/var/www/html/nextcloud/apps/news

app:install

アプリをインストールします。

使い方

app:install <オプション> <アプリID>

アプリID

インストールしたいアプリのアプリIDを指定します。存在しないアプリIDが指定された場合はError: Could not download app <アプリID>と表示されます。指定したアプリがすでにインストールされている場合は<アプリID> already installedと表示されます。

オプション

  • --keep-disabled
    インストールが終わったあとアプリを有効にしません。

使用例

①calendarアプリをインストールする。

$ sudo -u nginx php /var/www/html/nextcloud/occ app:install calendar
calendar installed
calendar enabled

②notesアプリをインストールする。インストール後アプリは有効にしない。

$ sudo -u nginx php /var/www/html/nextcloud/occ app:install --keep-disabled notes
notes installed

app:remove

アプリを削除します。

使い方

app:remove <オプション> <アプリID>

アプリID

削除したいアプリのアプリIDを指定します。インストールされていないアプリIDが指定された場合は<アプリID> is not installedと表示されます。

オプション

  • --keep-data
    削除した後もアプリデータを保管し削除しません(アプリ本体のファイルは削除されます)。このオプションを指定しない場合はアプリデータは削除されると思われるのですが、アプリによってはそのままデータが残り続けることもあるようです。

使用例

①notesアプリを削除する。

$ sudo -u nginx php /var/www/html/nextcloud/occ app:remove notes
notes disabled
notes removed

app:update

1つまたは全てのアプリを最新版に更新します。

使い方

app:update <オプション> <アプリID>

アプリID

最新版に更新したいアプリのアプリIDを指定します。インストールされていないアプリIDが指定された場合は<アプリID> not installedと表示されます。指定したアプリがすでに最新版である場合は何も表示されません。--allオプションを指定しないときは必ず指定する必要があります。

オプション

  • --all
    更新できるすべてのアプリを最新版に更新します。
  • --showonly
    更新処理は行わず、更新情報のみ表示します。

使用例

①calendarアプリを最新版に更新する。

$ sudo -u nginx php /var/www/html/nextcloud/occ app:update calendar
calendar new version available: 1.6.4
calendar updated

②すべてのアプリのアップデートがあるか確認する。更新処理はしない。

$ sudo -u nginx php /var/www/html/nextcloud/occ app:update --showonly --all
fulltextsearch new version available: 1.2.5
calendar new version available: 1.6.4

app:check-code

アプリのコードが適合したものかどうかを確認します。

使い方

app:update <オプション> <アプリID>

アプリID

コードが適合しているかどうかを確認したいアプリのアプリIDを指定します。

オプション

  • -c, --checker=CHECKER
    指定されたコードチェッカーを使います。このオプションを指定しないときには全てのチェッカーで確認を行います。オプションを複数指定することで複数の確認を同時に行うことができます。チェッカーは下記のものを指定できます。

    • private: プライベートクラスの静的メソッドの呼び出しに関するチェック。
    • deprecation: 非推奨クラスの静的メソッドの呼び出しに関するチェック。
    • strong-comparison: 厳密な比較に関するチェック。
  • --skip-checkers
    コードチェッカーをスキップして、info.xml、言語、データベーススキーマのみ確認します。
  • --skip-validate-info
    info.xmlのバージョン確認をスキップします。

使用例

①calendarアプリのコードが適合しているかどうかを確認する。

$ sudo -u nginx php /var/www/html/nextcloud/occ app:check-code calendar
App is compliant - awesome job!