外部设置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