Tag: 环境变量

在Rake任务中使用环境变量

task :some_task, :environment do |t, args| puts Rails.env #=> development, production, etc puts ENV #=> {} end 我设置了一些环境变量(通过本地.env,或通过Herokusan通过Heroku Config),例如要使用哪个AWS桶,我想在rake任务中引用它们,但ENV是一个空哈希。 我知道与环境有关的事情因为:environment任务依赖而且Rails.env有一个值,但我不清楚细节。 那么,我如何在Rake任务中使用ENV ?

Ruby on Rails环境变量用于开发环境

只是一个我无法在stackoverflow上找到答案的快速问题。 如果很容易为登台和生产提供环境变量(例如在heroku上),我该如何为我的localhost(开发环境)设置环境变量? (我在Mac上) 截至今天,我为开发环境硬编码我的api凭证,我对此感到不舒服。 谢谢 !

rvm系统范围安装:警告! PATH未正确设置

我在Ubuntu 12.10上的/usr/local/rvm/bin安装了多用户版本的RVM。 当我将Ruby从1.9.3升级到2.0.0时,这似乎导致每当我执行rvm version或类似命令时弹出以下错误消息: $ rvm version Warning! PATH is not properly set up, ‘/usr/local/rvm/gems/ruby-2.0.0-p247/bin’ is not at first place, usually this is caused by shell initialization files – check them for ‘PATH=…’ entries, it might also help to re-add RVM to your dotfiles: ‘rvm get stable –auto-dotfiles’, to fix temporarily in this shell session […]

在为ruby运行rspec时如何更改环境变量?

我有几个ruby脚本并用rspec测试它们。 我把我的环境放在一个env.rb文件中(现在)所以我可以在本地访问它们并在生产中将它们放在配置变量中。 但是当我运行rspec时,我想要不同的环境变量。 两个用例: 我运行Twilio,所以我希望能够将用于其测试凭据的SID更改 我将东西作为服务存储在数据库中,并希望拥有一个单独的测试数据库

如何从environment.rb或初始化程序中强制执行RAILS_ENV = development?

我们的主机不允许我们修改乘客配置文件(即apache配置或vhosts文件),但我们想在开发模式下运行rails。 因此,我们必须在其中一个文件中指定环境(prod / dev / test),以便重新启动应用程序。 有人知道怎么做吗? 我们尝试了以下但没有运气: #environment.rb (before any other code is executed) `RAILS_ENV=development` # using back ticks ENV[‘RAILS_ENV’] = ‘development’ # assigning to a constant RAILS_ENV=’development’ # as suggested by one of the answers, unfortunately does not work.

用puppet设置环境变量

我正在尝试找出用puppet设置一些环境变量的最佳方法。 我可以使用exec,只是export VAR=blah 。 但是,这只会持续到本届会议。 我还想过将它添加到文件的末尾,比如bashrc。 然而,我不认为有一种可靠的方法可以检查它是否已经准备就绪; 所以它最终会被添加到每一轮木偶中。

我可以覆盖Ruby中的系统时区吗?

我在Ubuntu 12.04上 ,我可以看到: $ cat /etc/timezone America/Phoenix 因此, Time将返回非UTC区域的时间: $ irb > Time.now => 2013-03-27 13:44:49 -0700 > Time.at 0 => 1969-12-31 17:00:00 -0700 我可以使用TZ环境变量覆盖系统时区: $ TZ=UTC irb > Time.now => 2013-03-27 20:47:19 +0000 > Time.at 0 => 1970-01-01 00:00:00 +0000 无论如何,我可以在Ruby进程中以编程方式进行此更改吗?

为什么我的Ruby Git脚本钩子运行错误的$ PATH?

我正在使用RVM。 我为一个项目编写了一个Git pre-commit钩子: #!/usr/bin/env ruby puts RUBY_VERSION puts `echo $PATH` exit(1) 当由Git运行时输出它: $ git ci -m ‘foo’ 1.8.7 /usr/libexec/git-core:/usr/bin:/usr/local/heroku/bin:/Users/mgoerlich/.rvm/gems/ruby-2.0.0-p195@global/bin:/Users/mgoerlich/.rvm/rubies/ruby-2.0.0-p195/bin:/Users/mgoerlich/.rvm/bin:/Users/mgoerlich/adt-bundle-mac-x86_64-20130219/sdk/platform-tools:/Users/mgoerlich/adt-bundle-mac-x86_64-20130219/sdk/tools:/usr/local/bin:/usr/local/sbin:/Users/mgoerlich/.dotfiles/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin/core_perl:/Users/mgoerlich/bin:/usr/local/share/npm/bin:/usr/local/share/npm/bin 它似乎与错误的Ruby版本一起运行,因为$PATH与bash或zsh或sh中的不同。 似乎git正在操纵$PATH 。 手动运行时,我得到: $ .git/hooks/pre-commit 2.0.0 /usr/local/heroku/bin:/Users/mgoerlich/.rvm/gems/ruby-2.0.0-p195@global/bin:/Users/mgoerlich/.rvm/rubies/ruby-2.0.0-p195/bin:/Users/mgoerlich/.rvm/bin:/Users/mgoerlich/adt-bundle-mac-x86_64-20130219/sdk/platform-tools:/Users/mgoerlich/adt-bundle-mac-x86_64-20130219/sdk/tools:/usr/local/bin:/usr/local/sbin:/Users/mgoerlich/.dotfiles/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin/core_perl:/Users/mgoerlich/bin:/usr/local/share/npm/bin:/usr/local/share/npm/bin 在提交钩子的输出中,前面有两个路径,其中一个是/usr/bin ,其中放置了系统Ruby的可执行文件。 这是一种已知行为吗? 我可以以某种方式操纵它吗? 我知道我可以在shebang中指定正确的Ruby版本的完整路径,但这不是我想要的。

ENV变量中的Capistrano和API键?

我正在使用Capistrano部署我的rails应用程序。 我想在服务器上保存一些API密钥作为环境变量。 使用Capistrano部署的rails应用程序应该可以访问这些API密钥。 这些API密钥也应该可以作为守护进程运行的单独的ruby文件访问。 在环境变量中设置API密钥似乎是理想的解决方案,但是,我无法使用ENV[“SOME_KEY”]在我的rails应用程序中访问它们。 根据这篇文章 ,因为capistrano运行为非交互式和非登录,所以不会加载~/.bashrc和~/.bash_profile 。 该流程图表明我应该使用$BASH_ENV 。 我可以在$BASH_ENV添加我的api密钥并在我的rails应用程序和使用ENV[“SOME_KEY”]的守护进程的ruby文件中访问它们吗? 我也想到只是将api密钥添加到服务器上的某个文件中并将其符号链接到ruby文件dir和rails目录,然后打开并读取它。 这可能吗?

如何运行带有警告的所有Ruby脚本?

如何通过修改我的Unix或Windows环境变量来默认打开警告的Ruby脚本? 理想情况下,即使我通过Rake间接运行脚本,这也应该有效,而不仅仅是在我直接运行时。 根据这个答案中的评论。