tar está dando un error de símbolo en un script de instalación de bash?

0

He estado tratando de instalar meteor y, como parte del proceso de instalación, descarga el nodo desde un archivo tar que se canaliza a tar. ¿Pero el comando de extracción de alquitrán está fallando con un símbolo faltante?

Usé homebrew para 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 

Volverá esto:

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
    
pregunta Ray Foss 12.07.2017 - 15:45

1 respuesta

1

En tu ejemplo, estás usando bsd / macos curl con gnu tar, eso no funcionará. Desafortunadamente, muchos programas de desarrollo confían en Apple bash y tratar de actualizar las cosas a gnu puede romper los scripts de bash.

brew ni siquiera te permitirá instalar curl "de forma nativa"

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.

para solucionar su problema con el script bash, querrá cambiar el nombre de gnu-tar de tar a gtar, lo siguiente hará el truco

brew uninstall gnu-tar
brew install gnu-tar
    
respondido por el Ray Foss 12.07.2017 - 15:45

Lea otras preguntas en las etiquetas