インストール
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
rubygemsをRubyForge: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