外部设置Ruby加载路径
我有一个自定义的Ruby库目录,我想在Ruby执行时自动添加到Ruby的加载路径中。 我知道我可以使用Ruby的-I选项,但我想知道是否有类似我可以设置的环境变量,它将全局确定Ruby的加载路径。
顺便说一句,我的高级任务是在没有root的Linux机器上安装Ruby Gems,所以我需要在非标准位置安装Ruby加载路径。 我按照http://rubygems.org/read/chapter/3#page83 (“在用户目录中安装RubyGems”)的说明安装了RubyGems,但是gem命令没有获取非标准的加载路径。 也许我错过了一些明显的东西,让自己变得更难?
从pickaxe书中尝试Ruby及其世界章节,特别是关于环境变量的部分。 摘抄:
RUBYLIB Additional search path for Ruby programs ($SAFE must be 0). DLN_LIBRARY_PATH Search path for dynamically loaded modules. RUBYLIB_PREFIX (Windows only) Mangle the RUBYLIB search path by adding this prefix to each component.
确保已将已安装的bin
目录放在$PATH
以使gem
命令起作用。 它应该修改RUBYLIB
本身,但如果没有,请尝试Martin的答案来解决这个问题。
然后,您可以让您的gem回家(rubygems安装的gem存储在哪里)是本地的。
只需使用$GEM_HOME
(或在~/.gemrc
)并检查所有内容都与gem environment
。
%mkdir~ / .gems %export GEM_HOME =〜/ .gems %gem帮助环境 用法:gem环境[arg] [选项] 常见选项: -h, - help获取有关此命令的帮助 -V, - [no-] verbose设置详细的输出级别 -q, - quiet Silence命令 --config-file FILE使用此配置文件而不是默认值 --backtrace显示错误的堆栈回溯 --debug打开Ruby调试 参数: packageversion显示包版本 gemdir显示安装gem的路径 用于搜索gem的gempath显示路径 version显示gem格式版本 remotesources显示远程gem服务器 显示一切 摘要: 显示有关RubyGems环境的信息 描述: 可以通过命令行参数控制RubyGems环境, gemrc文件,环境变量和内置默认值。 命令行参数默认值和一些RubyGems默认值可以设置 各个用户的〜/ .gemrc文件和所有用户的/ etc / gemrc。 一个gem 是具有以下YAML键的YAML文件: :sources:一个YAML远程gem数据库arrays,用于安装gems :verbose:gem命令的详细程度。 虚假,真实,和:真的是 水平 :update_sources:启用/禁用存储库元数据的自动更新 :backtrace:当RubyGems遇到错误时打印回溯 :bulk_threshold:当多个源不在时,切换到批量更新 日期(旧版设定) :gempath:寻找gem的路径 gem_command:包含指定gem命令的参数的字符串 例: :verbose:false 安装:--no-wrappers 更新:--no-wrappers RubyGems的默认本地存储库可以用GEM_PATH覆盖 GEM_HOME环境变量。 GEM_HOME将默认存储库设置为 安装到。 GEM_PATH允许搜索多个本地存储库 对于 gem。 如果你在代理服务器后面,RubyGems使用HTTP_PROXY, HTTP_PROXY_USER和HTTP_PROXY_PASS环境变量来发现 代理服务器。 如果您正在打包RubyGems,那么所有RubyGems的默认值都在 LIB / RubyGems的/ defaults.rb。 您可以覆盖这些 LIB /的rubygems /默认/ operating_system.rb
让生活更轻松并安装RVM 。 它将安装您想要的任何版本的Ruby,并允许您在它们之间切换,它不需要root访问权限。 它有许多其他杀手级function,在使用它一段时间后你会沉迷其中。
谢谢! 我使用@ MartinCarpenter的解决方案来运行minitest的特定/特定/单一测试方法。 我通常使用Rake :: TestTask将test
目录添加到$LOAD_PATH
,例如, t.libs << 'test'
,我可以使用命令行执行此操作,如下所示:
RUBYLIB=test ruby test/user_test.rb --name test_create
我将test
添加到$LOAD_PATH
因为user_test.rb
调用require 'test_helper'
来加载lib/test_helper.rb
。