2016-03-01 85 views
0

當我嘗試做NixOS 15.09某些軟件的手動源代碼安裝,我得到(sh -x是獲得一個exec日誌):硬編碼bin路徑和NixOS

[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 

然而,當我檢查the script我沒有看到它的任何提及所以它必須是一些子程序尋找它。另外,我想這可能是爲什麼腳本明智地從#!/usr/bin/env bash開始,而不是bash的直接位置。

任何人都知道一個幸運的方式來處理這個問題?

回答

0

如果源文件不在存儲區並且我們想要執行它們,則必須對源文件運行patchShebangs ./scripts/build-js1/build-js1-linux.sh