手動インストールしたnginxを維持しながらowncloudをupgrade

[`evernote` not found]
Bookmark this on Hatena Bookmark
Share on Facebook
LINEで送る

前提

apache2は2.4で設定が変わった折に捨てた.
nginxはwebdavを使うためやhttp2を使うためなどの理由でdebianのパッケージでは不足であったため公式サイトの安定リリースを手動コンパイルしインストールしている.
owncloudは公式のドキュメント(Install package owncloud, owncloud-files)にあるリポジトリを使用する.

手順

owncloudをリポジトリからapt-getで入れる場合,httpdセクションのパッケージが入っていないと依存関係が問題になる.
owncloud-filesで依存関係を無視して入れるか,ダミーパッケージを作成して依存関係を解決させるかが必要となる.
今回は後者を選択した.

リポジトリ修正
owncloudはメジャーアップデートをスキップすることはできない.
例えば8.1が入っている場合,8.1->8.2->9.0->9.1とアップデートしなければならない.
なので8.2を入れる.
なんかリポジトリのアドレスが変わってたっぽいのでついでに対応する.

@@ -1 +1 @@
-deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_8.0/ /
+deb http://download.owncloud.org/download/repositories/8.2/Debian_8.0/ /
更新準備(ダミーパッケージインストール)
まず,
equivsでダミーパッケージを作って入れる.

  1. equivsを入れて
    $ sudo apt-get update && sudo apt-get install equivs
    
  2. 適当なディレクトリでダミーパッケージ作り.
    $ mkdir nginx-dummy && cd nginx-dummy
    $ equivs-control nginx-dummy
    
  3. 設定ファイルの編集
    ただし,php5-cgiは8.2のみ依存関係のため入れている.8.2のアンインストール後,つまり9.0インストール後はphp5-cgiを抜いてインストールし直して良い.(9.0~は依存関係は「php5-cgi | php5-fpm」となっているので)

    @@ -6,14 +6,14 @@
     # Homepage: 
     Standards-Version: 3.9.2
    
    -Package: 
    +Package: nginx-dummy
     # Version: 
     # Maintainer: Your Name 
     # Pre-Depends: 
     # Depends: 
     # Recommends: 
     # Suggests: 
    -# Provides: 
    +Provides: httpd,php5-cgi
     # Replaces: 
     # Architecture: all
     # Copyright: 
    @@ -22,7 +22,7 @@
     # Extra-Files: 
     # Files: 
     #  
    -Description: 
    - long description and info
    +Description: dummy package for nginx
    + dummy package for nginx installed manually.
      .
    - second paragraph
    + nginx-dummy provides httpd and php5-cgi
    
  4. ダミーパッケージを作ってインストール
    $ equivs-build nginx-dummy; sudo dpkg -i nginx-dummy_1.0_all.deb
    
パッケージ更新
で,やっとownCloudを更新する.

$ sudo apt-get update && sudo apt-get install owncloud=8.2
ファイル更新
展開済のowncloudを更新する.

$ cd /var/www/owncloud
$ sudo -u www-data ./occ upgrade
メンテナンスモード終了
動作確認は設定ファイルでmaintenanceをfalseにしないとできない.

@@ -21,3 +21,3 @@
   'updatechecker' => false,
-  'maintenance' => true,
+  'maintenance' => false,
   'theme' => '',
繰り返す
8.2->9.0
9.0->9.1

10.0も出てるけど,9.1はまだサポートされてるし,今回はパス.
と思ったら,9.0もまだサポートされてた.アップデートしすぎた.でもダウングレードはサポートされてないので,9.1で行く.
Maintenance and Release Schedule · owncloud/core Wiki