Cuando trato de hacer una instalación manual de origen de algún software en NixOS 15.09, obtengo ( sh -x es para obtener un registro ejecutivo):
[nix-shell:/tmp/nix-shell-es/EventStore-oss-v3.5.0-src]$ sh -x scripts/build-js1/build-js1-linux.sh werror=no ... + CXXFLAGS=-fPIC + make x64.release werror=no PYTHONPATH="/tmp/nix-shell-es/EventStore-oss-v3.5.0-src/scripts/build-js1/v8/tools/generate_shim_headers:" \ GYP_GENERATORS=make \ build/gyp/gyp --generator-output="out" build/all.gyp \ -Ibuild/standalone.gypi --depth=. \ -Dv8_target_arch=x64 \ -Dv8_optimized_debug=0 \ -S.x64.release -Dv8_enable_backtrace=1 -Dwerror='' -Darm_fpu=default -Darm_float_abi=default /bin/sh: build/gyp/gyp: /bin/bash: bad interpreter: No such file or directory Makefile:389: recipe for target 'out/Makefile.x64.release' failed make: *** [out/Makefile.x64.release] Error 126Y de hecho no hay ningún programa bash en /bin/
[nix-shell:/tmp/nix-shell-es/EventStore-oss-v3.5.0-src]$ ls -la /bin/ total 12 drwxr-xr-x 2 root root 4096 Feb 24 12:25 . drwxr-xr-x 18 root root 4096 Feb 24 12:16 .. lrwxrwxrwx 1 root root 63 Feb 24 12:25 sh -> /nix/store/l80ddf18bbig2icv6cmgjfws9a2vm3jj-bash-4.3-p42/bin/sh Sin embargo, cuando inspecciono el script , no veo ninguna mención al respecto, por lo que debe ser algún subprograma que lo esté buscando. Aparte, me imagino que es probablemente por eso que la secuencia de comandos comienza sabiamente con #!/usr/bin/env bash y no la ubicación directa de bash.
¿Alguien sabe una manera bendita de lidiar con esto?
uno tiene que ejecutar patchShebangs ./scripts/build-js1/build-js1-linux.sh en los archivos que provienen de la fuente cuando no están en la tienda y queremos ejecutarlos.