rbenv文档指出,如果您不使用bundler,可以使用gemsets插件对您的gem进行沙盒化:
Manage gemsets. Bundler is a better way to manage application dependencies. If you have projects that are not yet using Bundler you can install the rbenv-gemset plugin.
Run Code Online (Sandbox Code Playgroud)
但是,我正在使用bundler,当我在具有不同gemsets的项目之间切换时,我需要重新捆绑.当我使用rvm时,由于.gemsets文件,这很简单.
捆绑器中是否有沙盒功能,我不知道或者我误解了文档?
我正在尝试使用批处理脚本在Windows机器上自动执行ruby应用程序部署.
一切都在花花公子,除了以下几行:
gem install bundler
Run Code Online (Sandbox Code Playgroud)
如果我手动输入,一切顺利.但是,如果我使用批处理脚本,则一旦安装完成,该进程就会被终止.这就是我正在使用的:
pause
gem install bundler --no-ri --no-rdoc
pause
Run Code Online (Sandbox Code Playgroud)
我尝试过-f开关和所有文档; 似乎没有什么能阻止窗户被杀死.我需要保持活动的过程,所以我可以捆绑安装.知道为什么会这样,以及我如何在安装后保持活着?
我正在开发一个ruby应用程序,它使用来自另一个Ruby on Rails Web应用程序的模型和数据作为其主要数据源.
通过将environment.rb文件包含在主文件中,Rails模型包含在此应用程序中,如下所示:
# Require Rails
require_relative "../../RailsApp/config/environment.rb"
Run Code Online (Sandbox Code Playgroud)
这有效但在加载使用Rails Gemfile中定义的gem的模型时会有未初始化的依赖项.(例如acts_as_taggable_on, rack-pjax, devise,等)
这个ruby应用程序依赖项也通过Bundler进行管理,因此目前使应用程序正常工作的唯一方法是将Rails的Gemfile中的内容复制并粘贴到ruby应用程序的Gemfile中.
显然,这种方法不是最佳的,因为宝石要求是重复的.
有没有更好的方法来包含Rails及其模型在另一个应用程序中所需的依赖项?有没有办法将Gemfile包含在另一个中?
我正在尝试在我的系统中构建docrails.当我克隆回购并bundle install按照指南说的那样做.
我收到以下错误
You passed :github as an option for gem 'rails/active_record_deprecated_finders'
, but it is invalid.
gemfile中的条目如下所示:
gem 'rails/active_record_deprecated_finders', github: 'rails/active_record_deprecated_finders'
为了避免我正在做的是评论这行的其余部分,如下所示:
gem 'rails/active_record_deprecated_finders'#, github: 'rails/active_record_deprecated_finders'
然后它放弃了,下一个问题到达时出现错误信息:
Could not find gem 'active_record_deprecated_finders (>= 0) x86-mingw32' in any
of the gem sources listed in your Gemfile.
环境规格:
Bundler版本1.0.21
Rails 3.2.3
Win7 64bit
题
我不知道为什么当我的系统是64位时它寻找x86.有没有解决这个问题?还是它的错误?
如果宝石文件不能接受github:作为参数,为什么它首先在那里?
如果有任何解决方法,请告诉我
当我运行Rails 4.1.2服务器时,我没有错误.
但是,如果我运行'rails c',我会收到以下错误:
Could not find activesupport-4.1.2 in any of the sources
Run `bundle install` to install missing gems.
Run Code Online (Sandbox Code Playgroud)
奇怪的是,activesupport-4.1.2已经安装并在Gemfile.lock中指定.我尝试过'捆绑更新'以及删除Gemfile.lock并运行'bundle install'.我也尝试在我的Rails gemfile中指定特定版本的ActiveSupport,但这已经无处可去了.
我真的很想使用最新的Rails,但是我不能使用控制台似乎很糟糕.
FIY:我在Linux中使用Ruby 2.1.2p95和RVM.
编辑:我卸载了所有activesupport宝石并重新安装4.1.2.这是'宝石列表activesupport说':
*** LOCAL GEMS ***
activesupport (4.1.2)
Run Code Online (Sandbox Code Playgroud)
同样的问题.
EDIT2:这是我的Gemfile.lock:
GEM
remote: https://rubygems.org/
specs:
actionmailer (4.1.2)
actionpack (= 4.1.2)
actionview (= 4.1.2)
mail (~> 2.5.4)
actionpack (4.1.2)
actionview (= 4.1.2)
activesupport (= 4.1.2)
rack (~> 1.5.2)
rack-test (~> 0.6.2)
actionview (4.1.2)
activesupport (= 4.1.2)
builder (~> 3.1)
erubis (~> 2.7.0)
activemodel (4.1.2)
activesupport (= 4.1.2) …Run Code Online (Sandbox Code Playgroud) 我是Rails编程的新手.当我尝试在rails命令提示符下运行命令'bundle install'时,会出现以下错误.
C:\Sites\blog>bundle install
DL is deprecated, please use Fiddle
Fetching gem metadata from https://rubygems.org/.Retrying dependency api due to
error (2/3): Zlib::BufError buffer error
.........
Resolving dependencies...
Using rake 10.4.2
Using i18n 0.7.0
Using json 1.8.2
Using minitest 5.5.1
Using thread_safe 0.3.5
Using tzinfo 1.2.2
Using activesupport 4.1.8
Using builder 3.2.2
Using erubis 2.7.0
Using actionview 4.1.8
Using rack 1.5.2
Using rack-test 0.6.3
Using actionpack 4.1.8
Using mime-types 2.4.3
Using mail 2.6.3
Using actionmailer 4.1.8
Using activemodel 4.1.8
Using arel …Run Code Online (Sandbox Code Playgroud) 我正在尝试vagrant plugin install vagrant-vbguest在Mac 上执行
ProductName: Mac OS X
ProductVersion: 10.12.6
BuildVersion: 16G29
Run Code Online (Sandbox Code Playgroud)
但是之后我有一条错误消息
Vagrant用于安装插件的基础系统Bundler报告了一个错误。错误如下所示。这些错误通常是由错误配置的插件安装或瞬时网络问题引起的。来自Bundler的错误是:
冲突的依赖项winrm-fs(= 1.0.1)和winrm-fs(= 0.2.3)
激活的winrm-fs-0.2.3与冲突的依赖项(= 1.0.1)不匹配冲突的依赖链:winrm-fs(= 0.2.3),已激活0.2.3
对比:winrm-fs(= 1.0.1)
匹配winrm-fs(= 1.0.1)的宝石:winrm-fs-1.0.1
因此,问题是如何使用Bundler解决该问题,即如何以安全的方式安装我的guest虚拟机插件?其他详情
vboxmanage --version
5.1.26r117224
Vagrant 1.9.7
Run Code Online (Sandbox Code Playgroud) 红宝石和捆扎机的新产品。我正在使用此docker文件将它们安装在docker映像中:
FROM alpine:3.5
# Install Ruby, Ruby Bundler and other ruby dependencies
RUN apk add --update \
ruby ruby-bigdecimal ruby-bundler \
ca-certificates libressl \
libressl-dev build-base ruby-dev \
ruby-rdoc ruby-io-console ruby-irb; \
\
&& bundle config build.nokogiri --use-system-libraries; \
&& bundle config git.allow_insecure true; \
\
&& gem install json foreman --no-rdoc --no-ri; \
&& gem cleanup; \
&& rm -rf /usr/lib/ruby/gems/*/cache/*; \
&& apk del libressl-dev build-base ruby-dev; \
&& rm -rf /var/cache/apk/* /tmp;
CMD ["bundle"]
Run Code Online (Sandbox Code Playgroud)
当我运行一个docker run时,我得到:
Don't …Run Code Online (Sandbox Code Playgroud) 是否有一个简单的(Bundle?)命令来确定哪个gem导致特定的gem捆绑并添加到我的Gemfile.lock中?
有一个或2类似的问题,但他们似乎只解决搞清楚其中的宝石在那里依赖于特定的宝石的普遍问题.
另一个问题是最接近这个问题,但它过于具体,并没有得到一个很好的一般答案.
最终我找到了我使用后的信息,bundle viz然后眼球看到了结果图像,直到找到它并将其追溯到它的父级,但看起来像bundle应该可以用一行命令告诉我.
我也试过grep -r rest-client ~/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0哪种方式告诉我,但结果很乱,还包括一堆其他不属于这个特定应用的宝石.
下次还有更简单的方法吗?