2015-07-06 30 views
0

我正在嘗試安裝bundler,但由於以下錯誤而失敗。Bundler安裝失敗,出現鹽度瑕疵狀態

 ID: install_bundler 
Function: gem.installed 
    Name: bundler 
    Result: False 
Comment: An exception occurred in this state: Traceback (most recent call last): 
      File "/usr/lib/python2.7/dist-packages/salt/state.py", line 1563, in call 
       **cdata['kwargs']) 
      File "/usr/lib/python2.7/dist-packages/salt/states/gem.py", line 81, in installed 
       gems = __salt__['gem.list'](name, ruby, gem_bin=gem_bin, runas=user) 
      File "/usr/lib/python2.7/dist-packages/salt/modules/gem.py", line 206, in list_ 
       runas=runas) 
      File "/usr/lib/python2.7/dist-packages/salt/modules/gem.py", line 28, in _gem 
       return __salt__['rbenv.do_with_ruby'](ruby, cmdline, runas=runas) 
      File "/usr/lib/python2.7/dist-packages/salt/modules/rbenv.py", line 369, in do_with_ruby 
       return do(cmd, runas=runas) 
      File "/usr/lib/python2.7/dist-packages/salt/modules/rbenv.py", line 343, in do 
       env=environ 
      File "/usr/lib/python2.7/dist-packages/salt/modules/cmdmod.py", line 1014, in run_all 
       use_vt=use_vt) 
      File "/usr/lib/python2.7/dist-packages/salt/modules/cmdmod.py", line 391, in _run 
       .format(cmd, kwargs, exc) 
      CommandExecutionError: Unable to run command ['RBENV_VERSION=2.1.2', 'gem', 'list', 'bundler'] with the context {'with_communicate': True, 'shell': False, 'env': {'UPSTART_INSTANCE': '', 'UPSTART_JOB': 'salt-minion', 'LC_ALL': 'C', 'PATH': '/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin', 'PWD': '/', 'TERM': 'linux'}, 'stdout': -1, 'close_fds': True, 'stdin': None, 'stderr': -1, 'cwd': '/root'}, reason: [Errno 2] No such file or directory 
Started: 10:19:55.195415 
Duration: 91.662 ms 
Changes: 

這是我的rbenv.ssl文件

rbenv: 
    pkg.latest: 
    - refresh: True 

rbenv-deps: 
    pkg.installed: 
    - names: 
     - bash 
     - git 
     - openssl 
     - libssl-dev 
     - make 
     - curl 
     - autoconf 
     - bison 
     - build-essential 
     - libssl-dev 
     - libyaml-dev 
     - libreadline6-dev 
     - zlib1g-dev 
     - libncurses5-dev 

ruby-2.1.0: 
    rbenv.absent: 
    - require: 
     - pkg: rbenv-deps 

ruby-2.1.2: 
    rbenv.installed: 
    - default: True 
    - require: 
     - pkg: rbenv-deps 

app-deps: 
    pkg.installed: 
    - names: 
     - libxml2-dev # required by nokogiri 
     - libxslt1-dev # required by nokogiri 
     - g++ # required by eventmachine 
     - libmysqlclient-dev # required by mysql 
     - libexpat1-dev # required by xmlparser 

install_bundler: 
    gem.installed: 
     - name: bundler 
     - ruby: 2.1.2 

/etc/profile.d/rbenv.sh: 
    file: 
    - managed 
    - user: root 
    - group: root 
    - mode: 755 
    - source: salt://rbenv/files/profile/rbenv.sh 
    - require: 
     - pkg: rbenv 

我不知道我做錯了。我試圖通過黑客安裝它,它的工作原理。

'RBENV_ROOT=/usr/local/rbenv RBENV_VERSION=2.1.2 rbenv exec gem install bundler': 
    cmd.run: 
    - unless: 'RBENV_ROOT=/usr/local/rbenv RBENV_VERSION=2.1.2 rbenv exec gem list | grep bundler' 

如果有人比使用saltstack運行命令來安裝bundler更清晰,那將是非常棒的。

回答

0

我不得不刪除從gem.install紅寶石版本,一切工作正常。

install_bundler: 
    gem.installed: 
     - name: bundler 
0

我不完全確定發生了什麼問題,但您的install_bundler狀態應該肯定需要ruby-2.1.2。

它看起來像狀態運行的任何環境在它的CLASSPATH中沒有gem命令。

+0

它也可能是剛剛打破[這裏](https://github.com/saltstack/salt/issues/23215)所述。你可以嘗試使用[RVM](http://docs.saltstack.com/en/latest/ref/states/all/salt.states.rvm.html) – NW0428

0

我所提到的票的作者(由NW0428)..我也找不到比這更好的解決方案(其中的作品真的很好):

bundler: 
    cmd.run: 
    - name: RBENV_VERSION=2.1.2 gem install bundler 
    - unless: RBENV_VERSION=2.1.2 gem list bundler -i 
相關問題