tar sta dando un errore di simbolo in uno script di installazione bash?

0

Sto provando a installare Meteora e, come parte del processo di installazione, scarica il nodo da un file tar che esegue il pipe in tar. Ma il comando di estrazione di tar sta erompendo con un simbolo mancante?

Ho usato homebrew su brew install gnu-tar --with-default-names

NODE_URL="https://nodejs.org/dist/v8.1.3/node-v8.1.3-darwin-x64.tar.gz" 
curl "${NODE_URL}" | tar zx --strip-components 1 

Restituisce questo:

lazy symbol binding failed: Symbol not found:
_utimensat   
Referenced from: /usr/local/bin/tar    
Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: 
_utimensat   
Referenced from: /usr/local/bin/tar   
Expected in: /usr/lib/libSystem.B.dylib
    
posta Ray Foss 12.07.2017 - 15:45
fonte

1 risposta

1

Nel tuo esempio stai usando bsd / macos curl con gnu tar, che non funzionerà. Sfortunatamente molti programmi di sviluppo si basano su Apple Bash e provare ad aggiornare cose su gnu possono rompere gli script di bash.

brew non ti consente nemmeno di installare curl "in modo nativo"

brew install curl
==> Downloading https://homebrew.bintray.com/bottles/curl-7.54.1.sierra.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.

per correggere il tuo problema con lo script bash che vorresti rinominare gnu-tar da tar a gtar, il seguente farà il trucco

brew uninstall gnu-tar
brew install gnu-tar
    
risposta data 12.07.2017 - 15:45
fonte

Leggi altre domande sui tag