ownCloud7から 8へのアップデートで大変なことになった

スポンサーリンク
スポンサーリンク

以前紹介した ownCloudを 7から 8へアップデートしましたが、ownCloudを再インストールする羽目になりました。

Dropboxのようなサービスを自前で運用できる ownCloud パソコン鳥のブログ

結論から言うと、暗号化モジュール Encryption を導入していると、ownCloudを 7から 8へのアップデートで、暗号化済みファイルの復号が出来なくなったので、ownCloud を再インストールしました。
Encryption を導入していない場合は、アップデートできました。

以降で、アップデートの説明をします。
Encryption を導入している場合は、再インストールの説明です。
なお、Ubuntu14.04 での説明になります。

暗号化 Encryption を導入していない場合

ownCloud はapt-get upgrade 実行ではアップデートされないので、明示的にアップデートします。

apt-get upgrade owncloud

アップデート後、https://xxxxx/owncloud/ のようにブラウザで ownCloud にアクセスします。

「アップデートを開始」ボタンを押します。

画像

下記画面になります。
「アプリにinfo.xmlが入っていません」と出ます。

画像

再度 https://xxxxx/owncloud/ のようにブラウザで ownCloud にアクセスします。
「アップデートを開始」ボタンがあるので、再度押すと、今度はアップデートが成功します。

暗号化 Encryption を導入している場合

結論から言うと、ownCloudを 7から 8へのアップデートで、暗号化済みファイルの復号が出来なくなったので、ownCloud を再インストールしました。

問題に対するパッチが下記でリリースされていますが、これを適用してもダメでした。
そのうち、これが反映したバージョンがリリースされると思います。
それまでアップデートを見送るのもいいと思います。

more secure way to update the database by schiesbn · Pull Request #17473 · owncloud/core · GitHub
Don’t try to move files to the trashbin outside of user/files by schiesbn · Pull Request #17474 · owncloud/core · GitHub

アップデートする場合は、再インストールになります。
ownCloudを一旦削除し、新バージョン8をインストールします。
また、サーバ上の暗号化済みファイルの復号が出来ないので、一旦サーバ上からファイルを削除した上で、クライアント上の同期フォルダからサーバに同期させます。

1.クライアントPCの owncloudクライアントを終了させます。

2.サーバ上で owncloud を削除
apt-get remove owncloud を実行して削除します。

3.サーバ上でユーザデータの削除
rm -fr /var/www/owncloud/data/ユーザ名/* を実行します。

4.サーバ上で owncloud をインストール
apt-get install owncloud を実行します。
2015/7/10時点で、ownCloud 8.1.0 がインストールされます。

5.ownCloud にアクセスし、管理者ユーザでログイン
https://xxxxx/owncloud/ のようにブラウザでログインします。

6.暗号化モジュール Encryption を有効化する
画面左上のメニューで ファイル -> アプリ を選択します。

画像

選択後、「無効」を選択し、「Default Encryption module」で「有効にする」を押します。

画像

ブラウザでアクセスしている ownCloud からログアウトします。

7.クライアントPC で ownCloudクライアントを開始
スタートメニューから owncloud を実行し、ownCloudクライアントを開始します。

8.下記表示で「ファイルを残す」を選択
必ず「ファイルを残す」を選択して下さい。

画像

9.「削除」ボタンを押して同期フォルダを削除
同期フォルダの指定が削除されるだけで、フォルダ自体が削除されることはありません。

10.「フォルダーを追加」を行う
先ほど削除したフォルダと同じフォルダを追加します

11.サーバへの同期開始
これで、クライアント上のファイルがサーバへ同期開始されます

なお、同期中に下記表示が出た場合は、クライアントの同期フォルダ内の Documents、Photosフォルダを別名にリネームして下さい。
どうもサーバでも Documents、Photosフォルダが作られていて、それがクライアントに同期される際にファイル名重複でエラーになるようです。
クライアントPCでのリネームでしか回避できなかったので、Documents、Photosフォルダを別名にリネームします。

画像

以上、ownCloudの 7から 8へアップデートです。

正直、暗号化 Encryption を導入している場合は、今すぐのアップデートはおすすめしません。
修正パッチが反映されるまで、しばらく待つ方が良いと思います。

なお、暗号化 Encryption を導入している際に、どのような問題があってアップデート出来ないかですが、手順で下記コマンドを実行する必要がありますが、これがエラーになります。

sudo -u www-data php /var/www/owncloud/occ encryption:migrate

下記のようになります。

画像

「SQLSTATE[23000]」の表示が出て、最後に「encription:migrate [user_id1] … [user_idN]」の表示で終わります。

これに対するパッチが下記でリリースされています。
これらを適用で上記エラーは無くなったのですが、それでも暗号化済みファイルの復号が出来ず、アップデート前のファイルにアクセスできませんでした。

more secure way to update the database by schiesbn · Pull Request #17473 · owncloud/core · GitHub
Don’t try to move files to the trashbin outside of user/files by schiesbn · Pull Request #17474 · owncloud/core · GitHub

そのほかにもパッチが必要のようです。
そのうち、それらも反映したバージョンがリリースされると思いますので、それまでアップデートを見送るのもいいと思います。

コメント

タイトルとURLをコピーしました