Dell PowerEdge 2850への Debian GNU/Linux Wheezyインストールメモ

Dell PowerEdge 2850へのインストールメモ

インストール

2011年9月にメディアを作ったので testing = wheezy だと思っていたら、中身はsqueeze(現在の安定版)だった。それが原因かわからないけどやけにてこずった件。

  • ネットワークの設定はちゃんとしているのにaptを用いたパッケージのインストールがうまくいかない
    • aptを使わないでインストール
    • 「ソフトウェアの選択とインストール」の画面で固まったら、Alt + F1 〜 F4 でttyを切り替えて状況確認
    • どうしても動かないならばpsでプロセスをチェックして aptitude をkillする

Webサーバー、SSHサーバー、メールサーバーの設定でパッケージをインストールした。

wheezyへのバージョンアップ

最近はDebianの安定版リリース速度は早いのだけど、woodyぐらいまでは大変遅く最新のパッケージをなかなか使えなかった。そのトラウマがあるのでtestingを使う。sidを使っても良いのだけどサーバーだと怖い。

Debian Sources List Generatorを用いて、/etc/apt/source.list の中身を生成する。source.listの中身を書き換えたらアップデートする。

# aptitude update

GPGエラーがでる。以下のパッケージをいれて、鍵を更新する。

# aptitude install debian-archive-keyring

wheezyへアップグレードする。

# aptitude safe-upgrade
# aptitude dist-upgrade

aptitude dist-upgrade は 「tar: 未知のオプション `--warning=no-timestamp'」がでて失敗する。理由はtarのバージョンが1.22であり、オプション「--warning=no-timestamp」を扱えないため。他のDebian系のマシンからそのオプションを扱えるtarのバイナリファイルを持ってくるか、/usr/local/以下に公式tarを入れる。私はUbuntu 11.10のtarのバイナリファイル(1.25)をコピーして回避した。

ちゃんと置き換わったか確認。

% more /etc/debian_version
wheezy/sid

トラブル防止のためsudoを導入。ちなみに今この作業をしている原因はrootでカレントディレクトリ / のときに 「\rm -rf *」を実行してしまったから。

# aptitude install sudo
# visudo (誰にsudoを使わせるのかを指定)

UPSとApcupsdを用いて停電時にサーバーを自動で停止させる

UPSとApcupsdを用いて停電時にサーバーを自動で停止させるのとおりにしたい。以下のコマンドでUPSを認識できているかチェック。

% dmesg | grep usb
〜省略〜
[    1.406951] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[    1.406955] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.406958] usb usb4: Product: UHCI Host Controller
[    1.406961] usb usb4: Manufacturer: Linux 3.1.0-1-686-pae uhci_hcd
[    1.406964] usb usb4: SerialNumber: 0000:00:1d.2
〜中略〜
[    2.144022] usb 4-2: new low speed USB device number 2 using uhci_hcd
[    2.339790] usb 4-2: New USB device found, idVendor=051d, idProduct=0002
[    2.339795] usb 4-2: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[    2.339799] usb 4-2: Product: Smart-UPS 1500 RM DLJ2 FW:617.1DLJ2.A USB FW:1.5
[    2.339802] usb 4-2: Manufacturer: American Power Conversion
[    2.339805] usb 4-2: SerialNumber: AS0527210078
〜中略〜
[    9.830971] generic-usb 0003:051D:0002.0001: hiddev0,hidraw0: USB HID v1.10 Device [American Power Conversion Smart-UPS 1500 RM DLJ2 FW:617.1DLJ2.A USB FW:1.5] on usb-0000:00:1d.2-2/input0
〜後略〜

USB機器は認識しているけど接続はしていないっぽい。カーネルを再構築する。

% sudo aptitude install linux-source-3.1 kernel-package make ncurses-dev
% cd /usr/src
% sudo tar xfj linux-source-3.1.tar.bz2
% sudo ln -s linux-source-3.1 linux
% cd linux
% make menuconfig

設定は、UPSとApcupsdを用いて停電時にサーバーを自動で停止させるのとおり。

Ruby on Railsの公開環境用意

rubyをインストール。

% sudo aptitude install ruby-full sqlite3 libsqlite3-dev

rubygemsRubyForge:RubyGemsからダウンロード。

% tar xvfz rubygems-1.8.12.tgz 
% cd rubygems-1.8.12
% sudo ruby setup.rb 

Railsのインストール

% sudo gem1.8 install rails

関連パッケージのインストール

% rails new demo
% cd demo
% vi Gemfile

Gemfileに以下を追加。

gem 'execjs'
gem 'therubyracer'

bundleでインストール。

% bundle install

Ruby on Railsの公開環境の準備

passengerを入れる。

% sudo aptitude install libcurl4-openssl-dev apache2-prefork-dev
% sudo gem1.8 install passenger

モジュールを生成する。

% sudo passenger-install-apache2-module

passenger用のモジュールを用意。/etc/apache2/mods-available/passenger.loadの中身は以下のとおり。

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11/ext/apache2/mod_passenger.so

/etc/apache2/mods-available/passenger.confの中身は以下のとおり。

PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11
PassengerRuby /usr/bin/ruby

モジュールを反映させる。

% sudo a2enmod passenger

railsのソースファイルが/home/hogehoge/rails-serverとし、http://hogehoge.net/rails/でアクセスできるようにするとき、/etc/apache2/sites-available/defaultに以下を加える。

RailsBaseURI /rails

そして、シンボリックリンクをはる。

% sudo -u www ln -s /home/hogehoge/rails-server/public /var/www/rails

Apacheを再起動。

% sudo /etc/apache2 stop
% sudo /etc/apache2 start

PostgreSQLをインストール

% sudo aptitude install postgresql
% sudo gem1.8 install pg

Postfixのインストール

インターネットサーバーを選ぶ。

% sudo aptitude install postfix