- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Rails305安装以及Rake版本修改
Rails 3.0.5安装以及Rake版本导致的db:migrate数据迁移失败问题
Rails 3.0.5安装
本安装指南主要对照《WEB敏捷开发之道》第四版
系统:Ubuntu12.04
Ruby 1.8
步骤:
1)分别安装依赖的库:
sudo apt-get install build-essential libopenssl-ruby libfcgi-dev
*sudo apt-get install ruby irb rubygems ruby1.8-dev
sudo apt-get install sqlite3 libsqlite3-dev
*注意:在irb和rubygems之间是有空格的,在中文版的《WEB敏捷开发之道》第四版书中空格不明显,我做安装时就因为这个空格卡了很久。
2)分别安装rails和sqlite3:
*sudo gem install rails --version 3.0.5
sudo gem install sqlite3
*注意:在《WEB敏捷开发之道》第四版书中的命令是不需加版本号“—version 3.0.5”,那是因为写书时3.0.5是必威体育精装版版本,但现在已经是3.2.7了(至少我安装时已经是),如果不写版本号就会默恩安装rails 3.2.7,而且安装后是无法回到rails 3.0.5版本运行的。为什么不用rails 3.2.7? 如果你是老手就用什么版本都行,但如果你是新手,而且是把《WEB敏捷开发之道》第四版作为入门教程,那我建议你还是用rails 3.0.5,否则到“Task D 购物车”时你就可能做不下去了。
3)做完以上两步,Rails 3.0.5开发环境已基本搭好,运行rails –v看看版本是否正确。如无问题就可以进入下一章编程了。
Rake版本导致的db:migrate数据迁移失败问题
如果您是2012年后开始学习Rails,并且使用《应用Rails进行敏捷Web开发_第4版_》为入门课的话,你会发现在Task A中的数据迁移时出现错误如下:
depot rake db:migrate
遇到问题出错了,提示:
这是因为Rake的版本已经发展到了,而书中的项目使用的还是Rake 0.8.7,最可悲的是Rake 不对下支持,就是说它是不支持3.0.7以下的Rails版本。对此你可能第一时间想到的解决方法是卸载Rake 重新安装Rake 0.8.7,你的想法是对的。
解决方法第一步:重装Rake 0.8.7
1、查看现在的Rake版本是否
gem list
2、卸载Rake
gem uninstall rake –v=.2
PS:请留意卸载最后是否出现Successfully uninstalled,如果报错就是没有卸载成功,得找出原因再卸载,最经常的错误是权限不够,需要有root权限。所以我是切换到root帐号做的。
3、重装Rake 0.8.7
gem install rake –v=0.8.7
到此第一步完成,可能很多人认为这就已经搞掂了,部分情况是的。我第一次安装Rails 3.0.5时做完这步再使用rake db:migrate 迁移数据成功。但我第二次安装Rails 3.0.5时这一步就不行,重装Rake 0.8.7后出现Could not find rake 错误:
似乎gem认准了要用Rake 这版本。于是就出现了解决方法的第二步。
解决方法第二步:修改Gemfile.lock文件
打开项目的目录文档,会看到一个Gemfile(在《应用Rails进行敏捷Web开发_第4版_》书中对Gemfile做了简单介绍),在Gemfile旁边还有一个Gemfile.lock文件,这个文件的主要作用是定义项目的运行环境,例如指定项目使用Gem版本、Rails版本、builder版本等。以下是网上某位大虾对此lock文件作用的解释:该lock文件把当前应用的gem配置都记录下来,并一同发布出去(这里指的是GitHub),一旦其他人下载该应用后执行bundle install时会强制按照该lock文件中指定的gem版本去下载或调用,而不是使用其他人本地已经安装的gem,这样就可以保证在不同的环境下应用的特性一致。/pengpenglin/archive/2011/07/03/353602.html)
打开Gemfile.lock文件,修改Rake项,将rake ()修改为rake (0.8.7)
修改后如下:
保存修改并退出。在项目中重新输入rake db:migrate 迁移数据。问题终于解决:
网上还有其他解决此问题的方法,例如:使用bundle unlock命令解锁后再重装Rake 0.8.7,大家可以根据实际情况选择适合的方式。
以下是其他解
文档评论(0)