0 votes

tar donne une erreur de symbole dans une installation bash script ?

J'ai essayé d'installer meteor et dans le cadre du processus d'installation, il télécharge node à partir d'un fichier tar qu'il transforme en tar. Mais la commande d'extraction tar se trompe avec un symbole manquant ?

J'ai utilisé homebrew pour 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 

Je le rapporterai :

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

1voto

Ray Foss Points 241

Dans votre exemple, vous utilisez bsd/MacOS curl avec gnu tar, cela ne fonctionnera pas. Malheureusement, de nombreux programmes de développement reposent sur le bash d'Apple et essayer de mettre à niveau les choses vers gnu peut casser les scripts de bash.

Brew ne vous laisse même pas installer curl "nativement".

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.

pour résoudre votre problème avec le script de bash, vous devrez renommer gnu-tar de tar à gtar, ce qui suit fera l'affaire

brew uninstall gnu-tar
brew install gnu-tar

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X