あったらしくるえるはてなくしょん

id:kskmeuk あったらしく

MacBook の VMWare fusion で Ubuntu 9.10 いれて、Ruby 1.9.1 on Rails 2.3.4 がどうにか動いて、それが Apache で動く... ところまでは、いけなかったでやんす。

トータルユニークアクセスユーザが30万越えたら、へんなことばっかり書いてないで、エンジニアなブロガーとして復帰する事にしていたので、エンジニアに戻ります。正直、カスみたいなエンジニアなんですけど、みんなにおいつこうと思います。つくってみたいものもあるし。遊ぶ方法は多い方が言いし、楽しいことは楽しいですよね。こんばんは。ちなみに、たぶん、これからもいろんなことも書くよ。

というわけで、さわりだけ読んでいた、キリンさんの子どものはじめてのRuby ですが、どうせならRuby on Rails って少しも触った事なかったなと思い、セットアップに挑戦。いろいろ出来る方が楽しい!! し、応用先が見えていて基礎練習する方が楽しい。フレームワークでできることはフレームワークでやっちゃうべきだし、プログラムの方でかっこ良く書ける事は、念能力のように奥が深い。はたらけ冨樫。

はじめに VMWare fusionUbuntu の設定。

せっかくなので、Ubuntu 9.10 をいれてみました。これまた、ずいぶんかっこ良くなったものですね...。日本語 Remix CDよりも、グローバル版をとってきて、日本語リソースを language suppot から入れる方が好きです。はじめの /home の "デスクトップ" とか、カナなのが苦手なので...。

私のMacBook ときたら、JIS なんですよ。初めに研究室で触ったMac がJISだったのと、かな/英数の動作が結構好きで*1。ところが、こいつと、VMWare fusionUbuntu の相性が非常に悪い!! 本当に悪い!! 爆発しろ!! って言ったらMacBookとか本当に爆発しかねないから、そこまでは言わないのだけど、この組み合わせだと、英数キーが Caps Lock になっちゃうんだよね...。それでずっと困っていたら解消方法がのっていた!! *2

で、英数のキーアサインを変える方法を提示してくれてる方が居て、とっても助かりました。
=> Linux on VMWare Fusionで無変換キーを使う - 『ばぶる』のポジティブ日記

あとは、iBus の設定でかなキーで切替の設定をしてだいぶいい感じ。これで俄然やる気が出て来た。環境重要。マジ。絶対。いじめかっこわるい。

Mac使いになってこういうおのまんどくせってした自分のせいなんだけど、昔よりこういう感は鈍っちゃったな...。 前は、IBMのクリクリキーボードを認識させて... とか出来てたもんだけどね...orz
で、Linux デスクトップがどうなってるか知りたいとかもあって、Server 版ではなくて、Desktop 版でやりました。Server 版は EC2 でも使えばいいしね。触りたくなったらね。

あと余談だけど、使ってて思ったけど、やっぱり私は rpm よりも deb 系の方が好きかな..、と思う。どっちにもそれぞれ良さがあるけどね。Ubuntu は特に sudo と、sudo -s と使いわけできればとりあえずはなんとかなるね。

で、定番ですが、apt-get の update と upgrade をとりあえず実施したり。aptitude ってのも今はあるらしい。

Ruby 1.9.1 , gem , rails なんかをいれてみる。

ちょっと面白がってというか、どういうことが発生するのかしりたかったので、ソースからいれました。リハビリ人柱的な...。
後から gem をいれるときに必要になるので、 zlib1g-dev , libssl-devel あと、sql の類いや apache なんかもこれらは apt からいれときます。あとで使います。ruby も apt でいれてもよかったのかもしれない。ははは。まあ折角なので。/usr/src に、ソース持って来て、展開して、./configure して make して make install 。

特に Ruby の方の諸設定は、
moco β版 更新ログ: [開発環境]VMWare + Ubuntu 8.04 に Rails 開発環境 こちらと、
あわせて、Ubuntu 8.04でソースからRuby 1.9.1 + Rails 2.3.2をインストール(stow使用) - mumoshu.log こちらを参照させていただきました。ありがとうございました。あの libssl-devel とってきてから、ext/openssl で、ruby extconf.rb して make したりするのですね。

passenger というのをとりあえずいれてみる。

RoR のデフォルトのサーバが Webrick というのらしいのですが、apache で使えた方がなにかと良さそうな気がするので、passenger という apache と連携できる子を設定します。

$sudo gem install passenger

してから、

$sudo passenger-install-apache2-module

すると、

Installation instructions for required software
Checking for required software...

* GNU C++ compiler... not found
* Ruby development headers... found
* OpenSSL support for Ruby... found
* RubyGems... found
* Rake... found at /usr/local/bin/rake
* Apache 2... found at /usr/sbin/apache2
* Apache 2 development headers... not found
* Apache Portable Runtime (APR) development headers... not found
* Apache Portable Runtime Utility (APU) development headers... not found

Some required software is not installed.
But don't worry, this installer will tell you how to install them.

とか丁寧に教えてくれます。必要なものがないんだけど、心配しなくていいのよ坊や。と。

しかも、

Installation instructions for required software

* To install GNU C++ compiler:
Please run apt-get install build-essential as root.

* To install Apache 2 development headers:
Please run apt-get install apache2-prefork-dev as root.

* To install Apache Portable Runtime (APR) development headers:
Please run apt-get install libapr1-dev as root.

* To install Apache Portable Runtime Utility (APU) development headers:
Please run apt-get install libaprutil1-dev as root.

順番に以下のコマンドを実行したまえ、坊やとおしえてくれます。優しいのね。全部 sudo でやってみる。

いれた後で、もっかい、

$sudo passenger-install-apache2-module

そしたら、今度は通って、

                                                                                      • -

The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5
PassengerRuby /usr/local/bin/ruby

After you restart Apache, you are ready to deploy any number of Ruby on Rails
applications on Apache, without any further Ruby on Rails-specific
configuration!

Press ENTER to continue.

キター!! なのかな。もう、おまいさんは、ApacheRuby on Rails を使えるぜってなった!! ...ぽい。httpd.conf に書いてねって言われた。

しかも、デプロイにおすすめの方法やなんかも教えてくれるんだね。

                                                                                      • -

Deploying a Ruby on Rails application: an example

Suppose you have a Ruby on Rails application in /somewhere. Add a virtual host
to your Apache configuration file, and set its DocumentRoot to
/somewhere/public, like this:


ServerName www.yourhost.com
DocumentRoot /somewhere/public # <-- be sure to point to 'public'!

And that's it! You may also want to check the Users Guide for security and
optimization tips and other useful information:

/usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/doc/Users guide Apache.html

さて、RoR ってどう使うんだろ...www orz

Google 先生にチュートリアルを伺う

http://rails.to/files/four-days-on-rails-2.3-ver-1.0.pdf とりあえず、初歩の使い方だけ知りたいし、助かるありがとう!!
とりあえず、何すればいいか見たら....

$rails ToDo

ってやると、勝手にいっぱいフォルダが出来る!! ビバrails!! ライブでもやろうか!! ってくらい、楽しくなってきた。

$cd ToDo
$ruby server/script

ってやる。 http://localhost:3000 にアクセス。

とりあえず、なんかでた。

まちがってなかったらしい。じゃあ、apache にさっきの設定書いたらいけるのかしら...ということで、Passenger の設定をしてみる、alias と ディレクトリ設定を書くと... http://localhost/ でも動いた!! っぽいけど、とりあえず ソース表示させてるだけっぽいw でもいい、たくましく育って欲しい。

scaffold ってあったよね。

そういえば、前に、Mac の locomotive とかで、やったことがあったかもしれない。あのときは言語恐怖症とかになっていて、動けなかったんだけど、なんかあったね。と思い出して来た...。若干、ぐれてた三井寿な気分。でも、まあどうにかなるか。何かをはじめるのに遅すぎる事はないよね。早すぎる事もないけど。

そしたら、今度は別の問題に遭遇した。scaffold で吐き出すコードが ruby 1.9.1 + rails 2.3.4 はあんまり相性がよろしくないらしい。
http://blog.heartofsword.net/archives/337 こちらの件に遭遇したり、 Google グループ 2.3.3 に戻せば? とか言われてる。

とりあえず、参照元にしたがって、ActiveSupport の中身の #46行目を同様に書き換えて、ポート3000でアクセス...

おお!! 動いた。

で、ここに今度 passenger のごく基本設定だけしたうえで、ポート 80からアクセスしたら、Internal Server Error になっちゃう。

...orz

Google グループ mysql との兼ね合いでいってるんじゃね? って指摘があるんだけど.. .さて。

http://d.hatena.ne.jp/yoshioo/20090818/1250597191 む、passenger が、Ruby 1.9.1 だとそもそもだめなのかな...?

ということで、疲れたので、リハビリかねたヒトバシラーもおしまい。まあ、その、思い知った感じ...w

感想を...

  • Ubuntu 9 はなかなか素敵。英数設定書き換えられるのは実にうれしい!!
  • Ruby や gem は確かに便利っぽい。あと、Ruby は yugui さんの、キリンの子どもの本がわかりやすいし、ためになるし、言語自体素敵なところがある。
  • Ruby 1.9.1 自体は速度アップとか評判いいけど、まわりがついてってなさげ。Rails しかり、他のモジュールしかり...
  • そのせいか Rails って、本当にべんりなのかな...。そのメリットまではわからなかった...。GAEで、PythonDJango の方が好きかもしれないところはある。私は、いままでのエントリの文章そのままに行儀もわるければ考えてる事がぐちゃぐちゃなので、きつめのプログラミング言語か、ぐっちゃぐちゃな方があうかもしれない。まあ、何より私の理解が足りないところもあるしね、Rails は今はちょっと中途半端だったりするかも?*3
  • まあ、あせらず少しずつね...

というわけで、メガテンと同じくらいは楽しかったので、回復基調にはあるみたい。だけどね、あんまりリハビリきつすぎると、また、うっ...! となるかもしれません。設定系はまだどうにかいけるみたいです。

*1:今はUSの方が欲しいです。

*2:Windows の方は解決できたんだけどね... MacBook Windows XP@VMWare Fusion の英数キーでIMEをオフにする方法 改訂版 - くるえるはてなくしょん

*3:お手軽でいい意味でこだわらないなら、CakePHP とかあるし... 他にもいろいろあるし