【问题标题】:How to update rails? Getting too many errors due to an old version如何更新轨道?由于旧版本而出现太多错误
【发布时间】:2015-09-27 18:59:08
【问题描述】:

我是 Rails 新手,我正在开发我的第一个 Rails 应用程序 (http://guides.rubyonrails.org/getting_started.html) 当我尝试编辑最新帖子时, 我收到一个错误,因为 Rails 3.2.16 中没有 Patch 方法。 然后我尝试使用 PUT 方法,但出现错误:

(参数数量错误(1 对 2)

我正在尝试使用以下方式更新 gem:

宝石更新

但它在许多包上都会出现这样的错误:

更新rails
构建原生扩展。这可能需要一段时间...
错误:安装导轨时出错:
    错误:无法构建 gem 原生扩展。

        /usr/bin/ruby1.9.1 extconf.rb
检查 C 编译器是否接受...是
使用打包的库构建 nokogiri。
检查 -lz 中的 gzdopen()... 否
zlib 丢失;构建 libxml2 所必需的
*** extconf.rb 失败 ***
由于某种原因无法创建 Makefile,可能缺少
必要的库和/或头文件。查看 mkmf.log 文件了解更多信息
细节。您可能需要配置选项。

提供的配置选项:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --没有-make-prog
    --srcdir=。
    --curdir
    --ruby=/usr/bin/ruby1.9.1
     - 帮助
     - 干净的
    --使用系统库
    --启用静态
    --禁用静态
    --with-zlib-dir
    --没有-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --启用交叉构建
    --禁用交叉构建


Gem 文件将继续安装在 /var/lib/gems/1.9.1/gems/nokogiri-1.6.6.2 中以供检查。
结果记录到 /var/lib/gems/1.9.1/gems/nokogiri-1.6.6.2/ext/nokogiri/gem_make.out

我目前的宝石清单:

actionmailer (3.2.16)
动作包 (3.2.16)
活动模型(4.2.3、3.2.16)
活动记录(4.2.3、3.2.16)
活动资​​源(4.0.0、3.2.16)
主动支持(4.2.3、4.2.0、3.2.16)
雷尔 (6.0.0, 3.0.3)
生成器(3.2.2、3.0.4)
咖啡轨 (3.2.2)
咖啡脚本(2.4.1)
咖啡脚本源 (1.9.1.1)
diff-lcs (1.2.5)
厄鲁比斯 (2.7.0)
执行js (2.5.2)
远足 (2.1.3, 1.2.3)
i18n (0.7.0)
旅程 (1.0.4)
jquery-rails (3.1.3)
json (1.8.3)
libv8 (3.16.14.11 x86_64-linux)
邮件(2.6.3、2.5.4)
哑剧类型(2.6.1、1.25.1)
mini_portile (0.6.2)
迷你测试(5.7.0)
multi_json (1.11.2)
多语言(0.3.5)
机架(1.6.4、1.4.7)
机架缓存 (1.2)
机架 SSL (1.4.1, 1.3.4)
机架测试(0.6.3)
导轨 (3.2.16)
rails-observers (0.1.2)
铁路 (3.2.16)
耙子 (10.4.2)
rdoc (4.2.0, 3.12.2)
参考(1.0.5)
rspec (3.3.0, 3.2.0)
rspec 核心 (3.3.1, 3.2.3)
rspec-expectations (3.3.0, 3.2.1)
rspec 模拟 (3.3.1, 3.2.1)
rspec 支持 (3.3.0, 3.2.2)
萨斯(3.4.15)
sass-rails (3.2.6)
链轮(3.2.0、2.2.3)
sqlite3 (1.3.10)
强参数(0.2.3)
therubyracer (0.12.2)
雷神(0.19.1)
线程安全(0.3.5)
倾斜 (2.0.1, 1.4.1)
树顶 (1.6.3, 1.4.15)
tzinfo (1.2.2, 0.3.44)
丑陋者(2.7.1)

谁能告诉我一种将rails(或每个gem)更新到最新版本的方法?

当前:

  • 导轨版本:3.2.16
  • 红宝石版本:1.9.3
  • gem 版本:1.8.23

【问题讨论】:

  • 您应该更改此问题的标题以更具体地说明您的问题。

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

不,不可能在不删除版本约束的情况下自动更新每个 gem。

如果你有:

gem 'sass-rails', '~> 3.2' 

然后移除版本约束:

gem 'sass-rails'

让您使用bundle update 获取最新版本。然而,这样做很少是谨慎的,因为有明确的版本要求可以保证您的应用在更新不相关的 gem 时或在不同的开发者之间不会意外中断。

Rails 3.2 和 4 之间存在一些相当大的差异,作为初学者而不是尝试经历升级的陷阱,安装最新版本的 Rails 并创建新的 Rails 应用程序可能更容易。

【讨论】:

  • 感谢您的回复。你能告诉我如何安装最新版本的 ruby​​ 、 gems 等吗?我搜索过,但有很多不同的方法,所以我现在很困惑。当我尝试通过以下方式安装 rvm 时:$ \curl -L https://get.rvm.io | bash -s stable --ruby 它给出了一个键错误。
  • 改为提出一个新问题。
【解决方案2】:

正如您发布的输出中提到的那样,缺少一些需要的库。在您的情况下,zlib 又是构建 libxml2 所必需的。

zlib is missing; necessary for building libxml2

所以你必须安装这些缺失的库。为此,我正在使用Homebrew 作为包管理器在 OS X 上工作,我发现它非常有用。

此链接也可以帮助您更新应用程序:

http://railsapps.github.io/updating-rails.html

【讨论】:

    猜你喜欢
    • 2022-11-18
    • 2020-05-06
    • 2018-12-26
    • 2020-06-01
    • 2022-10-24
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多