ubuntu14.04で最新のnginxをインストールする
現在ubuntu14.04で運用しているこのブログですが、nginxのバージョンが古かった! *1
$ nginx -v
nginx version: nginx/1.4.6 (Ubuntu)
apt-getで普通に入れると現在1.4系が入るようなのでもう少し新しくしたいと思います。
そのために必要な作業は以下の通り。簡単なお仕事のようですので一気にやっちゃいます。
- sources.list にリポジトリを追加して
- apt-get update
今回は安定版の最新を入れてみることにします。
echo "deb http://nginx.org/packages/ubuntu/ trusty nginx" | sudo tee -a /etc/apt/sources.list
echo "deb-src http://nginx.org/packages/ubuntu/ trusty nginx" | sudo tee -a /etc/apt/sources.list
これでapt-get updateをしてから、インストールを打ちましたが以下のようなエラーが。
$ sudo apt-get install nginx
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージはアップグレードされます:
nginx
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 294 個。
384 kB のアーカイブを取得する必要があります。
この操作後に追加で 909 kB のディスク容量が消費されます。
取得:1 http://nginx.org/packages/ubuntu/ trusty/nginx nginx amd64 1.6.2-1~trusty [384 kB]
384 kB を 1秒 で取得しました (283 kB/s)
(データベースを読み込んでいます ... 現在 143587 個のファイルとディレクトリがインストールされています。)
Preparing to unpack .../nginx_1.6.2-1~trusty_amd64.deb ...
Unpacking nginx (1.6.2-1~trusty) over (1.4.6-1ubuntu3) ...
dpkg: error processing archive /var/cache/apt/archives/nginx_1.6.2-1~trusty_amd64.deb (--unpack):
'/etc/logrotate.d/nginx' を上書きしようとしています。これはパッケージ nginx-common 1.4.6-1ubuntu3 にも存在します
E: Sub-process /usr/bin/dpkg returned an error code (1)
仕方がないので、サービスを一瞬止めましてnginx-commonを削除することにしました。
そしたらどうも最新のnginxのインストールも同時に行われる様子。
$ sudo service nginx stop
$ sudo apt-get remove nginx-common
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
nginx
以下のパッケージは「削除」されます:
nginx-common nginx-core
以下のパッケージはアップグレードされます:
nginx
アップグレード: 1 個、新規インストール: 0 個、削除: 2 個、保留: 292 個。
384 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に 291 kB のディスク容量が解放されます。
続行しますか? [Y/n] Y
dpkg: nginx-core: 依存関係に問題があります。しかし要求に従い削除しています:
nginx は以下に依存 (depends) します: nginx-core (>= 1.4.6-1ubuntu3) | nginx-full (>= 1.4.6-1ubuntu3) | nginx-light (>= 1.4.6-1ubuntu3) | nginx-extras (>= 1.4.6-1ubuntu3) | nginx-naxsi (>= 1.4.6-1ubuntu3) ...しかし:
パッケージ nginx-core は削除されようとしています。
パッケージ nginx-full はまだインストールされていません。
パッケージ nginx-light はまだインストールされていません。
パッケージ nginx-extras はまだインストールされていません。
パッケージ nginx-naxsi はまだインストールされていません。
nginx は以下に依存 (depends) します: nginx-core (<< 1.4.6-1ubuntu3.1~) | nginx-full (<< 1.4.6-1ubuntu3.1~) | nginx-light (<< 1.4.6-1ubuntu3.1~) | nginx-extras (<< 1.4.6-1ubuntu3.1~) | nginx-naxsi (<< 1.4.6-1ubuntu3.1~) ...しかし:
パッケージ nginx-core は削除されようと�
(データベースを読み込んでいます ... 現在 143585 個のファイルとディレクトリがインストールされています。)
Removing nginx-core (1.4.6-1ubuntu3) ...
Removing nginx-common (1.4.6-1ubuntu3) ...
Processing triggers for man-db (2.6.7.1-1) ...
(データベースを読み込んでいます ... 現在 143571 個のファイルとディレクトリがインストールされています。)
Preparing to unpack .../nginx_1.6.2-1~trusty_amd64.deb ...
Unpacking nginx (1.6.2-1~trusty) over (1.4.6-1ubuntu3) ...
Processing triggers for ureadahead (0.100.0-16) ...
nginx (1.6.2-1~trusty) を設定しています ...
設定ファイル /etc/logrotate.d/nginx を新規にインストールしています ...
設定ファイル /etc/init.d/nginx を新規にインストールしています ...
設定ファイル /etc/default/nginx を新規にインストールしています ...
設定ファイル /etc/nginx/win-utf を新規にインストールしています ...
設定ファイル /etc/nginx/mime.types を新規にインストールしています ...
設定ファイル /etc/nginx/koi-win を新規にインストールしています ...
設定ファイル /etc/nginx/scgi_params を新規にインストールしています ...
設定ファイル /etc/nginx/uwsgi_params を新規にインストールしています ...
設定ファイル /etc/nginx/koi-utf を新規にインストールしています ...
設定ファイル /etc/nginx/fastcgi_params を新規にインストールしています ...
Configuration file '/etc/nginx/nginx.conf'
==> Modified (by you or by a script) since installation.
==> パッケージ配布元が更新版を提供しています。
どうしますか? 以下の選択肢があります:
Y か I : パッケージメンテナのバージョンをインストールする
N か O : 現在インストールされている自分のバージョンを残す
D : 両バージョンの差異を表示する
Z : 状況を調査するためにシェルを開始する
デフォルトでは現在使っている自分のバージョンを残します。
*** nginx.conf (Y/I/N/O/D/Z) [デフォルト=N] ?
Processing triggers for ureadahead (0.100.0-16) ...
$ sudo service nginx start
/etc/nginx/nginx.confを残すかどうか最後に聞かれたので今回は残しました。
そしてnginxを起動したところこれまで通り起動して動きました。
$ nginx -v
nginx version: nginx/1.6.2
バージョンも1.6.2になってますね。
今回の作業はここまで。
以下のスクリプトが作業を進めるのに参考になりましたのでメモとしてGistのコードを貼っておきます。
Install the latest nginx from source for Ubuntu 14 ...