はじめに
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!