0. 安装Xcode和早期开发环境配置
0.1安装Xcode
0.2设定SSH,Apache
SSH和Apache都可以从苹果系统的系统环境设置里面的共享来选择开启SSH服务器和Apache服务器,并可以从那个页面的链接来进行确认,很方便.
1.Ruby和Rails的安装
Ruby和Rails有很多种的安装方式,如果在家自己捣鼓着玩的话个人推荐用rvm来安装,因为在rvm下可以很方便的管理ruby和rails的各种不同的包括不兼容的版本.
1.1 RVM的安装
RVM的安装比较简单,但要首先选择单用户(当前用户)还是多用户(root)的安装.选择当前用户的话可以安装到$HOME下面,主要是你个人利用,系统操作风险比较小.多用户(root)的话会安装到/usr/local/rvm下面,系统的所有用户都可以利用,当然sudo权限下会有些风险.更多信息请参照rvm安装主页(https://rvm.beginrescueend.com/rvm/install/).
个人选择单用户下的稳定版的安装,命令如下.
user$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
rvm命令添加到path里面
user$ echo ‘[[ -s "$HOME/.rvm/scripts/rvm" ]] && . “$HOME/.rvm/scripts/rvm” # Load RVM function’ >> ~/.bash_profile
读取.bash_profile
$ source .bash_profile
安装完毕后的确认
user$ rvm -v
rvm 1.10.0 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]
1.2Ruby的安装
确认可以安装的版本
user$ rvm list known
安装所需要的版本
user$ rvm install ruby-1.9.3
选择安装版本为默认ruby版本
user$ rvm use 1.9.3 –default
确认
user$ruby -v
1.3Rails的安装
rvm下面不同的Rials版本是通过Gemset来管理的,所以安装之前需要建立所需要的gemset,或者不选择而安装到默认的gemset(global)里面.
user$ rvm gemset create rails3.1.0
<查看安装好的Gemsets
user$rvm gemset list
选择此次新安装的Gemset
user$ rvm gemset use rails3.1.0
查看安装好的Gemsets
user$rvm gemset list
gemsets for ruby-1.9.3-p0 (found in /Users/princy/.rvm/gems/ruby-1.9.3-p0)
global
=>; rails3.1.0
安装Rails
user$ gem install rails3
确认版本
user$ rails -v
建立一个Rails项目
user$ rails new depot
user$cd depot
user$rails server
然后可以通过下面的链接来确认程序的启动 (http://0.0.0.0:3000)
2.SVN的利用和配置
苹果系统已经安装好了SVN服务器了,所以可以很方便的利用svnadmin来建立repository.
user$ svnadmin create /Users/user/Sites/svnrepos
确认建立好的svnrepos
http://127.0.0.1/~user/svnrepos/
在svnrepos下面建立新的放前面建立好的rails项目的目录
/Users/user/Sites/svnrepos/rortest/trunk
将前面建好的目录导入到svn里面
user$ svn import -m “New ror import” depot http://127.0.0.1/~user/svnrepos/rortest/trunk
3.用Capistrano来自动release刚才的Rails系统
3.0 Capistrano安装
设定好的gemset下面安装Capistrano
user$gem install capistrano
查看安装的版本
user$ cap –version
Capistrano v2.9.0
3.1 Capistrano的Release系统的设定和配置
建立放置Release系统的文件夹
/Users/user/Source/Ruby/Rails/captest
进入上述目录后导入Capistrano的需要文件
user$capify .
根据提示会发现该目录下面建立了以下文件
Capfile config/deploy.rb
配置自动release的deploy.rb文件
#RVM设置所需内容
$:.unshift(File.expand_path(‘./lib’, ENV['rvm_path']))
require “rvm/capistrano”
#rvm_ruby_string是现在的gemset的名字
set :rvm_ruby_string, ’1.9.3-p0@rails3.1.0′#防止跳出image,css文件夹找不到错误
set :normalize_asset_timestamps, false#Release的名字和位置
set :application, “depot”
set :deploy_to, “/Users/user/Source/Ruby/Rails/captest/#{application}”#设置SVN的内容
set :repository, “http://127.0.0.1/~user/repos/rortest/trunk”
set :use_sudo, false#提示SSH用户和密码
set :user do Capistrano::CLI.ui.ask(‘SSH User:’)end
set :password do Capistrano::CLI.password_prompt(‘SSH Password’)end#设定程序源码为SVN
set :scm, :subversionrole :web, “127.0.0.1″ # Your HTTP server, Apache/etc
role :app, “127.0.0.1″ # This may be the same as your `Web` server
role :db, “127.0.0.1″, :primary => true
#role :db, “your slave db-server here”# if you’re still using the script/reaper helper you will need
# these http://github.com/rails/irs_process_scripts# If you are using Passenger mod_rails uncomment this:
# namespace :deploy do
# task :start do ; end
# task :stop do ; end
# task :restart, :roles => :app, :except => { :no_release => true } do
# run “#{try_sudo} touch #{File.join(current_path,’tmp’,'restart.txt’)}”
# end
# end
第一次运行Capistrano时候的初始配置(建立Release用各种的文件夹)
user$cap deploy:setup
执行Capistrano命令(Checkout SVN内容,建立本次程序版本的文件夹,Bundle install,链接本次releases到current)
user$cap deploy
向Rails系统里面导入需要的数据
user$cap deploy:migrate
3.2 测试
去刚才的Capistrano目录下面的current文件夹里面启动Rails系统
user$rails s
重新Release一次系统
user$cap deploy
去Capistrano目录下确认Current已经连到了最新额SVN版本里面了