2011年6月26日日曜日

rails3とrake; 0.9.2 => 0.8.7

rails3の学習にて。modelの作成後にrake db:migrateを実行してエラー発生。
エラー内容は次のとおり。
uninitialized constant Rake::DSL

エラーメッセージをweb検索にかけると、掲示板サイトでakeのバージョンに関する記述を発見。
ver0.9.1に問題があるらしいということで、0.8.7にバージョンダウンしろとある。

早速実践。
◆方法 railsアプリのGemfile内に以下の記述を追加
◆追加 gem "rake", "0.8.7"

上記の記述後、再度rake db:migrateを実行。
今度はエラーメッセージが次のものに変わった。

You have requested:
rake = 0.8.7

The bundle currently has rake locked at 0.9.2.
Try running `bundle update rake`
Run `bundle install` to install missing gems.

rakeのバージョンがまだ0.9.2のようなので、以下のコマンドを投入。
sudo bundle update rake

これでrakeには0.8.7が使用されることになったことがメッセージから確認できるので、rake db:migrateを実行。
今度は無事にテーブルが作成できた。

2011年6月20日月曜日

gemとzlibとSinatra; インストールのタイミング?

Rubyは導入できたので、今度はWebフレームワークSinatraを入れる。大分以前の状態に戻りつつある。
しかし無情なエラーは続く。

gem install sinatra => no such file ... zlib

これも以前引っかかった気がする。調べると、zlib-develが必要らしいという情報があるものの、aptitudeにはそれらしいパッケージがない。気がする。一応いくつかのdevなどの文字が見えるzlib関連パッケージを入れて、gemを実行してみるがうまくいかない。

zlibの公式でソースをもらってきてコンパイル後、再度gem。これもダメ。

一通り思い当たるものを入れ終わったので、念のためRubyの方をconfigureからmakeしなおす。

そうしたら無事に通った。
んー、gemをビルドしたタイミングで必要なライブラリがないと、ずっと参照できない状態になるってことなのかな。

Sinatraのサンプルコードを書いたファイルを起動...無事Hello Worldしてくれた。

aptitudeとRuby; バージョン入力が省けない

aptitudeを使用してパッケージ指定で入れていたところ、rubyがバージョン番号まで入れないと起動できない状態に。
aliasしてみたところ、irbなどは問題がなさそう。しかしsudoしてファイルを実行をしたらエラーが。

alias ruby='ruby1.9.1'
alias irb='irb1.9.1'

irb => ok
sudo ruby test.rb => ファイル名が見つかりません

次にファイル名をリネームしてナンバリング部分を無理やりなくしてみたが、これも別の形でエラーになった。
仕方ないので一旦全部削除し、ソースをコンパイルして入れることにした。
(というか以前のエントリで同じことをやっていたような)

最後にpathを通して終了。
export PATH=$PATH:追加するディレクトリ名

Debian6.0 Squeeze再; 無線LANをもう一度...OK

環境が2点3点して、Debian Squeezeに戻ってみた。
少しずつlinuxの勘どころが分かってきた今日この頃、無線LANの設定も無事完了。
以前引っかかったところなので、念のため備忘。


◆使用しているデバイス:Intel Wireless WiFi Link 5300AGN
◆確認事項:Ubuntu10.10でアクセスポイントに設定されていた「SSISの隠蔽」を外すと繋がったということがあったので、
以下の手順で繋がらない時は必ずアクセスポイント側の設定を見直すこと。

1. まずここでドライバを取得

2. セットのreadmeファイルを参考に、ファームウェアの設定ファイル名を調査
=> /lib/udev/firmware.agent

3. 手順2のファイルに記述されているFIRMWARE用ディレクトリに手順1のドライバを保存
=> /lib/firmware

4. システム => 設定 => ネットワーク接続 からSSISなどの情報を設定する

5. 後はここのSqueeze用の記述を参照し、コマンドを投下すれば...OK

ようやくまともに使えそうで嬉しいよ