Windows命令行焦油“无法连接到d:解析失败”与厨师刀(Windows command line

2019-09-23 21:47发布

使用与安装了Cygwin,厨师和红宝石Windows命令行。 当试图

knife cookbook site install mysql

返回以下错误

Begin output of tar zxvf D:/path/to/chef-repo/cookbooks/mysql.tar.gz  
STDOUT:  
STDERR: tar<child>: Cannot connect to D: resolve failed  
gzip: stdin: undexpected end of file  
tar: Child returned status 128  
tar:  Error is not recoverable: exiting now</code>

我怎样才能解决这个问题? 我可以手动解压使用

tar zxvf mysql.tar.gz  

但这是不够理想。 我相信这已与做在文件名结肠癌但如何改变,在刀或厨师偏好?

Answer 1:

其原因是tar解释冒号( : )的文件名作为这意味着它是另一台机器上的文件。 您可以通过使用该标志禁用此行为--force-local

这是从一个答案在这里 。



Answer 2:

我不知道一个完整的答案,但最近一直在Linux机器上看到的是:

$ date > today
$ tar -czf - today > to:day.tgz
$ tar -tzf to:day.tgz
ssh: connect to host to port 22: Connection refused
tar (child): to\:day.tgz: Cannot open: Input/output error
tar (child): Error is not recoverable: exiting now

gzip: stdin: unexpected end of file
tar: Child returned status 2
tar: Error is not recoverable: exiting now
$ tar -tzf - < to:day.tgz 
today
$ 

看来, tar希望这样做,因为在文件名中的冒号的某种远程文件处理的,你可以伪造它通过使用某种形式的重定向或管道-用于读取和写入一个压缩包。 我还是想找到一个选项或有事要告诉tar不行为这种方式。



Answer 3:

如果将来自CMD运行tar命令的工作? 还什么如果输出到本地驱动器。 别的东西试试这个,

tar zxvf "D:/path/to/chef-repo/cookbooks/mysql.tar.gz"


文章来源: Windows command line tar “cannot connect to d: resolve failed” with Chef Knife