대부분의 패키지를 사용할 수 있는 Arch와 같은 운영 체제에서 벗어나 누락된 개발 종속성을 처리하는 방법은 무엇입니까 libpng-dev
?
노드 패키지 종속성 문제가 있습니다 pngquant-bin
. libpng-dev
pngQuant-bin을 빌드하는 방법은 패키지 에 따라 다릅니다 . libpng
& pngquant
는 Nixpkgs에서 사용할 수 있지만 libpng-dev
.
이 상황에서 가장 좋은 해결책은 무엇입니까? 재정의 설정, 소스에서 패키지 생성 등...
연구:
libpng-config --cflag
개발 제목이 표시되는 위치를 사용하세요 . 나는 pngquant-bin
바이너리를 빌드하기 위해 NPM 패키지를 이 헤더로 어떻게든 보낼 수 있다고 가정합니다 .
자세한 내용과 함께 GitHub에 문제를 기록했습니다.https://github.com/svanderburg/node2nix/issues/123
부인 성명:저는 NixOS를 처음 사용합니다. Arch에서 왔습니다. 어떤 조언이라도 감사하겠습니다. NixOS를 사랑해주세요!
답변1
libpng 패키지에는 여러 출력이 있는 것 같습니다. 그 중 하나는 개발 버전입니다. 내 macOS 컴퓨터에서:
brocking@station1:~/dev > nix-env -qasA nixpkgs.libpng.dev
-PS libpng-apng-1.6.34
그 안에 장이 있습니다수동이 콘텐츠를 다루는 컬렉션입니다 nixpkgs
. IIRC nixpkgs 컬렉션에는 지난 몇 가지 주요 릴리스의 여러 출력이 포함되어 있으며 현재 많은 패키지가 이런 방식으로 구축되어 있다고 생각합니다.
PS nixpkgs 매뉴얼에도 다음 내용을 다루는 섹션이 있습니다.Node.js 패키지이것도 볼만한 가치가 있을 것 같습니다.
귀하가 공개한 GitHub 문제를 잠깐 살펴보았는데 올바른 방향으로 가고 있는 것 같습니다. 하지만 불행하게도 저는 node2nix
문제가 무엇인지 정확히 알 수 있을 만큼 Node.js에 익숙하지 않습니다.
그러나 내가 할 수 있는 한 가지 일반적인 요점은 Nix로 무언가를 패키징하려고 할 때 다음과 같은 오류가 발생할 때마다 거의 항상 1 중 하나 또는 둘 다를 의미한다는 것입니다. nix에 종속성을 가져올 수 있는 방법을 알려주어야 합니다( libpng-dev
이 경우 ) 및 2. 빌드하려는 nix 표현식에 어떤 방식으로든 1에 대한 참조가 포함되어 있는지 확인해야 합니다( buildInputs
어떤 빌드 시스템을 사용하고 있는지에 따라 크게 다르지만 일반적으로 nix 속성을 통해). 경우 pngquant
에 따라 생성된 파일의 표현식에 대한 매개변수 일 수 있다고 추측합니다 . 비록 제가 말했듯이 그것은 나에게 매우 새로운 것이므로 그것에 대해 완전히 틀렸을 수도 있습니다.default.nix
node2nix
ℹ compiling from source ✔ pngquant pre-build test passed successfully ✖ RequestError: pngquant failed to build, make sure that libpng-dev is installed
#nixos IRC 채널의 채팅에서 더 많고 더 빠른 도움을 찾을 수 있습니다. 그곳의 사람들은 매우 도움이 되고 저는 이전에 그곳에서 많은 지식을 찾았습니다.
마지막으로 Nix의 힘은 순수성입니다. Nix에게 Nix를 어디서 찾을 수 있는지 정확하게 알려주어야 합니다.모든 것, 처음에는 조금 어려울 수 있습니다. 그러나 일단 이것을 이해하고 나면 그 순수함을 진심으로 감사하게 될 것입니다.