2012-10-10 42 views
8

Uso de la línea de comandos de Windows con cygwin, chef y ruby ​​instalados. Al intentarLínea de comando de Windows tar "no se puede conectar a d: resolver error" con Chef Knife

knife cookbook site install mysql 

devuelve el siguiente error

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> 

¿Cómo puedo solucionar este problema? Puedo descomprimir manualmente usando

tar zxvf mysql.tar.gz 

pero esto es menos que ideal. Creo que esto tiene que ver con el colon in filename, pero ¿cómo puedo cambiar eso en las preferencias del cuchillo o del chef?

+1

¿Encontró una solución a este problema? Está bien responder tu propia pregunta. ¡No olvide marcar una respuesta como correcta! :) – sethvargo

Respuesta

0

¿Funcionará el comando tar si se ejecuta desde cmd? Además, ¿qué ocurre si la salida es a un disco local? Otra cosa que intente esto,

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

no sé una respuesta completa, pero han estado viendo esto en máquinas Linux ultimamente:

$ 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 
$ 

Parece que tar quiere hacer algún tipo de procesamiento de archivos remoto debido a los dos puntos en el nombre del archivo y puede falsificarlo utilizando alguna forma de redirección o canalización, tanto para leer como para escribir un tarball. Todavía me gustaría encontrar una opción o algo para decirle al tar que no se comporte de esta manera.

6

La razón es que tar interpreta colons (:) en nombres de archivo, es decir, es un archivo en otra máquina. Puede deshabilitar este comportamiento utilizando el indicador --force-local.

Esto es de una respuesta de here.

Cuestiones relacionadas