concrete5 パッケージアドオンのアップデート方法

Katz Ueno
Katz Ueno

concrete5 のマーケットプレイス等でダウンロードしたアドオンを新しいバージョンにアップデートする方法を紹介します。

マーケットプレイスに接続したサイトでアップデート

本来はこちらの方法でアップデートします。

  1. concrete5 にアドオンをインストールできる権限のユーザーでログイン
  2. 管理画面 - concrete5を拡張 (/index.php/dashboard/extend/install) ページに訪問
  3. ページの上部にでている情報ボックスの「アドオンのアップデート」ボタンをクリック
  4. アップデートを行う各アドオンの「ダウンロード・インストール」ボタンをクリック
  5. 希望するアドオンのアップデートが終われば完了。
 

手動でアップデート

なんらかの理由で管理画面からのアップデートができない場合、手動でアップデートを行います。

 

STEP 1. ファイルを手動でアップロード

  1. 予め concrete5 の管理画面に管理者アカウントでログインしておく (*後述)
  2. アップデート版のパッケージZIPファイルをマーケットプレイスなどからダウンロードします。
  3. ZIP ファイルを解凍し、/packages/アドオンのハンドル/ を上書き保存します。

※ この段階でサイトの一部or全部がアクセス不能になる可能性があるので注意。
※ STEP2-2 でアップデートを行う場合は アドオンのハンドル を書き留める。

 

STEP 2-1. 管理画面からアップデート

管理画面からアドオンのアップデートを行う方法。

  1. 管理画面 - concrete5を拡張 (/index.php/dashboard/extend/install) ページに訪問
  2. ページの上部に出ている青いボックス中の「アドオンのアップデート」ボタンをクリック
  3. アップデートを行う各アドオンの「アドンをアップデート」ボタンをクリック
  4. 希望するアドオンのアップデートが終われば完了。
 

STEP 2-2. コマンドラインツールからアップデート

SSHやターミナルで、concrete5 のコマンドラインツールを実行しアドオンをアップデートする方法です。

  1. STEP 1 に従ってファイルを手動でアップロード
  2. SSH などでサーバーに接続
  3. concrete5 が保存してあるディレクトリまで移動 ($ cd) or concrete5 のフルパスを取得。
  4. concrete5 が可動しているサーバーと同じユーザーとして下記のコマンドを実行。
$ concrete/bin/concrete5 c5:package-update [アドオンのハンドル]

コマンドが正しければアップデートされます。
すでに最新版であればアップデートされません。
アップデートを強制実行するのであれば --force- オプションを使います。

$ concrete/bin/concrete5 c5:package-update [アドオンのハンドル] --force

 

豆知識:

管理画面からアップデートしたときの挙動

管理画面で全てのアドオンのアップデート作業をすると下記のような動作になります。

  • /application/files/tmp フォルダ内に concrete5.org からダウンロードした ZIP ファイルが、取得時の UNIXTIME を使って保存されます。
  • /application/files/tmp 内に UNIXTIME と同じ名前でフォルダを生成し、ZIP ファイルの中身を展開します。
  • 既存のパッケージファイルが /application/files/trash/ ページにフォルダ名に [YYYYMMDDHHMMSS] が追加された状態で移動されます。
  • /application/files/tmp 内のディレクトリが /packages/ フォルダにコピーされます。
  • packages ファイル内の update() にコードが入っていれば、それが実行されます。
  • Database 内の Packages テーブルの情報がアップデートされます。

管理画面からアップデートした場合、/application/files/tmp/application/files/tmp にダウンロードした新しいパッケージのファイルが保存され、古いパッケージファイルは /application/files/trash//application/files/trash/ 内に保存されます。

 

以上