Ruby on rails 捆绑机路径问题
我已经接管了由其他人部署到服务器上的ann应用程序。设置有问题,缺少环境变量或类似问题,但我被难住了。顺便说一下,这显然是一个Rails应用程序,在REE和mod_Rails(乘客)下运行 下面是一些让我困惑的控制台日志。首先,rakedb:migrate声明我没有rails2.3.8 然而,bundler说我会: 但另一方面,gem说不: 以下是一些相关的环境变量: 最后,Ruby是这么想的:Ruby on rails 捆绑机路径问题,ruby-on-rails,ruby,passenger,bundler,Ruby On Rails,Ruby,Passenger,Bundler,我已经接管了由其他人部署到服务器上的ann应用程序。设置有问题,缺少环境变量或类似问题,但我被难住了。顺便说一下,这显然是一个Rails应用程序,在REE和mod_Rails(乘客)下运行 下面是一些让我困惑的控制台日志。首先,rakedb:migrate声明我没有rails2.3.8 然而,bundler说我会: 但另一方面,gem说不: 以下是一些相关的环境变量: 最后,Ruby是这么想的: $ irb irb(main):001:0> $: => ["~/.gem", "/us
$ irb
irb(main):001:0> $:
=> ["~/.gem", "/usr/lib64/rubyee/site_ruby/1.8",
"/usr/lib64/rubyee/site_ruby/1.8/x86_64-linux", "/usr/lib64/rubyee/site_ruby",
"/usr/lib64/rubyee/vendor_ruby/1.8", "/usr/lib64/rubyee/vendor_ruby/1.8/x86_64-linux",
"/usr/lib64/rubyee/vendor_ruby", "/usr/lib64/rubyee/1.8", "/usr/lib64/rubyee/1.8/x86_64
linux", "."]
irb(main):002:0>
我的眼睛交叉了。我缺少什么?Bundler在自定义目录中安装gem。这就是
gem list
的结果不会显示它们的原因
不幸的是,我不知道为什么命令
$rake db:migrate
找不到您的gems。使用自定义捆绑路径时,请确保在捆绑程序环境中运行rake命令
bundle exec rake db:migrate
试试看。Hm。。。不确定我是否使用自定义捆绑路径。我不认为我设置了一个,我是否“免费”获得一个?如果您只是使用
捆绑安装
,那么gem将出现在gem列表中
——因为它们没有,所以必须使用自定义路径。关键是,使用bundle exec
将在加载bundle环境的情况下运行该命令,因此bundle list
看到的所有gem都将可用。我可能应该指出,您可以通过查看RAILS\u ROOT/.bundle/config中的bundle PATH
变量来查看gem的安装位置,虽然这与运行命令无关。我的开发环境是Mac OS X,部署环境是Centos,运行passenger。我不确定是否在自定义目录中。。。默认情况下我能得到吗?
$ bundle list
Gems included by the bundle:
[...snip]
* actionmailer (2.3.8)
* actionpack (2.3.8)
* activerecord (2.3.8)
* activeresource (2.3.8)
* activesupport (2.3.8)
[...snip...]
* rails (2.3.8)
$ gem list rails
*** LOCAL GEMS ***
RUBYOPT=-rauto_gem
RUBYLIB=~/.gem
$ irb
irb(main):001:0> $:
=> ["~/.gem", "/usr/lib64/rubyee/site_ruby/1.8",
"/usr/lib64/rubyee/site_ruby/1.8/x86_64-linux", "/usr/lib64/rubyee/site_ruby",
"/usr/lib64/rubyee/vendor_ruby/1.8", "/usr/lib64/rubyee/vendor_ruby/1.8/x86_64-linux",
"/usr/lib64/rubyee/vendor_ruby", "/usr/lib64/rubyee/1.8", "/usr/lib64/rubyee/1.8/x86_64
linux", "."]
irb(main):002:0>