Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何将gem安装到当前文件夹_Ruby_Rubygems_Bundler - Fatal编程技术网

Ruby 如何将gem安装到当前文件夹

Ruby 如何将gem安装到当前文件夹,ruby,rubygems,bundler,Ruby,Rubygems,Bundler,我想在本地使用RubyGem(而不是在整个机器上安装),以便在单个脚本中使用。我知道如何使用带有Gemfile和bundle install的Bundler安装gems。但对于一个简单的脚本来说,设置bundler似乎有些过分 是否有一种方法可以将gem安装到脚本的子文件夹并使用它,类似于npm在Node\u模块中安装Node.js包的方法 以下是我到目前为止所做的尝试 gem安装-i ruby-plist在ruby/gems/plist-3.1.0 我试图在我的脚本extract.rb中通过执

我想在本地使用RubyGem(而不是在整个机器上安装),以便在单个脚本中使用。我知道如何使用带有Gemfile和
bundle install
的Bundler安装gems。但对于一个简单的脚本来说,设置bundler似乎有些过分

是否有一种方法可以将gem安装到脚本的子文件夹并使用它,类似于npm在
Node\u模块中安装Node.js包的方法

以下是我到目前为止所做的尝试

gem安装-i ruby-plist
ruby/gems/plist-3.1.0

我试图在我的脚本
extract.rb
中通过执行
require./ruby/gems/plist-3.1.0/lib/plist
来请求它,但在
require中失败:无法加载这样的文件:plist/generator
plist/generator.rb
lib/plist.rb
所必需的)


OSX上的Ruby 2.0

您可以使用
--path
选项将安装捆绑到不同的位置,例如:

bundle install --path vendor/bundle

另请参见

您可以使用
--path
选项将安装捆绑到其他位置,例如:

bundle install --path vendor/bundle

另请参见

您可以通过为特定应用程序创建gemset来实现。请按照以下步骤进行操作:

$ rvm gemset create <gemset_name>
然后通过cd导航到您的应用程序目录

现在执行此命令-

$ rvm list
$ rvm use @<gemset_name>
$rvm使用@
现在,无论何时安装任何gem,它都将安装在当前gemset中,而当前gemset并不用于整个机器


确保-在新创建的gemset中运行
gem安装捆绑程序
,这样在运行
bundle安装时不会出现错误

您可以通过为特定应用程序创建gemset来实现。请按照以下步骤进行操作:

$ rvm gemset create <gemset_name>
然后通过cd导航到您的应用程序目录

现在执行此命令-

$ rvm list
$ rvm use @<gemset_name>
$rvm使用@
现在,无论何时安装任何gem,它都将安装在当前gemset中,而当前gemset并不用于整个机器


确保-在新创建的gemset中运行
gem install bundler
,这样在运行
bundle install

时不会出现错误。如果不想使用bundler,只需像示例中那样在本地安装gems,然后在需要之前在脚本中设置gem_路径env,例如:

#!/usr/bin/env ruby

ROOT = File.expand_path('..', __FILE__)
ENV['GEM_PATH'] = File.join(ROOT, 'ruby')
# or to just append to
# ENV['GEM_PATH'] += ":#{ File.join(ROOT, 'ruby') }"

require 'plist'

假设您的脚本与
ruby
文件夹位于同一文件夹中(否则相应地调整文件路径)。

如果您不想使用Bundler,只需像示例中那样在本地安装gems,然后在需要之前在脚本中设置GEM\u PATH env,例如:

#!/usr/bin/env ruby

ROOT = File.expand_path('..', __FILE__)
ENV['GEM_PATH'] = File.join(ROOT, 'ruby')
# or to just append to
# ENV['GEM_PATH'] += ":#{ File.join(ROOT, 'ruby') }"

require 'plist'

假设您的脚本与
ruby
文件夹位于同一文件夹中(否则请相应调整文件路径)。

如何从脚本加载gem?只需按照页面上的说明为您的项目设置bundler,做一个正常的要求,你应该很好去。我如何从脚本加载宝石?只需按照他们的页面上所描述的设置你的项目绑定器,做一个正常的要求,你应该很乐意去做。关键是知道GEM_路径影响宝石从哪里加载。关键是知道GEM_路径影响宝石从哪里加载。