2012-10-10 19 views
8

Utilizzo di riga di comando di Windows con cygwin, chef e ruby ​​installati. Quando si cercaTar di comando di Windows tar "Impossibile connettersi a d: risoluzione non riuscita" con Chef Knife

knife cookbook site install mysql 

restituisce il seguente errore

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> 

Come posso risolvere questo problema? Posso decomprimere manualmente usando

tar zxvf mysql.tar.gz 

ma questo è tutt'altro che ideale. Credo che questo abbia a che fare con lo colon in filename ma come posso cambiarlo nelle preferenze del coltello o dello chef?

+1

Hai trovato una soluzione a questo problema? Va bene rispondere alla tua stessa domanda. Si prega di non dimenticare di contrassegnare una risposta corretta! :) – sethvargo

risposta

0

Il comando tar funzionerà se eseguito da cmd? Inoltre, cosa succede se l'output è su un'unità locale. Un'altra cosa provare questo,

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

non so una risposta completa, ma è stato vedere questo su macchine 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 
$ 

Sembra che tar vuole fare una sorta di elaborazione file remoto a causa dei due punti nel nome del file e puoi fingere usando qualche forma di reindirizzamento o piping, sia per leggere che scrivere un tarball. Mi piacerebbe comunque trovare un'opzione o qualcosa da dire a tar di non comportarsi in questo modo.

6

Il motivo è che tar interpreta i due punti (:) nei nomi di file nel senso che si tratta di un file su un'altra macchina. È possibile disabilitare questo comportamento utilizzando il flag --force-local.

Questo è da una risposta da here.

Problemi correlati