読者です 読者をやめる 読者になる 読者になる

さくらのVPSにUbuntuをインストールしimotenを使うまで

さくらのVPSに申し込んでみました。

DTIの格安VPSも使っていたのですが、

  • 環境がCentOS固定
  • 使用できるメモリ領域が少なく、SWAP確保されていないためプロセスが落ちる
  • 結果、javaやyumすらまともに動かない

という状態であり、最低限の目標であるimotenを動かしてi-modeメールをGmailに転送できるようにするという目標を達成するので精一杯でした。 しかもちょくちょく再起動をかけないとこっそりプロセスが停止していることもありました。

さくらのVPSが、DTIのサービスよりも使い勝手がよく、なおかつimotenが安定動作するのであれば、のりかえてもいいのではないか… というわけで、さくらのVPSでimotenを動かすに至るまでの経緯をまとめてみます。

Ubuntuをインストール

どうやら、シリアルコンソールまで使えるために、UbuntuやFreeBSDをインストール可能だという情報を見つけることができました。CentOSよりは気軽に使うためにUbuntuをインストールすることにします。

まず、CentOSを起動しますが、再起動をかけた際に固まってしまうので、初期化しました。 そこから下記の記事を参考に作業をスタートです。


さくらのVPSを Debian GNU/Linux で使う http://www.touki.info/howto/howtoSakuraDebian.html

さくらのVPSにUbuntu 10.04 LTSをインストールしてみた - 讃容日記 http://d.hatena.ne.jp/rsky/20100805/1280997774

さくらのVPSにUbuntuをインストールする - cdeeの日記 http://d.hatena.ne.jp/cdee/20100830/ubuntu_on_sakura_vps

ネットワークの設定確認

  $ sudo ifconfig eth0

IPアドレスと、サブネットマスクをメモしてください。 私の場合には、「59.106.x.x」「255.255.254.0」でした。 サブネットマスクがよくある「255.255.255.0」でないことに注意します。

  $ route

ルーティング情報(デフォルトゲートウェイ)をメモしておきます。 「59.106.x.1」でした。

  $ cat /etc/resolv.conf

DNSの情報を確認します。 「210.188.224.10」「210.188.224.11」でした。

インストーラの取得展開

  cd /tmp
  curl -O http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-amd64/current/images/netboot/netboot.tar.gz
  mkdir /boot/ubuntu-netboot
  tar xfzv netboot.tar.gz -C /boot/ubuntu-netboot

ブートローダの設定

/boot/grub/grub.conf に以下の内容を追記します。 元の記事の時点にくらべて、インストーラのディレクトリ構成が変わっているのに気がついたので記述する内容は以下のとおりとなりました。

  title Ubuntu 10.04 LTS install
  root (hd0,0)
  kernel /ubuntu-netboot/ubuntu-installer/amd64/linux ro root=LABEL=/ console=tty0 console=ttyS0,115200n8r
  initrd /ubuntu-netboot/ubuntu-installer/amd64/initrd.gz

インストール

インストール時の質問への答え、ディスク構成などは、さくらのVPSにUbuntuをインストールする - cdeeの日記を参考にして作業しました。

以下は、sshでUbuntuにログインできる状態を確立した後の作業です。

imotenを動かす

imotenとは…iモード.netを経由させることでPC上のメーラーやスマートフォンでiモードメールを読めるように転送するプログラムです。

imoten - Project Hosting on Google Code http://code.google.com/p/imoten/

このページの記述が参考になるでしょう。

iモード.net対応メール転送ソリューション「imoten」 - きょん☆あLabs@はてな http://d.hatena.ne.jp/kyunga/20100121/1264084408

私はiモード通信量を徹底的に削減するために、iモードメールをimotenを使ってGmailやad[es]に転送しています。 以前は、自宅MacOSXのマシン上で動かしていたのですが、常時マシンを上げておく電気代などを考慮すると、VPS上で動かすのがコスト上もメリットが出ると考えています。

javaのインストール

imotenはjavaで動作しているので、Ubuntuにインストールしてやる必要があります。 DTIの環境で実績のあるSun Javaでいくことにします。

Ubuntu 10.04 で sun-java-6 をインストール - YoshioriのBlog http://d.hatena.ne.jp/Yoshiori/20100505/1273040380

ただ、サーバ版では、add-apt-repositoryが使えなかったので、python-software-propertiesを追加でインストールしています。

  $ sudo aptitude install python-software-properties
  $ sudo add-apt-repository 'deb http://archive.canonical.com/ lucid partner'
  $ sudo apt-get update 
  $ sudo aptitude install sun-java6-jdk sun-java6-jre java-wrappers

imotenを起動させる

imoten付属のInstall.txtにしたがって、インストールを実施していきます。 chkconfigについては後述します。

javaのフルパスは「/usr/bin/java」です。

しかし、

/etc/init.d/imoten start

を実行しても、"/usr/local/imoten/bin/./wrapper-linux-x86-32: No such file or directory"と言われてしまいます。

正直amd64版Ubuntuではなくi386版をインストールしておけばよかったのかな…と思いながらも、切り分けをこころみてみました。 Install.txtにある、その他の起動方法をためしてみます。

  • Wrapperを経由せず、java直接起動で動くか? → Yes メール転送もできた
  • $ sudo imoten console の実行結果 → "/usr/local/imoten/bin/./wrapper-linux-x86-32: No such file or directory"

やっぱりwrapperを噛ませるとうまく動作しない…ここで気がつきました。 64bitの環境のくせに、32bit用のwrapperを読みにいこうとしているっぽい… ということは、64bit用wrapperを32bit用の「名前」にしてしまえばよくね?

  $ cd /usr/local/imoten/bin
  $ sudo mv wrapper-linux-x86-32 wrapper-linux-x86-32.orig
  $ sudo ln -s wrapper-linux-x86-64 wrapper-linux-x86-32

そして、/etc/init.d/imoten start を実行すると…動きはじめました。 本来はもっと別のより正しいとされるやり方があるかもしれませんが、ツッコミを待って、ひとまずよしとします。

再起動時も自動でバックグラウンド起動

UbuntuにはCentOS(他redhat系のディトリビューション)にあるchkconfigコマンドがありません。 調べてみると、chkconfigの代わりはsysv-rc-confというものだとわかりましたので、

  $ sudo apt-get install sysv-rc-conf
  $ sudo sysv-rc-conf --level 2345 imoten on
  $ sudo sysv-rc-conf --list imoten
  imoten       2:on       3:on    4:on    5:on

コントロールパネルから再起動後

  $ ps aux | grep imoten

を実行してimotenが起動していることが確認できました。

これで乗り換えの踏ん切りがつきます。

[tmkm-amazon]1596822058[/tmkm-amazon]