Nix에서 Python 설치 후 스크립트를 사용하여 패키지를 빌드하는 방법은 무엇입니까?

Nix에서 Python 설치 후 스크립트를 사용하여 패키지를 빌드하는 방법은 무엇입니까?

Nix를 파생시키려고 합니다.엽산, 이것은 나의 첫 번째 실제 파생이므로 아직 무엇을 하고 있는지 모르겠습니다.

이것이 내가 지금까지 가지고 있는 것입니다.빌드하고 설치하지만 다음 오류로 인해 실패합니다.

Running custom install script '/build/source/build-aux/meson/postinstall.py'
Failed to run install script '/build/source/build-aux/meson/postinstall.py'
FAILED: meson-install
/nix/store/2b4cdbcs1xbqjna5dr4qrr1p9p9bgm98-meson-0.51.2/bin/meson install --no-rebuild
ninja: build stopped: subcommand failed.
builder for '/nix/store/32vn9xlxlk9zb7vmpm90bz5i5qq59fjc-foliate-1.5.3.drv' failed with exit code 1
error: build of '/nix/store/32vn9xlxlk9zb7vmpm90bz5i5qq59fjc-foliate-1.5.3.drv' failed

빌드 종속성으로 추가하려고 시도했지만 python3작동하지 않는 것 같습니다. 내가 무엇을 놓치고 있나요?

또한 이 파생을 개선하거나 단순화할 수 있는 다른 방법이 있습니까?

답변1

이 오류는 파일의 shebang이 /usr/bin/envNix 샌드박스에서 사용할 수 없는 유사한 콘텐츠를 가리키기 때문에 발생합니다.

우리는 일반적으로 섹션 patchShebangs의 파일을 호출하여 이 문제를 해결합니다 postPatch.

파일이 실행 가능하지 않은 경우도 있으므로 실행 가능하게 만들어야 할 수도 있습니다. 이는 문제가 되지 않습니다.여기하지만.

postPatch = ''
  chmod +x build-aux/meson/postinstall.py # not necessary here
  patchShebangs build-aux/meson/postinstall.py
'';

또한 우리는 이미 (불완전)PR은 엽산을 첨가한다, 한 번 살펴보는 것이 좋을 것 같습니다.

관련 정보