标签: chruby

忽略GEM,因为它的扩展未构建

在我的工作和家用计算机上,我最近使用了将Ruby升级到2.3.1 ruby-install.我chruby用作我的Ruby切换器.

我开始在终端看到这个警告:

Ignoring bcrypt-3.1.11 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.11
Ignoring bcrypt-3.1.10 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.10
Ignoring binding_of_caller-0.7.2 because its extensions are not built.  Try: gem pristine binding_of_caller --version 0.7.2
Ignoring byebug-9.0.5 because its extensions are not built.  Try: gem pristine byebug --version 9.0.5
Ignoring byebug-5.0.0 because its extensions are not built.  Try: gem pristine byebug --version 5.0.0
Ignoring concurrent-ruby-ext-1.0.2 because its …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems chruby

109
推荐指数
7
解决办法
4万
查看次数

rbenv,rvm和chruby有什么区别?

我是Ruby和Rails的新手.我正在寻找一个纯粹客观的功能列表,每个功能和优点/缺点.为了保持偏好,除非您使用了所有3个系统,否则请不要回答.

ruby rvm rbenv chruby

59
推荐指数
1
解决办法
3万
查看次数

在 mac osx 11.6 上安装 ruby​​ 2.6.x 和 3.0.x 时 ruby​​-install 失败

运行 ruby​​-install 时,构建失败。rbenv 问题中也报告了这一点(https://github.com/rbenv/ruby-build/issues/1725)。

例如安装 ruby​​ 2.6.8 时

# installing via ruby-install ( https://github.com/postmodern/ruby-install )
ruby-install ruby 2.6.8
Run Code Online (Sandbox Code Playgroud)

它会导致以下错误

ossl_x509store.c:452:30: note: ')' token is here
    result = rb_funcall(ctx, rb_intern("verify"), 0);
                             ^~~~~~~~~~~~~~~~~~~
../.././include/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
../.././include/ruby/ruby.h:2602:20: note: expanded from macro 'rb_funcall'
        rb_funcallv(recv, mid, \
                          ^~~
6 warnings generated.
linking shared-object openssl.bundle
installing default openssl libraries
make[2]: Leaving directory '/Users/xxxxx/src/ruby-2.6.8/ext/openssl'
make[2]: Entering directory '/Users/xxxxx/src/ruby-2.6.8/ext/ripper'
extracting ripper.y from ../.././parse.y
compiling compiler ripper.y …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-install chruby macos-big-sur

17
推荐指数
2
解决办法
2万
查看次数

chruby和chgems可以取代rvm的gemset吗?

我目前正在rvm我的开发机器上使用红宝石之间的切换(主要是1.9.x和1.8.7).然后我遇到了chruby发现"不挂钩cd"功能的吸引力.

可以chruby+ chgems替换rmv的gemset功能吗?

之前:

$ rvm 1.8.7
Run Code Online (Sandbox Code Playgroud)

将为我的旧导轨项目使用1.8.7宝石切换到ruby 1.8.7.和:

$ rvm 1.9.3
Run Code Online (Sandbox Code Playgroud)

将为我的新rails项目使用1.9.3宝石切换到ruby 1.9.3.

怎么能得到chrubychgems

ruby macos rvm chruby

9
推荐指数
1
解决办法
2731
查看次数

在Rails中使用Capistrano进行部署时无法运行/etc/profile.d/chruby.sh

我一直在尝试在EC2实例上部署我的rails应用程序。我已经采取的步骤是

本地:

  1. 我通过Gemfile和编写了所有的gem bundle install

    group :development do
      gem 'capistrano'
      gem 'capistrano3-puma'
      gem 'capistrano-rails', require: false
      gem 'capistrano-bundler', require: false
      gem 'capistrano-chruby'
    end
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我编辑了我Capfile的要求模块

    require "capistrano/setup"
    require "capistrano/deploy"
    require "capistrano/scm/git"
    install_plugin Capistrano::SCM::Git
    require "capistrano/chruby"
    require "capistrano/bundler"
    require "capistrano/rails/assets"
    require "capistrano/rails/migrations"
    require "capistrano/puma"
    Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 我也进行了必要的更改config/deploy.rb,特别是

    set :chruby_ruby, 'ruby-2.3.0'
    
    Run Code Online (Sandbox Code Playgroud)

在服务器/实例上:

  1. 已安装的Ruby
  2. 已安装Chruby,并包括在/etc/profile.d/chruby.sh其中:

    group :development do
      gem 'capistrano'
      gem 'capistrano3-puma'
      gem 'capistrano-rails', require: false
      gem 'capistrano-bundler', require: false
      gem …
    Run Code Online (Sandbox Code Playgroud)

ruby bash shell ruby-on-rails chruby

6
推荐指数
1
解决办法
167
查看次数

如何在 gem 环境中设置正确的 Ruby 版本

注意:这个问题涉及如何让捆绑程序使用 chruby 和 .ruby-version 设置的 Ruby 版本?

使用chruby我在 macOS 上安装了 Ruby 1.8.7:

$ ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [i686-darwin17.4.0]
Run Code Online (Sandbox Code Playgroud)

另外,我曾经gem update --system 1.8.30安装过特定版本的 RubyGems,希望它是兼容的。这看起来安装正确:

$ gem --version
1.8.30
Run Code Online (Sandbox Code Playgroud)

但是,我的 RubyGems 环境显示的 Ruby 版本不正确(2.5.0):

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.30
  - RUBY VERSION: 2.5.0 (2017-12-25 patchlevel 0) [x86_64-darwin17]
  - INSTALLATION DIRECTORY: /Users/keithpitty/.gem/ruby/1.8.7
  - RUBY EXECUTABLE: /usr/local/opt/ruby/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/keithpitty/.gem/ruby/1.8.7/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-17
  - GEM PATHS: …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems ruby-1.8.7 chruby

6
推荐指数
1
解决办法
4078
查看次数

为什么 chruby 不保存我的默认 Ruby?

我正在设置一台新机器并尝试使用 chruby 安装 Ruby。我使用 ruby​​-install 来安装 ruby​​ 2.3 和 2.1.2,因为我团队中的其他人都在运行这两个版本。

当我跑步时chruby我得到:

红宝石-2.1.2 红宝石-2.3.0

然后我运行:

chruby ruby-2.1.2
Run Code Online (Sandbox Code Playgroud)

和:

$ chruby
* ruby-2.1.2
  ruby-2.3.0

$ ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin14.0]
Run Code Online (Sandbox Code Playgroud)

问题是,当我关闭终端并再次打开它时,默认的 Ruby 版本又回到 ruby​​-2.3.0。如何设置 chruby 的默认版本?

ruby ruby-install chruby

5
推荐指数
1
解决办法
5990
查看次数

chruby:未知 Ruby:ruby-2.2.0

ruby-2.2.0有了chruby,为什么在工作中不会.ruby-version,而chruby ruby-2.2.0会呢?

% whoami
mark
% sudo su myapp
% cd /home/www/myapp/
% whoami
chruby: unknown Ruby: ruby-2.2.0
myapp
% cat .ruby-version
ruby-2.2.0
% which ruby
/usr/local/bin/ruby
% chruby ruby-2.2.0
% which ruby
/home/www/myapp/.rubies/ruby-2.2.0/bin/ruby 
Run Code Online (Sandbox Code Playgroud)

Ruby on Rails 部署的完整记录:

https://gist.github.com/dt1973/7b99dfb75bd26e1e5ed7

ruby ruby-on-rails chruby

4
推荐指数
1
解决办法
9393
查看次数

如何卸载 chruby?

OS X 10.9.4。我没有安装chruby自制软件。

我很想卸载chruby。因为我想再次进行全新安装。

我想我需要去那里 chruby 它。并运行make uninstall

我试图找到它在哪里:

?  ~  whereis chruby
?  ~  which chruby
chruby () {
  case "$1" in
    (-h|--help) echo "usage: chruby [RUBY|VERSION|system] [RUBY_OPTS]" ;;
    (-V|--version) echo "chruby: $CHRUBY_VERSION" ;;
    ("") local dir star
      for dir in "${RUBIES[@]}"
      do
        dir="${dir%%/}"
        if [[ "$dir" = "$RUBY_ROOT" ]]
        then
          star="*"
        else
          star=" "
        fi
        echo " $star ${dir##*/}"
      done ;;
    (system) chruby_reset ;;
    (*) local dir match
      for dir in "${RUBIES[@]}" …
Run Code Online (Sandbox Code Playgroud)

ruby chruby

2
推荐指数
1
解决办法
3486
查看次数

Rails使用系统版本的ruby而不是Chruby set default

我使用Chruby ruby​​版本控件设置我的ruby默认值,但是当我尝试使用我的系统版本时,它会使用我的系统版本.我该如何解决?

~/workspace ??? ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin14]
~/workspace ??? ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin14]
~/workspace ??? rails new gitsee   
    Rails 5 requires Ruby 2.2.2 or newer.

    You're running
      ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]

    Please upgrade to Ruby 2.2.2 or newer to continue.
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails chruby

2
推荐指数
1
解决办法
981
查看次数

chruby 未根据新终端选项卡上 .ruby-version 中的值更改为正确版本的 ruby

我正在使用 source /usr/local/opt/chruby/share/chruby/auto.sh 将 ruby​​ 自动更改为 .ruby-version 中的版本,但不幸的是,这只适用于 cd。

当我在我的 mac 终端中打开一个新选项卡时,它会打开我在上一个选项卡中所在的同一目录,但自动更改不起作用。我对此的解决方案是返回cd ..cd返回,这会触发更改。显然,这很烦人。

我尝试chruby_auto在新选项卡中手动调用该函数,但这没有效果。

在这种情况下,有人可以提供如何更新我的 ruby​​ 版本的解决方案吗?我更喜欢自动解决方案,但会满足于调用命令。

ruby chruby

1
推荐指数
1
解决办法
640
查看次数