Tag: 环境

用puppet设置环境变量

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

使用自定义环境运行命令行

在Ruby中,我希望能够: 运行命令行(通过shell) 捕获stdout和stderr(最好是单个流)而不使用>2&1 (这里的某些命令失败) 运行其他环境变量(不修改ruby程序本身的环境) 我了解到Open3允许我做1和2。 cmd = ‘a_prog –arg … –arg2 …’ Open3.popen3(“#{cmd}”) { |i,o,e| output = o.read() error = e.read() # FIXME: don’t want to *separate out* stderr like this repr = “$ #{cmd}\n#{output}” } 我还了解到, popen允许您传递环境,但不能在指定命令行时传递。 如何编写能够完成这三项操作的代码? … 换句话说,以下Python代码的Ruby等价物是什么? >>> import os, subprocess >>> env = os.environ.copy() >>> env[‘MYVAR’] = ‘a_value’ >>> […]

如何更改gem环境设置?

我安装了rbenv并设置了ruby和gem。 现在,如果我运行gem env那么我得到以下内容: RubyGems Environment: – RUBYGEMS VERSION: 2.2.2 – RUBY VERSION: 2.1.0 (2013-12-25 patchlevel 0) [x86_64-darwin13.0] – INSTALLATION DIRECTORY: /Users/myusername/Tools/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0 – RUBY EXECUTABLE: /Users/myusername/Tools/.rbenv/versions/2.1.0/bin/ruby – EXECUTABLE DIRECTORY: /Users/myusername/Tools/.rbenv/versions/2.1.0/bin – SPEC CACHE DIRECTORY: /Users/myusername/.gem/specs – RUBYGEMS PLATFORMS: – ruby – x86_64-darwin-13 – GEM PATHS: – /Users/myusername/Tools/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0 – /Users/myusername/.gem/ruby/2.1.0 – GEM CONFIGURATION: – :update_sources => true […]

在设置环境变量时从ruby中取出shell

我需要在为它设置环境变量的同时对一个进程进行shell。 我试过这个单行: system “RBENV_VERSION=system ruby extconf.rb” 此语法适用于shell脚本,但不适用于ruby。 ( 更新:事实certificate这个语法毕竟是来自ruby,但由于我的特殊用例,我没有看到它的效果。) 所以我这样做: rbenv_version = ENV[‘RBENV_VERSION’] ENV[‘RBENV_VERSION’] = ‘system’ begin system “ruby extconf.rb” ensure ENV[‘RBENV_VERSION’] = rbenv_version end 我被迫做了这么长的表达,因为如果它已经有了值,我不想永久地覆盖环境变量。 想到什么更短的东西?