Info

Archive for

Rails3インストールしたのでscaffoldを使ってみる。

$ rails new blog
      create  
      create  README
      create  Rakefile
      create  config.ru
      create  .gitignore
....
      create  tmp/sockets
      create  tmp/cache
      create  tmp/pids
      create  vendor/plugins
      create  vendor/plugins/.gitkeep
$ 
$ cd blog/

$ rails generate scaffold Post id:integer title:string body:text created:date
      invoke  active_record
      create    db/migrate/20110123154529_create_posts.rb
      create    app/models/post.rb
      invoke    test_unit
      create      test/unit/post_test.rb
....
      create      app/helpers/posts_helper.rb
      invoke      test_unit
      create        test/unit/helpers/posts_helper_test.rb
      invoke  stylesheets
      create    public/stylesheets/scaffold.css
$

$ rake db:migrate
(in /Users/dongrikim/Dropbox/Developer/Rails/blog)
rake aborted!
uninitialized constant Bundler
/Users/dongrikim/Dropbox/Developer/Rails/blog/rakefile:4
(See full trace by running task with --trace)
$

エラーだ。 gem bundler インストールする。

$ sudo gem install bundler
$ bundle install

$ rake db:migrate
(in /Users/dongrikim/Dropbox/Developer/Rails/blog)
rake aborted!
uninitialized constant Bundler
/Users/dongrikim/Dropbox/Developer/Rails/blog/rakefile:4
(See full trace by running task with --trace)
$

それでも駄目だ。しょうがないのでtraceを見てみる。

$ rake db:migrate --trace
(in /Users/dongrikim/Dropbox/Developer/Rails/blog)
rake aborted!
uninitialized constant Bundler
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:2465:in `const_missing'
/Users/dongrikim/Dropbox/Developer/Rails/blog/config/boot.rb:9
......

どうも古いrakeを参照してるみたい。

$ rake --version
rake, version 0.8.3
$

$ sudo mv /usr/bin/rake /usr/bin/rake.old
$ sudo ln -s /opt/local/bin/rake1.9 /usr/bin/rake
$ rake db:migrate
(in /Users/dongrikim/Dropbox/Developer/Rails/blog)
==  CreatePosts: migrating ====================================================
-- create_table(:posts)
   -> 0.0017s
==  CreatePosts: migrated (0.0020s) ===========================================

$ rails server

rake できたっぽい!

http://localhost:3000/posts/

Advertisements

Snow Leopard デフォルト環境見てみる。

$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
$ ls -l /usr/bin/ruby
lrwxr-xr-x  1 root  wheel  76  9  4  2009 /usr/bin/ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby

$ gem -v
1.3.5
$ ls -l /usr/bin/gem
lrwxr-xr-x  1 root  wheel  71  9  4  2009 /usr/bin/gem1.3.5 -> ../../System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem

$ rails -v
Rails 2.3.5
$ which rails
/usr/bin/rails

ruby, gem, rails順にバージョンアップして行く。

MacPortsでruby1.9をインストール

$ sudo port install ruby19
Password:
--->  Computing dependencies for ruby19
--->  Dependencies to be installed: libffi libiconv gperf libyaml ncurses ncursesw openssl zlib readline
--->  Fetching libffi
.......

$ sudo mv /usr/bin/ruby /usr/bin/ruby1.8.7
$ ln -s /opt/local/bin/ruby1.9 /usr/bin/ruby
$ ruby -v
ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10]
$ 

最新版gemインストール
http://rubyforge.org/frs/?group_id=126 から rubygems-1.4.2.zipダウンロード。

$ ruby setup.rb 
/Users/dongrikim/Downloads/rubygems-1.4.2/lib/rubygems/source_index.rb:62:in `installed_spec_directories': undefined method `path' for Gem:Module (NoMethodError)
	from /Users/dongrikim/Downloads/rubygems-1.4.2/lib/rubygems/source_index.rb:52:in `from_installed_gems'
	from /Users/dongrikim/Downloads/rubygems-1.4.2/lib/rubygems.rb:914:in `source_index'
	from /Users/dongrikim/Downloads/rubygems-1.4.2/lib/rubygems/gem_path_searcher.rb:83:in `init_gemspecs'
	from /Users/dongrikim/Downloads/rubygems-1.4.2/lib/rubygems/gem_path_searcher.rb:13:in `initialize'
	from /Users/dongrikim/Downloads/rubygems-1.4.2/lib/rubygems.rb:873:in `new'
	from /Users/dongrikim/Downloads/rubygems-1.4.2/lib/rubygems.rb:873:in `searcher'
	from /Users/dongrikim/Downloads/rubygems-1.4.2/lib/rubygems.rb:495:in `find_files'
	from /Users/dongrikim/Downloads/rubygems-1.4.2/lib/rubygems.rb:1034:in `load_plugins'
	from /Users/dongrikim/Downloads/rubygems-1.4.2/lib/rubygems/gem_runner.rb:84:in `'
	from :29:in `require'
	from :29:in `require'
	from setup.rb:25:in `'
$

エラーで落ちた。ググッてみるとどうもruby1.9.2 からはgemがデフォルトで入ってるようでインストール必要なし。

$ gem1.9 -v
1.3.7
$ which gem1.9
/opt/local/bin/gem1.9
$ sudo mv /usr/bin/gem /usr/bin/gem1.3.5
$ sudo ln -s /opt/local/bin/gem1.9 /usr/bin/gem
$ gem -v
1.3.7
$

Railsのインストール

$ sudo gem install rails
$ sudo mv /usr/bin/rails /usr/bin/rails2.3.5
$ sudo ln -s /opt/local/bin/rails /usr/bin/rails
$ rails -v
Rails 3.0.3
$

これでRails3になった。

前回 MacにGitをインストールしたので、今回は github を使ってみる。

1. アカウント登録
https://github.com/plans で無料アカウント登録する。
2. リポジトリを作成
https://github.com/repositories/new でリポジトリを新規作成する。
3. リポジトリにコミットしてみる

$ git config --global user.name "******"
$ git config --global user.email ******@gmail.com
$ cd ~/Dropbox/Developer/HTML5/
$ git init
$ git add *
$ git commit -m 'first commit'
$ git remote add origin git@github.com:dongrikim/HTML5.git
$ git push origin master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
$ 

エラーだ!失敗した。

4. publickey 作成

$ ssh-keygen -t rsa -C "******@gmail.com"
$ less ~/.ssh/id_rsa.pub

コピーする。
https://github.com/account SSH公開鍵を選択して新規作成する。
キーのところにコピーしたやつを貼り付ける。
もう一回pushしてみる。

$ git push origin master

今度は成功!

プラウザから確認。

1. http://kernel.org/pub/software/scm/git/ から最新版をダウンロード。(git-1.7.3.tar.gz)
2. 解凍、インストール。

$ tar xvfz git-1.7.3.tar.gz
$ cd git-1.7.3
$ ./configure
$ sudo make prefix=/usr/local all
$ sudo make prefix=/usr/local install
$ git --version
git version 1.7.3

MacPortsを使ってインストールする場合は以下のようになる。

$ sudo port install git-core +doc +svn

Mac OS X Package (.pkg) Installer 使えばGUI環境でインストールできるが、今回はソースコードからインストールするようにした。

1. http://distfiles.macports.org/MacPorts/ から MacPorts-*.*.*.tar.gz ファイルをダウンロード。

2. 解凍する。

$ tar xzvf MacPorts-*.*.*.tar.gz

3. インストール

$ cd MacPorts-*.*.*
$ ./configure
$ make
$ sudo make install

4. 確認

$ ls -l /opt/local/
total 8
drwxr-xr-x  7 root  admin  238  1 21 12:42 bin
drwxr-xr-x  3 root  admin  102  1 21 12:42 etc
drwxr-xr-x  2 root  admin   68  1 21 12:42 include
drwxr-xr-x  3 root  admin  102  1 21 12:42 lib
drwxr-xr-x  2 root  admin   68  1 21 12:42 libexec
lrwxr-xr-x  1 root  admin    9  1 21 12:42 man -> share/man
drwxr-xr-x  2 root  admin   68  1 21 12:42 sbin
drwxr-xr-x  7 root  admin  238  1 21 12:42 share
drwxr-xr-x  2 root  admin   68  1 21 12:42 src
drwxr-xr-x  3 root  admin  102  1 21 12:42 var
drwxr-xr-x  2 root  admin   68  1 21 12:42 www
$

5. 環境変数の追加

$ export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
$ export MANPATH=/opt/local/man:$MANPATH

6. 最新状態に更新

$ sudo port selfupdate

NexusOne使ってて一番の不満は自分が好きな日本語入力IMEがないこと。Googleは中国語、韓国語IMEは配布してるが日本語IMEはない!ネットでいろいろ探してみたが、Simeji、OpenWnnPlusばっかり! 5年近くスマートフォンを使った僕はQWERTYキーボードしか使えない。絵文字とか、フリック入力とかはどうでもいい。最終的にOpenWnnPlusをインストールして使ってたが、毎回QWERTYキーボードに変更しないといけない。偶然だが、開発でAndroid Emulatorで日本語入力が必要になったので、設定してみたらJapanese IMEというものが余計な機能なしで使いやすい!Dev Toolで内部に入ってたら結局はOpenWnnだった。それでもいいんでなんとかしてそれを取り出してNexusOneにインストールできないか考えてみた。ついに成功!

1. Android SDKをインストールする。
2. Android Emulatorを起動。
3. Terminal を起動して以下のコマンドでapkファイルを取り出す。

$ adb pull /system/app/OpenWnn.apk

4. Android Emulatorを終了。
5. NexusOneをMacに繋げる。
6. Terminal を起動して以下のコマンドでapkインストール。

$ adb install OpenWnn.apk

以上で完了。

1. 766a101ae02c.signed-passion-ota-60505.766a101a.zip ダウンロード。
2. update.zip にリネームしてSDカードに入れる。
3. 電源を OFF
4. ボリュームダウンを押しながら電源を入れる。
5. RECOVERY を選択して電源ボタンを押す。
6. RECOVERY ドロイドが表示されたら、電源ボタンを押しながらボリュームアップを押す。
7. wipe data / factory reset を実行する。(カスタムRomから戻す場合には必須です)
8. apply sdcard : update.zip を実行する。
起動後には FRG83 になりますが、OTAが来てFRG83Dになる。

カスタムROMを入れた場合、OTA適用できなくなるので、標準環境に戻す必要がある。

1. Passion_Google_WWE_1.01.1700.1_ERD79_release ダウンロード。
2. zipファイル解凍する。
3. 本体の電源が切れた状態から、ボリュームダウンキーを押しながら電源を入れる。ボリュームキーでカーソルを上下し、FASTBOOTを選択し電源ボタンで決定する。
4. 以下のコマンドでイメージを復元

 $ fastboot-mac erase userdata #RA-nexusからWipeした場合この2行は不要
 $ fastboot-mac erase cache

 $ fastboot-mac flash userdata userdata.img
 $ fastboot-mac flash boot boot.img
 $ fastboot-mac flash system system.img
 $ fastboot-mac flash recovery recovery.img #リカバリを標準に戻したくない場合この行を飛ばす

 $ fastboot-mac reboot

これで完了。

ビルド番号
ERD79

まず、Googleに感謝!NexusOneはGoogleが最初から bootloader を unlock する仕組みを組み込んで出荷している。

NexusOneをMacにつなげる。

NexusOne側:
1. 電源をOFFにする。
2. ボリューム下げるボタンと電源ボタンを当時に長押しして電源ON

<VOL UP> to previous item
<VOL DOWN> to next item
<POWER> to selet item

3. ボリュームボタンで FASTBOOT を選択。
4. 電源ボタンを押す。
5. HBOOT ー> FASTBOOT USB に変わる。

Mac側
1. Android SDKをインストール。
2. fastboot.zip をダウンロード。
3. 以下のコメントを打つ

 $ cd fastboot/
 $ sudo ./fastboot-mac oem unlock

4. ラジオボタンで Unclock bootloader を選択。

これでUnlock完了。

ちょっと古いJavaのネタですが…

 System.out.print("011の値は:" + 011);