Portable Ubuntuを落としてきてやったこと〜rails導入編

唐突ですが、自宅PCにPortable Ubuntuを入れて遊ぼう!ということで!!
若干というかだいぶ乗り遅れている気もしないではないですがその辺りつっこみはなしでお願いしまス。

なにはともあれ本体をDLするところからですよね。
まずは本体を取得してきます。
http://portableubuntu.demonccc.com.ar/
ちなみにボクはSourceforge.netから。

さっくり解凍して"run_portable_ubuntu.bat"を起動します。
問題なく起動することを確認したら、ディスク容量を増やしますです。
さすがに1.8GBは少なすぎるので。
作業にあたり、以下を参考にしました。多謝。
http://portable-ubuntu.of-jp.com/settings/image_disc2/
打ち込んだコマンドはこんな感じ。
Windowsコンソール上

cd Portable Ubuntuのあるフォルダ\Portable_Ubuntu\images
fsutil file createnew rootfs_.img 17179869184

□confファイル編集

#cobd3="D:\Documents and Settings\czw5hv\Application 〜省略〜 # コメントアウト
cobd3=images\rootfs_.img # 追加行

Ubuntuを起動しターミナルから

> sudo su #パスワード入力
> dd if=/dev/cobd0 of=/dev/cobd3
> fsck.ext3 -f /dev/cobd3
> resize2fs -f /dev/cobd3

※パスワードは変更をしていない初期状態だと123456です
で、既存のrootfs.imgを削除してrootfs_.imgをrootfs.imgへ。

それと仮想メモリを増量行っておきます。(インストールフォルダ\config\portable_ubuntu.conf)

#mem=256
mem=512

ここで仮想環境のメモリを増量行っていない場合、ruby-gemを実行した際、以下のようなメッセージのまま止まってしまう現象に悩まされることになります。

Bulk updating Gem source index for: http://gems.rubyforge.org


ここまできたら、細かいところをちょろちょろ。
とりあえず時間帯域を変えます。
バーに日時が表示されていますが、そこを選択。
LocationのプルダウンからEditボタンを押してLocationをAddします。
・・・なんかTokyoでいいのがないんですが、まぁTokyoInternationalAirportでいいかな。
TokyoHeliportってどこだっけ。
これで時間表記がいい具合になりました。
あとはLanguageタブから日本語を設定して、アップデートもかけて、と。

次にapt-getを更新してから、railsを動かせるようにしましょう。
こちらもいたって単純。全てapt-get installでいきます。

> sudo apt-get update 
> sudo apt-get upgrade 
> sudo apt-get install rails
> sudo apt-get install emacs
> sudo apt-get install mysql-client mysql-server
> sudo apt-get install git-core
> git config --global user.name "username"
> git config --global user.email "mailaddress@xxx.xxx"
> git config --global color.ui auto

え?emacsがなくてどうやってソースを書けと?
※ちなみに.emacsは今の仕事で使ってる開発環境と同様のものを作っています!是非皆さんもMy.Emacsを作ってみてください!
それに忘れてはいけないのがDB!と、gitですね!

で、とりあえずPublicフォルダへ移動してプロジェクト生成とDBの作成。
configフォルダのdatabase.ymlにユーザとパスワードを記入して起動、と。
ちなみにdatabase.ymlを書き換え忘れてエラーが出たのは、きみとぼくだけの秘密DA☆
(DBはとりあえず対応するDBの生成後匿名ユーザを削除し、専用のユーザ'rails'を作成しています。
最後にrakeコマンドでDBとの接続を確認し、もしもここでエラーが出たらdatabase.ymlを再確認してください。)

> rails boards
> cd boards
> ruby script/server

> mysql -u root -p
mysql> create database boards;
mysql> show databases;
mysql>  grant all privileges on boards.* to 'rails'@'localhost' identified by 'パスワード文字列' with grant option;
mysql> \q;

> rake db:migrate

んで、http://localhost:3000でアクセス。
おkおk。

ここで後々使うこともある(?)のでopen-uriライブラリにパッチをあてておきます。
(細かい内容はソース嫁ですが、open-uri.rbのLine102-116,128-131が追記されてLine95,99で引き数へ追加と非常にシンプルです。更に気になる方は”open-uriは便利だがGETしかできないので何とかする話”こちら参照されるとよいかも。)
ライブラリにパッチ!!といっても非常に単純で、以下コマンドでいけます。

$ cd /mnt/C/Ruby/src/ruby-1.8.6-p287/lib
$ wget http://rubyforge.org/tracker/download.php/426/1700/6321/890/diff-1.8
$ sudo apt-get install patch
$ patch open-uri.rb diff-1.8

これは素晴らしくお手軽にHTTP通信をこなしてくれるopen-uriライブラリに、折角だしPOSTとかPUTとか色々サポートして欲しい!というような感じ。で。
完全にわき道ですが、もしもサーバ環境等でパッチとか無理!ていうかそのあたりは触れないんだよ!
という場合は以下のような感じで実装するといいかも?dis待ちちゅ><

private
  def open_post_uri( url, type, value )
    uri = URI.parse( url )
    Net::HTTP.start( uri.host, uri.port ){ |http|
      # create request instance
      request = Net::HTTP::Post.new( uri.path )
      # header
      request['user-agent'] = "Ruby/#{ RUBY_VERSION } HttpClient"
      # body( The second argument can be omitted. )
      request.set_form_data( { type => value }, '&' )
      # send
      response = http.request( request )
      return response.body
    }
  end

以上環境はこんな感じで!
次回はここから簡単なアプリケーションを作ろうと思います!!
がんばろう。