2013-03-11 67 views
1

我正尝试使用chef-solo和vagrant将石墨安装到64位清晰的虚拟机上。石墨的依赖之一是python,当我尝试配置虚拟机时,我得到下面的错误。我使用Opscode的标准蟒食谱(https://github.com/opscode-cookbooks/python当使用厨师安装python时获取“CRC check failed”(CRC校验失败)

我不熟悉厨师或Python,所以这个错误让我有点难倒。任何帮助赞赏。

[default] Running provisioner: Vagrant::Provisioners::ChefSolo... 
[default] Generating chef JSON and uploading... 
[default] Running chef-solo... 
stdin: is not a tty 
[2013-03-11T00:18:05+01:00] INFO: *** Chef 10.14.2 *** 
[2013-03-11T00:18:05+01:00] INFO: Setting the run_list to ["recipe[graphite]"] from JSON 
[2013-03-11T00:18:05+01:00] INFO: Run List is [recipe[graphite]] 
[2013-03-11T00:18:05+01:00] INFO: Run List expands to [graphite] 
[2013-03-11T00:18:05+01:00] INFO: Starting Chef Run for lucid64.hsd1.ca.comcast.net. 
[2013-03-11T00:18:05+01:00] INFO: Running start handlers 
[2013-03-11T00:18:05+01:00] INFO: Start handlers complete. 
[2013-03-11T00:18:06+01:00] WARN: This recipe uses encrypted data bags, which are not supported on Chef Solo - fallback to node attribute. 
[2013-03-11T00:18:06+01:00] INFO: Processing package[python] action install (python::package line 40) 
[2013-03-11T00:18:06+01:00] INFO: Processing package[python-dev] action install (python::package line 40) 
[2013-03-11T00:18:06+01:00] INFO: Processing remote_file[/tmp/vagrant-chef-1/distribute_setup.py] action create (python::pip line 33) 
[2013-03-11T00:18:06+01:00] INFO: Processing execute[install-pip] action run (python::pip line 39) 

================================================================================ 
Error executing action `run` on resource 'execute[install-pip]' 
================================================================================ 

Mixlib::ShellOut::ShellCommandFailed 
------------------------------------ 
Expected process to exit with [0], but received '127' 
---- Begin output of /usr/bin/python distribute_setup.py --download-base=https://pypi.python.org/packages/source/d/distribute/ 
    /usr/local/bin/easy_install pip 
---- 
STDOUT: Extracting in /tmp/tmphzwy_0 
STDERR: Traceback (most recent call last): 
    File "distribute_setup.py", line 546, in <module> 
    sys.exit(main()) 
    File "distribute_setup.py", line 543, in main 
    return _install(tarball, _build_install_args(options)) 
    File "distribute_setup.py", line 77, in _install 
    _extractall(tar) 
    File "distribute_setup.py", line 479, in _extractall 
    for tarinfo in members: 
    File "/usr/lib/python2.6/tarfile.py", line 2412, in next 
    tarinfo = self.tarfile.next() 
    File "/usr/lib/python2.6/tarfile.py", line 2314, in next 
    self.fileobj.seek(self.offset) 
    File "/usr/lib/python2.6/gzip.py", line 382, in seek 
    self.read(1024) 
    File "/usr/lib/python2.6/gzip.py", line 219, in read 
    self._read(readsize) 
    File "/usr/lib/python2.6/gzip.py", line 267, in _read 
    self._read_eof() 
    File "/usr/lib/python2.6/gzip.py", line 304, in _read_eof 
    hex(self.crc))) 
IOError: CRC check failed 0x94c615b3 != 0x2e611106L 
sh: /usr/local/bin/easy_install: not found 
---- End output of /usr/bin/python distribute_setup.py --download-base=https://pypi.python.org/packages/source/d/distribute/ 
    /usr/local/bin/easy_install pip 
---- 
Ran /usr/bin/python distribute_setup.py --download-base=https://pypi.python.org/packages/source/d/distribute/ 
    /usr/local/bin/easy_install pip 
returned 127 
+0

你安装了'easy_install'吗? – grc 2013-03-11 00:22:12

+0

@grc我想'/ usr/bin/python distribute_setup.py'就是这么做的。 – wRAR 2013-03-11 00:57:21

回答

0

错误IOError: CRC check failed 0x94c615b3 != 0x2e611106L表明,gzip的模块没有解压下载.tgz的文件。这可能是由网络问题引起的。

地隔离了这个问题,尝试运行命令设置手动分发,即运行vagrant ssh然后:

/usr/bin/python distribute_setup.py --download-base=https://pypi.python.org/packages/source/d/distribute/ 

这会帮助你来缩小在distribute_setup.py文件的过程中出了什么问题。如果distribute_setup.py失败,那么您可以检查它下载的distribute-X.Y.Z.tar.gz文件,看它是否与https://pypi.python.org/packages/source/d/distribute/中的文件相匹配(以两个文件的md5sum来验证它们是否相同)。如果它们是相同的,我会尝试提取手动下载的.tgz以查看它是否有效;我想可以想象,网站上的其中一个文件是腐败的,尽管这似乎不大可能。

如果在这一点上解决方案没有立即显现,请使用这些额外的诊断更新您的问题,我们将看看可以进一步挖掘的内容。