ちょっと海外SIMカードシリーズは中断して、久しぶりにWordPressネタを。
このサイトはDTIのServersMan@VPSにDebian GNU/Linux 6.05(squeeze)をセットアップして運用しています(そのときの話は「ServersMan@VPSネタまとめ」と「WordPresネタまとめ」を参照してください)。
Debian 6.0のWordPressのバージョンは3.0.5だったりします。最新のWordPressのバージョンは3.3.1(2012年4月現在)なのでちょっと古いです。基本的には問題がないとは思うのですが、最近動かないプラグインがちょこちょこ出てきました。
なので、Debian 6.0のままWordPressのバージョンをあげることに挑戦してみます。長くなりそうなので複数回に分割して記事にします。
Debian 6.0 (squeeze)のセキュリティアップデートでwordpressのパッケージがアップデートされているため、ここに記載の手順は不要です!詳しくはその4を参照してください!
DebianのWordPressパッケージの状況
まず、開発中のDebianにおけるWordPressパッケージの状況を見てみます。
DebianプロジェクトでWordPressのパッケージを検索してみます。検索は「http://packages.debian.org/パッケージ名」なので「
http://packages.debian.org/wordpress」にアクセスしてみます。
検索結果は下記のとおりです。Debian 6.0(squeeze)では、WordPress3.05が使用できますが、開発中のDebian 7.0(testing/wheezy)では、最新のWordPress 3.3.1が使用できることがわかります。
Debian Backports
Debianには開発中・最新版のパッケージを、すでにリリース済みのシステムで動かすBackports(http://backports.debian.org/)という仕組みがあります。仮に、最新のWordPressパッケージがDebian 6.0(sqeeze)にバックポートされていれば、それを使えばよいことになります。
バックポートされたパッケージの検索はhttp://backports-master.debian.org/Packages/で行います。
Keywordの欄に「wordpress」、Distributionの欄で「squeeze-backports」と入力して検索してみると・・・出てきません。
前年ながらsqueeze向けにバックポートされたwordpressパッケージはないようです。
Debian 7.0(wheezy)のパッケージを流用する
仕方がないので、開発中のDebian 7.0(wheezy)のwordpressパッケージを流用してみます。
必要なパッケージ情報の収集
まずは、Debian 7.0(wheezy)用のwordpressパッケージの情報を入手します。情報はhttp://packages.debian.org/wheezy/wordpressで表示されます。
重要なのはこのページの「その他のwordpress関連パッケージ」で表示されるパッケージのうち、赤丸で依存となっているパッケージ(「dep:」が頭についている)です。WordPressの最新版パッケージを動かすためにはこれらの「依存」パッケージも必要なのです。
パッケージ名のあとに「(>=バージョン番号)」と書かれている場合は、そのバージョン番号以上のパッケージがインストールされている必要があります。例えば「dep: libjs-cropper (>=1.2.1)」であれば、バージョンが1.2.1以上のlibjs-cropperパッケージがインストールされていなければ、最新版WordPressパッケージは動かないことになります。
面倒ですが、一つ一つ確認してみます。自分のシステムに入っているパッケージを調べるには
dpkg –l | grep パッケージ名
を実行します(ServersMan@VPSにSSHで接続して行います)。例えば上記のlibjs-cropperパッケージの場合は
dpkg -l | grep libjs-cropper
ii libjs-cropper 1.2.1-2 JavaScript image cropper UI
となって、バージョン1.2.1-2のパッケージが入っていることがわかります。これは「>=1.2.1」という条件を満たしているので、このままでOKということです。
自分のServersMan@VPSの環境を確認したところ下記のパッケージが最新版WordPressパッケージを動かす条件を満たしていませんでした。
- libjs-prototype (>=1.7.0): 私の環境は1.6.1-1
- libjs-scriptaculous (>=1.9.0): 私の環境は1.8.3-1
- libphp-simplepie (>=1.2): 私の環境にはインストールされておらず
- tinymce (>=3.4.3.2+dfsg0): 私の環境は3.3.8+dfsg0-0.1
このうち、libphp-simplepieパッケージはDebian 6.0(squeeze)にバージョン1.2-1というものがありますので、これを入れれば大丈夫そうです。残りの3つについてはDebian 6.0(squeeze)のパッケージは古すぎるので、Debian 7.0(wheezy)から入手する必要があります。
Debian 7.0(wheezy)から入手するこの3つのパッケージについても、それれぞれ同様に「依存パッケージ」がないかどうか、自分の環境にインストールされているかどうかの確認が必要です。幸いこの3のパッケージついては新たに必要な依存パッケージはありませんでした。
バージョンアップが必要なのはWordPress本体とあわせて4パッケージだけなので、リスクは少なそうです。
不足しているパッケージのインストール
上述のとおり、libphp-simplepieについてはDebian 6.0(squeeze)のものでよいので、下記のようにしてインストールしておきます。
sudo aptitude install libphp-simplepie
Debian 7.0(wheezy)用パッケージ入手の準備
これまでの調査の結果、Debian 7.0(wheezy)から下記のパッケージを入手する必要があることがわかりました。
- wordpress (3.3.1+dfsg-1)
- libjs-prototype (>= 1.7.0)
- libjs-scriptaculous (>= 1.9.0)
- tinymce (>= 3.4.3.2+dfsg0)
これらのパッケージをここに入手してインストールしても良いのですが、ここはDebianのシステムを使ってスマートに解決してみます。
まずは、/etc/apt/sources.list.d/ディレクトリに「wheezy.list」というファイル名で、次の内容のファイルを作ります。
deb http://ftp.jp.debian.org/debian wheezy main contrib non-free deb-src http://ftp.jp.debian.org/debian wheezy main contrib non-free
次に/etc/apt/preferences.d/ディレクトリにファイル名「00default」で次の内容のファイルを作ります。
Package: * Pin: release a=testing Pin-Priority: 110 Package: * Pin: release a=stable Pin-Priority: 990
ここまで準備できたらaptitudeコマンドでパッケージ情報を更新します。
sudo aptitude update
パッケージ情報の更新を完了したらWordPressパッケージの情報を確認します。下記のようになっているはずです。
sudo aptitude versions wordpress
i 3.0.5+dfsg-0+squeeze1 stable 990 p 3.3.1+dfsg-1 testing 110
まとめ
とりあえずこれでDebian 7.0 (wheezy)のWordPressパッケージを使う準備が整いました。
次回は万が一のためにWordPressのデータをバックアップします。
コメント