Loading...

2023-12-14(木) 15:00

💻 UbuntuにNextcloudのCLIクライアントをインストールする

UbuntuNextcloud
Nextcloudのデスクトップアプリではなく、コマンドラインツール版のクライアントをUbuntuにインストールする手順を解説します。

目次

前提と注意事項

  • Ubuntu 22.04 へのインストールになります。
  • Nextcloud サーバのインストール手順についての解説はありません。Nextcloud サーバはすでに構築済みとしています。
  • 記事公開時点で最新のデスクトップクライアント 3.10 の CLI 版である

なお、この記事でインストールする CLI 版のクライアントは、デスクトップアプリ版のクライアントのように一度インストールして起動すれば後は自動で同期してくれるものではありません。 一度の同期を実行するためのコマンドラインツールとなるため、用途に合わせてcronなどを使って定期的に同期を実行するようにする必要があります。

CLI 版をインストールする

GUI 環境がないサーバーなどで使うことを想定して、以下の公式ドキュメントにあるnextcloudcmdという CLI 版のクライアントツールをインストールします。 以下を実行して

Nextcloud Command Line Client

The Nextcloud Client packages contain a command line client, nextcloudcmd, that can be used to synchronize Nextcloud files to client machines.

docs.nextcloud.com

Ubuntu では以下のように apt リポジトリを追加してインストールします。

ターミナル
$ sudo add-apt-repository ppa:nextcloud-devs/client
$ sudo apt update
$ sudo apt install nextcloud-client

apt リポジトリの追加時には以下のように表示されるので Enter を押下して進めてください。

aptリポジトリの追加
$ sudo add-apt-repository ppa:nextcloud-devs/client
[sudo] password for username:
PPA publishes dbgsym, you may need to include 'main/debug' component
Repository: 'deb https://ppa.launchpadcontent.net/nextcloud-devs/client/ubuntu/ jammy main'
Description:
The Nextcloud desktop client compiled for Ubuntu.
 
This repository contains the stable releases of the client. For the cutting-edge, alpha version, see the alpha PPA at https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client-alpha.
There is also a beta PPA for the stable release candidates at https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client-beta.
 
After adding the PPA to your system as described below, the client can be installed by issuing one of the following commands depending on your system:
 
- Stock Ubuntu with Nautilus: sudo apt install nautilus-nextcloud
- KDE Ubuntu with Dolphin: sudo apt install dolphin-nextcloud
- Ubuntu MATE with Caja: sudo apt install caja-nextcloud
- Ubuntu Mint with Nemo: sudo apt install nemo-nextcloud
- Other, or if you don't want/need the file manager integration:
     sudo apt install nextcloud-desktop
 
For support issues, please go to the GitHub page at https://github.com/nextcloud/desktop. This PPA is for packaging only, so contact the maintainer only if your issue is clearly with packaging.
 
NOTE for Bionic users: Bionic includes Qt 5.9 but the Nextcloud client requires Qt 5.12 recently, so there are no more updates for Bionic here.
 
NOTE for Xenial users: because Xenial contains some outdated libraries, such as Qt5.5 and libssl 1.0, which are no longer fully supported by the Nextcloud client, the Xenial build in this repository is on a strictly best-effort basis only. It means that some functionality may not work properly or at all. It is also possible that Xenial support in this PPA will be discontinued altogether at some point in the future.
More info: https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client
Adding repository.
Press [ENTER] to continue or Ctrl-c to cancel.
 

Enter 押下すると apt リポジトリが追加されapt updateも実行されます。 続いてインストール実行します。Yを入力して Enter するとインストールが開始されます。

インストール実行
$ sudo apt install nextcloud-client
 
...省略...
 
  qml-module-qt-labs-settings qml-module-qtgraphicaleffects
  qml-module-qtmultimedia qml-module-qtqml qml-module-qtqml-models2
  qml-module-qtquick-controls2 qml-module-qtquick-dialogs
  qml-module-qtquick-layouts qml-module-qtquick-privatewidgets
  qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtquick2
  qt5-gtk-platformtheme qttranslations5-l10n
アップグレード: 0 個、新規インストール: 56 個、削除: 0 個、保留: 14 個。
75.3 MB のアーカイブを取得する必要があります。
この操作後に追加で 249 MB のディスク容量が消費されます。
続行しますか? [Y/n]Y
 

インストール完了後、以下のようにバージョンを表示できれば正常にインストールできています。

バージョンの確認
$ nextcloudcmd -v
Nextcloud version 3.11.0-20231212.130516.f91ae00cf-1.0~jammy1
Using Qt 5.15.3, built against Qt 5.15.3
Using 'OpenSSL 3.0.2 15 Mar 2022'
Running on Ubuntu 22.04.3 LTS, arm64

同期を実行する

以下のようにnextcloudcmdコマンドを使うことで、好きなディレクトリを Nextcloud サーバと同期させることができます。

同期を実行する
$ nextcloudcmd /home/username/my-nextcloud-dir https://example.com
Please enter username: [email protected]
Password for account with username [email protected]:

上記のように、Nextcloud のユーザ名、パスワードを聞かれるので入力します。 上記の例では、/home/username/my-nextcloud-dirというディレクトリを Nextcloud サーバ(https://example.com)と同期するディレクトリとして設定しています。 パスワードを入力して Enter すると色々なログが表示され同期が開始されます。

アカウント情報が正しければ同期が開始される
SelfOrChild OCC::PropagatorJob::Running pending uploads 1 subjobs state OCC::PropagatorJob::Running
12-10 00:02:43:948 [ info nextcloud.sync.checksums ]:	Computing "SHA1" checksum of "/home/username/my-nextcloud-dir/.Nextcloud Manual.pdf.~117f388c" in a thread
12-10 00:02:44:084 [ info nextcloud.sync.database ]:	Updating file record for path: "Nextcloud Manual.pdf" inode: 689565 modtime: 1700174032 type: CSyncEnums::ItemTypeFile etag: "5963569e8cbb3ae6b0f3cba39a8e2749" fileId: "00000033ocxh0ycsx2rp" remotePerm: "WDNVR" fileSize: 15069794 checksum: "SHA1:b2569e669a182bcf3b50f70b45e69fc304efb040" e2eMangledName: "" isE2eEncrypted: false lock: false lock owner type: 0 lock owner: "" lock owner id: "" lock editor: "" sharedByMe: false isShared: false lastShareStateFetchedTimestamp: 1702479757054
12-10 00:02:44:084 [ info nextcloud.sync.propagator ]:	Completed propagation of "Nextcloud Manual.pdf" by OCC::PropagateDownloadFile(0xaaaadafc64b0) with status OCC::SyncFileItem::Success
12-10 00:02:44:088 [ info nextcloud.sync.propagator.root.directory ]:	scheduleSelfOrChild OCC::PropagatorJob::Running pending uploads 1 subjobs state OCC::PropagatorJob::Running

最終的に以下のように表示されて同期も完了します。

同期完了
...省略...
 
12-10 00:03:34:369 [ info nextcloud.sync.propagator.bulkupload ]:	Item completed "test.txt" OCC::SyncFileItem::Success CSyncEnums::CSYNC_INSTRUCTION_NEW ""
12-10 00:03:34:369 [ info nextcloud.sync.propagator ]:	Completed propagation of "test.txt" by OCC::BulkPropagatorJob(0xaaaadafc26d0) with status OCC::SyncFileItem::Success
12-10 00:03:34:369 [ info nextcloud.sync.propagator.bulkupload ]:	final status OCC::SyncFileItem::NoStatus
12-10 00:03:34:370 [ info nextcloud.sync.propagator.root.directory ]:	OCC::SyncFileItem::Success slotSubJobsFinished OCC::PropagatorJob::Running pending uploads 0 subjobs state OCC::PropagatorJob::Finished
12-10 00:03:34:373 [ info nextcloud.sync.propagator.root.directory ]:	scheduleSelfOrChild OCC::PropagatorJob::Running pending uploads 0 subjobs state OCC::PropagatorJob::Finished
12-10 00:03:34:374 [ info nextcloud.sync.propagator ]:	PropagateRootDirectory::slotDirDeletionJobsFinished emit finished OCC::SyncFileItem::Success
12-10 00:03:34:375 [ info nextcloud.sync.engine ]:	Sync run took  57371 ms
12-10 00:03:34:376 [ info nextcloud.sync.database ]:	Closing DB "/home/username/my-nextcloud-dir/.sync_e937d22871cc.db"

なお、同期先として選択したディレクトリの中に存在するファイルやディレクトリは、そのまま残り Nextcloud サーバ側にも同期されます。


上記の例だと、ユーザー名とパスワードを入力する必要がありますが、以下のようにすることでユーザー名とパスワードを指定した状態で同期を実行できます。

ユーザー名とパスワードを指定して同期を実行する
$ nextcloudcmd -u [email protected] -p mypassword /home/username/my-nextcloud-dir https://example.com

あとはcronやシェルスクリプトを組み合わせ好きなタイミングで同期を実行できます。

まとめ

GUI がない環境でも Nextcloud のサーバと同期することができる CLI 版のクライアントをインストールする手順を解説しました。