[wp-cli] クリスマスイヴなんだしアップデートしようぜ


サンタ狩りにクッソ忙しい季節が今年もやってまいりました。{bash,ゆで太郎}だいすき @nullpopopo です。世間様はクリスマスですが私はゆで太郎の年越しそばが楽しみでなりません。季節限定鍋焼きうどんも今のうちですよ!ゆで太郎に普段うどんはありませんからね。

季節限定メニュー 鍋焼きうどん@ゆで太郎神田橋店
季節限定メニュー 鍋焼きうどん@ゆで太郎神田橋店
季節限定メニュー 鍋焼きうどんを頬張る@nullpopopo
季節限定メニュー 鍋焼きうどんを頬張る@nullpopopo

そうそう、ゆで太郎にかまけていたら危うく WordPress Advent Calendar 2016 のことを忘れるところでした。本当ならサンタ迎撃のためにRedStar Linuxで弾道計算しようかと思っていたのですが、それどころではないクッソ忙しさでしたので、今年もサンタの領空侵犯を許すことになりそうです。が、ここはクヨクヨしたおっさん(by上田先生)らしく、黒い画面(wp-cli)を黒い心で遊ぶことにしましょう。黒い画面といえば今月号のSoftware Designですよ!シェル芸30本ノックで正月休みにヒャッホイです!

さて、弊社広報の岡田が

皆さんもぜひ、リリースされた際にはこのWordPress 4.7の新しいテーマをお試しください( *´艸`)

とあざとい(byねこるりさん)写真つきで書いていたので、テスト用に放置^h^h確保していたさくらのレンタルサーバーでなんかしようかな、と。そういや過去に、デザイナーさんや非サーバーエンジニアさん向けに

黒い画面も怖くない!さくらのレンタルサーバーで自在にWordPressを操ろう! - wp-cliでWordPressを簡単構築 - #さくらクラブ

なんて勉強会やってのを思い出してですね。そん時にインストールしたwp-cliWordPressをアップデートしなきゃだよね(普段からやれ)。1からインストールされる方は是非こちらをご参考にしていただければと。


やっと本題。今回も昨日20周年を迎えたさくらのレンタルサーバーで例示しますが、さくらのVPSやクラウド、その他ご自身でDocumentRootを変えられている場合は、よしなに「--path=${HOME}/www/」の部分を変えてくださいね。なお、さくらのレンタルサーバーはデフォルトのシェルがtcshですが、プロセス置換や変数指定が楽なので、bashに変更しています。

まずは黒い画面でログインしましょう。

[hamada@U24E ~]$ sshpass -p ******** ssh nullpopopo@nullpopopo.sakura.ne.jp
Last login: Sat Dec 24 01:14:49 2016 from pNNNNXX.tokyff01.ap.so-net.ne.jp

FreeBSD 9.1-RELEASE-p24 (SAKURA17) #0: Thu Feb  5 10:03:29 JST 2015

Welcome to FreeBSD!

そしてWordPressの現在のバージョンを確認しましょう。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ core version
4.5.4

WordPressの最新版がリリースされているか確認します。

[nullpopopo@www1452 ~]$ wp ---path=${HOME}/www/ core check-update
+---------+-------------+-----------------------------------------------+
| version | update_type | package_url                                   |
+---------+-------------+-----------------------------------------------+
| 4.7     | major       | https://ja.wordpress.org/wordpress-4.7-ja.zip |
+---------+-------------+-----------------------------------------------+

アップデートがありますね。

次に、wp-cliの現在のバージョンも確認してみましょう。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ cli version
WP-CLI 0.22.0

同様に、wp-cliの最新版がリリースされているか確認します。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ cli check-update
+---------+-------------+-------------------------------------------------------------------------------+
| version | update_type | package_url                                                                   |
+---------+-------------+-------------------------------------------------------------------------------+
| 1.0.0   | major       | https://github.com/wp-cli/wp-cli/releases/download/v1.0.0/wp-cli-1.0.0.phar   |
| 0.25.0  | minor       | https://github.com/wp-cli/wp-cli/releases/download/v0.25.0/wp-cli-0.25.0.phar |
+---------+-------------+-------------------------------------------------------------------------------+

0.x系と1.x系の両アップデートが表示されましたので、ここは1.x系にメジャーアップデートしましょう。どーんといこうや。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ cli update --major
You have version 0.22.0. Would you like to update to 1.0.0? [y/n] y
Downloading from https://github.com/wp-cli/wp-cli/releases/download/v1.0.0/wp-cli-1.0.0.phar...
New version works. Proceeding to replace.
Success:Updated WP-CLI to 1.0.0

wp-cliのメジャーバージョンアップを行うときは、引数に「--major」をつけます。対話式に「今インストールされてるバージョンが0.22.0だけど1.0.0にアップデートすんの?」と聞いてくるので、「y」をタイプしてエンターを叩き、アップデートを続行します。

それではwp-cliがアップデートされたか確認してみましょう。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ cli version
WP-CLI 1.0.0

はい、wp-cliのアップデートができました。簡単ですね。それではもう一度WordPress本体のバージョンとアップデートの有無を確認してみましょう。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ core version
4.5.4
[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ core check-update
+---------+-------------+--------------------------------------------------------------+
| version | update_type | package_url                                                  |
+---------+-------------+--------------------------------------------------------------+
| 4.7     | major       | https://downloads.wordpress.org/release/ja/wordpress-4.7.zip |
+---------+-------------+--------------------------------------------------------------+

ちなみに、2016/12/24 の時点でマイナーバージョンは最新でした。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ core update --minor
Success:WordPress is at the latest minor release.

というわけで、WordPressをメジャーバージョンアップします。どーん。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ core update
Updating to version 4.7 (ja)...
https://downloads.wordpress.org/release/ja/wordpress-4.7.zip から更新をダウンロードしています...
更新を展開しています…
Warning:Failed to fetch checksums. Please cleanup files manually.
Success:WordPress updated successfully.

それではWordPressが最新化されたか確認してみましょう。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ core version
4.7
[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ core check-update
Success:WordPress is at the latest version.

いい感じですね。

それではプラグインもアップデートしてしまいましょう。まずは今のプラグイン一覧確認です。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ plugin list
+--------------------+----------+-----------+---------+
| name               | status   | update    | version |
+--------------------+----------+-----------+---------+
| akismet            | inactive | available | 3.1.11  |
| hello              | inactive | none      | 1.6     |
| wp-multibyte-patch | inactive | available | 2.6     |
+--------------------+----------+-----------+---------+

どーんとアップデートしましょう。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ plugin update --all
https://downloads.wordpress.org/plugin/akismet.3.2.zip から更新をダウンロードしています...
更新を展開しています…
最新のバージョンをインストールしています…
プラグインの古いバージョンを削除しています…
プラグインの更新に成功しました。
https://downloads.wordpress.org/plugin/wp-multibyte-patch.2.8.1.zip から更新をダウンロードしています...
更新を展開しています…
最新のバージョンをインストールしています…
プラグインの古いバージョンを削除しています…
プラグインの更新に成功しました。
+--------------------+-------------+-------------+---------+
| name               | old_version | new_version | status  |
+--------------------+-------------+-------------+---------+
| akismet            | 3.1.11      | 3.2         | Updated |
| wp-multibyte-patch | 2.6         | 2.8.1       | Updated |
+--------------------+-------------+-------------+---------+
Success:Updated 2 of 2 plugins.

はいアップデートされましたね。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ plugin list
+--------------------+----------+--------+---------+
| name               | status   | update | version |
+--------------------+----------+--------+---------+
| akismet            | inactive | none   | 3.2     |
| hello              | inactive | none   | 1.6     |
| wp-multibyte-patch | inactive | none   | 2.8.1   |
+--------------------+----------+--------+---------+

続いてテーマの一覧表示を。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ theme list
+----------------+----------+-----------+---------+
| name           | status   | update    | version |
+----------------+----------+-----------+---------+
| twentyfifteen  | inactive | available | 1.5     |
| twentyfourteen | inactive | available | 1.7     |
| twentysixteen  | active   | available | 1.2     |
+----------------+----------+-----------+---------+

現在のテーマもアップデートしましょう。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ theme update --all
メンテナンスモードを有効にします…
https://downloads.wordpress.org/theme/twentyfifteen.1.7.zip から更新をダウンロードしています...
更新を展開しています…
最新のバージョンをインストールしています…
旧バージョンのテーマを削除しています…
テーマの更新に成功しました。
https://downloads.wordpress.org/theme/twentyfourteen.1.9.zip から更新をダウンロードしています...
更新を展開しています…
最新のバージョンをインストールしています…
旧バージョンのテーマを削除しています…
テーマの更新に成功しました。
https://downloads.wordpress.org/theme/twentysixteen.1.3.zip から更新をダウンロードしています...
更新を展開しています…
最新のバージョンをインストールしています…
旧バージョンのテーマを削除しています…
テーマの更新に成功しました。
メンテナンスモードを無効にします…
+----------------+-------------+-------------+---------+
| name           | old_version | new_version | status  |
+----------------+-------------+-------------+---------+
| twentyfifteen  | 1.5         | 1.7         | Updated |
| twentyfourteen | 1.7         | 1.9         | Updated |
| twentysixteen  | 1.2         | 1.3         | Updated |
+----------------+-------------+-------------+---------+
Success:Updated 3 of 3 themes.

はいアップデートされました。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ theme list
+----------------+----------+--------+---------+
| name           | status   | update | version |
+----------------+----------+--------+---------+
| twentyfifteen  | inactive | none   | 1.7     |
| twentyfourteen | inactive | none   | 1.9     |
| twentysixteen  | active   | none   | 1.3     |
+----------------+----------+--------+---------+

翻訳のアップデートもあるか確認しましょう。どうやらcheck-updateのサブコマンドはないのですが、 --dry-run をつけるといきなりアップデートせずに確認することができます。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ core language update --dry-run
Available 1 translations updates:
+--------+---------+---------+----------+
| Type   | Name    | Version | Language |
+--------+---------+---------+----------+
| Plugin | Akismet | 3.2     | Japanese |
+--------+---------+---------+----------+

Akismetの日本語翻訳ファイルがアップデートされていますね。それではアップデートしましょう。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ core language update
Updating 'Japanese' translation for Akismet 3.2...
https://downloads.wordpress.org/translation/plugin/akismet/3.2/ja.zip から翻訳ファイルをダウンロードしています...
更新を展開しています…
最新のバージョンをインストールしています…
翻訳が正常に更新されました。
Success:Updated 1/1 translations.

はい事後確認。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ core language update --dry-run
Success:Translations are up to date.

アップデートされました。


さて、WordPress 4.7になってtwentyseventeenテーマがあるかと思いきや・・・

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ theme list
+----------------+----------+--------+---------+
| name           | status   | update | version |
+----------------+----------+--------+---------+
| twentyfifteen  | inactive | none   | 1.7     |
| twentyfourteen | inactive | none   | 1.9     |
| twentysixteen  | active   | none   | 1.3     |
+----------------+----------+--------+---------+

ない!どうやらアップデートではテーマが降ってこないようです。そしたらもうcoreを上書きするかテーマを個別にダウンロードするしかないですね。面倒なのでcoreごと上書きしてしまいましょう。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ core download
Error:WordPress files seem to already be present here.

って、最新版にしたばっかりだったんだ (;´ω`) んじゃ強制アップデートで。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ core download --force
Downloading WordPress 4.7 (en_US)...
md5 hash verified: 474c022ef8e5371a8fc756dbfeb96d1b
Success:WordPress downloaded.

それではテーマの一覧にtwentyseventeenがあるか確認してみましょう。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ theme list
+-----------------+----------+--------+---------+
| name            | status   | update | version |
+-----------------+----------+--------+---------+
| twentyfifteen   | inactive | none   | 1.7     |
| twentyfourteen  | inactive | none   | 1.9     |
| twentyseventeen | inactive | none   | 1.0     |
| twentysixteen   | active   | none   | 1.3     |
+-----------------+----------+--------+---------+

キタ━━━(゚∀゚).━━━!!!

んじゃテーマを twentysixteen から twentyseventeen へ変えちゃいましょう。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ theme activate twentyseventeen
Success:Switched to 'Twenty Seventeen' theme.

はい確認。

[nullpopopo@www1452 ~]$ wp --path=${HOME}/www/ theme list
+-----------------+----------+--------+---------+
| name            | status   | update | version |
+-----------------+----------+--------+---------+
| twentyfifteen   | inactive | none   | 1.7     |
| twentyfourteen  | inactive | none   | 1.9     |
| twentyseventeen | active   | none   | 1.0     |
| twentysixteen   | inactive | none   | 1.3     |
+-----------------+----------+--------+---------+

twentysixteen が inactive になって twentyseventeen が active になりましたね。つまり

これが

こうなった、ということで、wp-cliおよびWordPress、テーマ、プラグイン、翻訳ファイルのアップデートができちゃいました。ね、簡単でしょう?

というわけで、WordPress Advent Calendar 2016 明日は福田さんです。よろしくー。