жестко запрограммированный путь бункера и NixOS

Когда я пытаюсь выполнить ручную исходную установку некоторого программного обеспечения на NixOS 15.09, я получаю (sh -x - это получение журнала выполнения):

[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 126

И действительно, в / bin / нет программы на bash.

[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

Однако, когда я проверяю script Я не вижу никакого упоминания об этом, так что это должно быть какая-то подпрограмма, ищущая его. В стороне, я полагаю, что, вероятно, сценарий разумно начинается с #!/usr/bin/env bash, а не с прямого расположения bash.

Кто-нибудь знает благословенный способ справиться с этим?


person nicolas    schedule 01.03.2016    source источник


Ответы (1)


нужно запускать patchShebangs ./scripts/build-js1/build-js1-linux.sh для файлов, поступающих из источника, когда их нет в магазине, и мы хотим их выполнить.

person nicolas    schedule 02.03.2016