How to upgrade rubygems

Anu*_*nuj 201 ruby gem

我需要将gems升级到1.8我尝试安装相应的debian软件包,但它似乎没有升级

anujm@test:~$ dpkg -l |grep -i rubygem
ii  rubygems                               1.3.5-1ubuntu2                                  package management framework for Ruby libraries/applications
ii  rubygems-lwes                          0.8.2-1323277262                                LWES rubygems
ii  rubygems1.8                            1.3.5-1ubuntu2                                  package management framework for Ruby libraries/applications
ii  rubygems1.9                            1.3.5-1ubuntu2                                  package management framework for Ruby libraries/applications
anujm@test:~$ 


anujm@test:~$ gem
gem     gem1.8  gem1.9  
anujm@test:~$ sudo gem1.8 install serve
ERROR:  Error installing serve:
        multi_json requires RubyGems version >= 1.3.6
anujm@test:~$
Run Code Online (Sandbox Code Playgroud)

Sac*_*acx 455

安装rubygems-update

gem install rubygems-update
update_rubygems
gem update --system
Run Code Online (Sandbox Code Playgroud)

以root身份运行此命令或使用sudo.

  • 默认情况下安装`rubygems-update`.所以,这就是运行`gem update --system`的问题. (11认同)
  • 这里因为unicode gem的问题(https://github.com/blackwinter/unicode/issues/5):在运行了answer的解决方案后,我不得不运行`gem pristine unicode`,重新构建了gem并使其可用. (2认同)
  • 通常,您永远不会希望以"sudo"运行此命令.这将升级系统ruby.考虑使用`rvm`或`rbenv` (2认同)

jee*_*jee 51

您只需执行以下操作即可更新所有宝石:

sudo gem update

  • 这是寻找问题的答案. (41认同)
  • 问题不是"我如何更新所有宝石?" 而是"如何在我的机器上更新RubyGems?" (4认同)
  • 如果您以普通用户身份安装 gems,则没有 `sudo`(无论如何,以 root 用户身份安装 gems 并不是很好)。 (2认同)
  • 这可能会导致混乱 - 使用 rvm 或其他 ruby​​ 环境切换器在文件夹中使用 sudo 更新 gem。 (2认同)

jvc*_*c26 16

要么:

gem update `gem outdated | cut -d ' ' -f 1`
Run Code Online (Sandbox Code Playgroud)


Ara*_*vin 11

您可以将gem更新为任何特定版本,

gem update --system 'version'

gem update --system '2.3.0'
Run Code Online (Sandbox Code Playgroud)

  • 您的命令在基于 debian gem update --system "2.1.0" 错误的发行版上不起作用:执行 gem ... (RuntimeError) gem update --system 在 Debian 上被禁用,因为它会覆盖rubygems Debian 软件包,并可能以微妙的方式破坏您的 Debian 系统。Debian 支持的更新 ruby​​gems 的方法是通过 apt-get,使用 Debian 官方存储库。如果您真的知道自己在做什么,您仍然可以通过设置 REALLY_GEM_UPDATE_SYSTEM 环境变量来更新 ruby​​gems,但请记住,Debian 完全不支持此操作。 (2认同)

Kla*_*urn 6

对我来说,简单地运行就足够了

gem update
Run Code Online (Sandbox Code Playgroud)

  • 这是为了更新您的 gems,而不是 ruby​​gems 软件本身。 (7认同)
  • 确实如此,但这是“更新 gem 版本”等搜索的第一个 Google 结果,所以我很高兴这个答案在这里。 (3认同)

luc*_*nte 5

我不会使用debian包,看看RVMRbenv.


thi*_*ign 5

我发现其他答案不正确/过时。最好是参考实际文档

简短版本:在大多数情况下 gem update --system就足够了。

您不应该盲目使用sudo。实际上,如果不需要这样做,则很可能不应该使用它。