Chef执行失败,并且同一命令手动成功

时间:2018-09-25 18:37:31

标签: chef

我在两种不同的情况下发生了这两种情况,这两种情况都与使用pip安装具有系统依赖性的模块有关。我遇到一个问题,我可以以root用户身份在外壳中pip install放置一个python模块,但是当我在execute块中放置相同的命令时,它失败了。这是一个示例:

PYCURL_SSL_LIBRARY=openssl /srv/python/venv/bin/pip install pycurl

那行得通,但是下面的代码块:

execute 'install pycurl' do
  cwd '/srv/python/venv'
  environment(
    PYCURL_SSL_LIBRARY: 'openssl'
  )
  command '/srv/python/venv/bin/pip install pycurl'
end

给我有关curl-config的以下错误:

---- Begin output of /srv/python/venv/bin/pip install pycurl ----
   STDOUT: Collecting pycurl
     Downloading https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz (214kB)
       Complete output from command python setup.py egg_info:
       Using curl-config (libcurl 7.29.0)
       Traceback (most recent call last):
  ...
        raise ConfigurationError(msg)
       __main__.ConfigurationError: Neither curl-config --libs nor curl-config --static-libs succeeded and produced output

我尝试适当地设置PYCURL_CURL_CONFIG变量,但得到的结果相同,无论如何我想弄清楚的是为什么我至少不会在该错误上得到相同的错误。命令行而不是pip安装成功。那有什么区别?

0 个答案:

没有答案