Railsã»ãã¥ãªãã£ã¢ãããã¼ãã¸ã®å¯¾å¦æ³
2013/01/30
仿ï¼2013å¹´1æï¼ãRuby on Railsã«2ã¤ã®èå¼±æ§ãç¸æ¬¡ãã§çºè¦ãããã¢ãããã¼ãããªãªã¼ã¹ããã¾ããã
- http://weblog.rubyonrails.org/2013/1/8/Rails-3-2-11-3-1-10-3-0-19-and-2-3-15-have-been-released/ (2013/01/08)
- http://weblog.rubyonrails.org/2013/1/28/Rails-3-0-20-and-2-3-16-have-been-released/ (2013/01/28)
1çªç®ã®èå¼±æ§ã®å¯¾è±¡ã¨ãªãRailsã®ãã¼ã¸ã§ã³ã¯ã2.3.0ãã2.3.14ã3.0.0ãã3.0.18ã3.1.0ãã3.1.9ã3.2.0ãã3.2.10ã
2çªç®ã®èå¼±æ§ã®å¯¾è±¡ã¯ã2.3.0ãã2.3.15ã3.0.0ãã3.0.19ã
ãããããæ¥µãã¦æ·±å»ãª(extrenely critical)ãã¨ãã形容ä»ãã§ã¢ãã¦ã³ã¹ããã¦ãã¾ããç´ã¡ã«ã¢ãããã¼ããé©ç¨ãã¹ãã§ãã
ããããä»ã®èª°ãï¼éçºä¼ç¤¾ã¨ãç¥äººã¨ãï¼ã«Ruby on Railsã§ä½ã£ã¦ããã£ãWebãµã¤ããéç¨ãã¦ãã¦ãèªåèªèº«ã¯ã¨ã³ã¸ãã¢ã§ã¯ãªãããã®èª°ãã¨ãé£çµ¡ãåããªãï¼åãã«ããï¼ã¨ããå ´åã¯ãã©ãããã°ããã§ããããã
ååã¨ãã¦ã¯ãã¯ãRailsã«è©³ãã人ã«ç¸è«ãã¹ããªã®ã§ãããäºç®ã®é¢ä¿ã§ãããè¡ããªããã¨ãããã§ãããã以ä¸ã坾妿³ã説æãã¾ãã
注æ å®éç¨ä¸ã®Webãµã¤ãã«å¯¾ãã¦ãã®è¨äºã§æ¸ããããã¨ã宿½ããã¨ãå ´åã«ãã£ã¦ã¯Webãµã¤ããæ£å¸¸ã«æ©è½ããªããªãå¯è½æ§ãããã¾ããèªå·±è²¬ä»»ã§ãé¡ããã¾ãã
æåã«ç¢ºèªãããã¨
ã¾ãã¯ã以ä¸ã®ç¹ã確èªãã¾ãããã
- ãµã¼ãã¼ãã·ã³ã«ãã°ã¤ã³ã§ãããã
- Webãµã¤ãã®ããã¥ã¡ã³ãã«ã¼ãã¯ã©ããã
ãããã®æ å ±ã¯ããã®èª°ãããåãåã£ã¦ããã¯ãã§ããåãåã£ã¦ããªãã¨ããã°ãå°ã話ãè¤éã«ãªãã¾ããå°éå®¶ã«ç¸è«ãã¹ãã§ãã
Railsã®ãã¼ã¸ã§ã³ã調ã¹ã
次ã«ãRailsã®ãã¼ã¸ã§ã³ã調ã¹ã¾ããä»®ã«ããã¥ã¡ã³ãã«ã¼ãã /var/rails/example/current/public
ã ã¨ããã°ããã®è¦ªãã£ã¬ã¯ããªï¼ããããRailsã«ã¼ããã£ã¬ã¯ããªãã¨å¼ã³ã¾ãï¼ã«ç§»åãã¾ãã
$ cd /var/rails/example/current/
Gemfile
ã®æç¡ã調ã¹ã¾ãã
$ ls Gemfile
ããã° Gemfile
ã¨ããªããã° No such file or directory
ã¨ãã£ãã¨ã©ã¼ã¡ãã»ã¼ã¸ï¼ç°å¢ã«ãã£ã¦ç°ãªãã¾ãï¼ã表示ããã¾ãã
Gemfile
ãåå¨ããå ´å
Gemfile
ã®ä¸èº«ã表示ãã¾ãã
$ less Gemfile
次ã®ãããªè¨è¿°ãããã¯ãã§ãã
gem 'rails', '3.2.4'
ãã® 3.2.4
ãRailsã®ãã¼ã¸ã§ã³çªå·ã§ãã
Gemfile
ãåå¨ããªãå ´å
config
ãã£ã¬ã¯ããªã« environment.rb
ã¨ãããã¡ã¤ã«ã®ä¸èº«ã表示ãã¾ãã
$ less config/environment.rb
次ã®ãããªè¨è¿°ãããã¯ãã§ãã
RAILS_GEM_VERSION = '2.3.9' unless defined? RAILS_GEM_VERSION
ãã® 2.3.9
ãRailsã®ãã¼ã¸ã§ã³çªå·ã§ãã
Railsã®ãã¼ã¸ã§ã³ã2.3.0æªæºã®å ´å
ä»åçºè¡¨ãããèå¼±æ§ã§ã¯ã2.3.0æªæºã®ãã¼ã¸ã§ã³ã¯å¯¾è±¡ã«å ¥ã£ã¦ãã¾ãããããã¯ã2.3.0æªæºãªã大ä¸å¤«ãã¨ããæå³ã§ã¯ãªããã2.3.0æªæºã¯ãµãã¼ãå¤ãã¨ããæå³ã§ãã
ãã®å ´åãRailsã®ãã¼ã¸ã§ã³ã¢ããã¨åæã«ãããããã¯ã¢ããªã±ã¼ã·ã§ã³èªä½ãä¿®æ£ããªãã¨ãæ£å¸¸ã«åä½ãã¾ãããããã¯ç´ 人ã«ã¯é£ããã®ã§ãå°éå®¶ã«ç¸è«ããæ¹ãããã§ãããã
Capfile
ãåå¨ããå ´å
次ã«ãRailsã«ã¼ããã£ã¬ã¯ããªã«ãCapfile
ã¨ãããã¡ã¤ã«ãåå¨ãããã©ããã調ã¹ã¾ãã
$ ls Capfile
åå¨ããå ´åã¯ãCapistranoã¨ããããã°ã©ã ã使ã£ã¦ã½ã¼ã¹ã³ã¼ãã®é ç½®ãèªååããã¦ãã¾ããã¾ããGitãMercurialãSubversionãªã©ã®ã½ã¼ã¹ã³ã¼ãæ§æç®¡çï¼SCMï¼ãã¼ã«ã使ããã¦ãã¾ãã
ãããããã¨ãCapistranoã使ããã¨èãã¦ã»ããã¢ãããå§ãããã©éä¸ã§ããã¦ãè¨å®ãã¡ã¤ã«ã®æ®éª¸ãæ®ã£ã¦ããã ãããããã¾ãããæ¬å½ã«Capistranoã使ã£ã¦ãããã©ããã®å¤å®ã¯ããªããªãé£ããã§ãã
CapistranoãSCMãã¼ã«ã®è¨å®ã¯ config
ãã£ã¬ã¯ããªã®ä¸ã«ãã deploy.rb
ã¨ãããã¡ã¤ã«ã«æ¸ããã¦ãã¾ããä¾ãã°ããã®ä¸ã«ã
set :repository, "[email protected]:oiax/example.git"
ã¨æ¸ããã¦ããã°ã[email protected]:oiax/example.git
ãSCMãã¼ã«ã§ä½¿ç¨ãããªãã¸ããªï¼ã½ã¼ã¹ã³ã¼ãã®å±¥æ´ã管çãããã¼ã¿ãã¼ã¹ï¼ã®URLã§ãã
ããããã®æé ã¯æ¬¡ã®éã:
- 使¥ãã·ã³ã«Capistranoã¨SCMãã¼ã«ãã¤ã³ã¹ãã¼ã«ã
- ãªãã¸ããªã®URLãã使¥ãã·ã³ã«ã½ã¼ã¹ã³ã¼ããåå¾ã
- å¾è¿°ããã¢ãããã¼ãæé ã«å¾ãã½ã¼ã¹ã³ã¼ããä¿®æ£ã
- ãªãã¸ããªã«ã½ã¼ã¹ã³ã¼ããç»é²ã
- Capistranoã§ã½ã¼ã¹ã³ã¼ããé ç½®ããã
éã¨ã³ã¸ãã¢ãCapistranoãSCMãã¼ã«ã®ä½¿ãæ¹ããã¹ã¿ã¼ããã®ã¯ãã¡ãã£ã¨ãã¼ãã«ãé«ãã§ãï¼ä»åã¯èª¬æãã¾ããï¼ãããã¾ã§ã®æ å ±ãæã£ã¦ãå°éå®¶ã«ç¸è«ããæ¹ãããããããã¾ããã
Railsã®ã¢ãããã¼ã
Gemfile
ã®æç¡ã«ããæé ãç°ãªãã¾ãã
Gemfile
ãåå¨ããå ´å
Gemfile
ã«è¨è¼ããã¦ãããã¼ã¸ã§ã³çªå·ã夿´ãã¾ãããã®éã3çªç®ã®ãã¼ã¸ã§ã³çªå·ã ãã夿´ããç¹ã«æ³¨æãã¦ãã ãããä¾ãã°ã3.0.1
ãªã 3.0.20
ã«å¤æ´ãã¾ãã3.1.19
ã 3.2.11
ã«å¤æ´ããã¨ãã¢ããªã±ã¼ã·ã§ã³ãæ£å¸¸ã«åä½ããªãããããã¾ããã
Railsã®ãã¼ã¸ã§ã³ã2.3.xã®å ´åã¯ãconfig/environment.rb
ã«è¨è¼ããã¦ãããã¼ã¸ã§ã³çªå·ãåæ§ã«å¤æ´ãã¾ãã
ããã¦ã次ã®ã³ãã³ããå®è¡ãã¾ãã
$ bundle update rails
ç¡äºã¢ãããã¼ããå®äºããã¨ã次ã®ãããªã¡ãã»ã¼ã¸ã表示ããã¾ãã
Your bundle is updated! Use `bundle show [gemname]` to see where a bundled gem is installed.
ããããæ¬¡ã®ãããªã¨ã©ã¼ã¡ãã»ã¼ã¸ãåºãããããã¾ããã
You are trying to install in deployment mode after changing your Gemfile. Run `bundle install` elsewhere and add the updated Gemfile.lock to version control. If this is a development machine, remove the Gemfile freeze by running `bundle install --no-deployment`. You have added to the Gemfile: * rails (= 3.0.20) You have deleted from the Gemfile: * rails (= 3.0.1)
ãã®å ´åã¯ã.bundle
ãã£ã¬ã¯ããªã«ãã config
ãã¡ã¤ã«ãVimãªã©ã®ã¨ãã£ã¿ã§éãã¾ãããã®ä¸ã«ã次ã®ãããªæ¸ãããç®æãããã¾ãã®ã§ããã®è¡ãåé¤ãã¦ãã ããã
BUNDLE_FROZEN: "1"
ããã¦ãããä¸åº¦ bundle update rails
ã³ãã³ããå®è¡ãã¦ãã ããã
Gemfile
ãåå¨ããªãå ´å
config/environment.rb
ã«è¨è¼ããã¦ãããã¼ã¸ã§ã³çªå·ã夿´ãã¾ãããã®éã3çªç®ã®ãã¼ã¸ã§ã³çªå·ã ãã夿´ããç¹ã«æ³¨æãã¦ãã ãããä¾ãã°ã3.0.1
ãªã 3.0.20
ã«å¤æ´ãã¾ãã3.1.19
ã 3.2.11
ã«å¤æ´ããã¨ãã¢ããªã±ã¼ã·ã§ã³ãæ£å¸¸ã«åä½ããªãããããã¾ããã
ç¶ãã¦ããã¼ã¸ã§ã³çªå·ãæå®ãã¦Railsãã¤ã³ã¹ãã¼ã«ãã¾ããå¿
ã config/environment.rb
ã«è¨å
¥ãããã¼ã¸ã§ã³çªå·ã¨ä¸è´ããã¦ãã ããã
$ gem install rails --version=3.0.20
éä¸ã§æ¬¡ã®ãããªã¡ãã»ã¼ã¸ãç¾ãããããã¹ã¯ã¼ããå ¥åãã¦ãã ããã
Enter your password to install the bundled RubyGems to your system:
ããã§æ£ãããã¹ã¯ã¼ããå
¥åãã¦ãã¨ã©ã¼ã«ãªã£ã¦ãã¾ãå ´åã¯ããµã¼ãã¼ãã·ã³ã«ãã°ã¤ã³ããã¦ã¼ã¶ã¼ã« sudo 権éãããã¾ãããsu
ã³ãã³ãã§ root ã¦ã¼ã¶ã¼ã«ãªã£ã¦ãããä¸åº¦åãã³ãã³ããå®è¡ãã¦ãã ããã
Railsã¢ããªã±ã¼ã·ã§ã³ã®åèµ·å
Railsã®ã¢ãããã¼ããé©ç¨ããã«ã¯ãã¢ããªã±ã¼ã·ã§ã³ã®åèµ·åãå¿ è¦ã§ããåèµ·åæ¹æ³ã¯ãç°å¢ã«ããç°ãªãã¾ããåèµ·åç´å¾ãã°ããã¯Webãµã¤ãã®ã¬ã¹ãã³ã¹ããéãããªãã¾ãã
script/spin
ãããå ´å
script
ãã£ã¬ã¯ããªã« spin
ã¨ãããã¡ã¤ã«ãåå¨ããå ´åã¯ããããã Mongrel ã使ã£ã¦ãã¾ããæ¬¡ã®ã³ãã³ãã§åèµ·åã§ããã¯ãã§ãã
$ nohup script/spin &
tmp/pid/unicorn.pid
ãããå ´å
tmp/pid
ãã£ã¬ã¯ããªã« unicorn.pid
ã¨ãããã¡ã¤ã«ãåå¨ããå ´åã¯ãUnicorn ã使ã£ã¦ãã¾ããæ¬¡ã®ã³ãã³ãã§åèµ·åã§ããã¯ãã§ãã
$ kill -QUIT tmp/pids/unicorn.pid
ãã®ä»ã®å ´å
ãããã㯠Passengerã使ã£ã¦ãã¾ããæ¬¡ã®ã³ãã³ããå®è¡ãã¦ã¿ã¦ãã ããã
$ touch tmp/restart.txt
æå¾ã«ããä¸åº¦
注æ å®éç¨ä¸ã®Webãµã¤ãã«å¯¾ãã¦ãã®è¨äºã§æ¸ããããã¨ã宿½ããã¨ãå ´åã«ãã£ã¦ã¯Webãµã¤ããæ£å¸¸ã«æ©è½ããªããªãå¯è½æ§ãããã¾ããèªå·±è²¬ä»»ã§ãé¡ããã¾ãã