web-dev-qa-db-ja.com

依存関係が欠落しているNixOSの処理〜libpng-dev

パッケージがほとんど利用できるArchのようなOSから離れて、libpng-devのような欠落している開発依存関係をどのように処理しますか?

Nodeパッケージの依存関係-pngquant-binに問題があります。pngquant-binのビルドはlibpng-devパッケージに依存しています。libpngpngquantはどちらもNixpkgsで利用できますが、libpng-devを見つけようとしています。

この場合の最良の解決策は何ですか?例えばオーバーレイの設定、ソースからのパッケージの作成...

調査:

libpng-config --cflagを使用すると、開発ヘッダーがどこにあるかがわかります。どういうわけか、NPMパッケージをこれらのヘッダーに向けてpngquant-binバイナリを構築できると思います。

詳細を提供する問題をGitHubに記録しました: https://github.com/svanderburg/node2nix/issues/12

免責事項:私はNixOSを初めて使用します-Archから来ました。 NixOSを愛するアドバイスに感謝します!

2
YodaScholtz

Libpngパッケージには複数の出力があり、そのうちの1つがdevビルドであるようです。私のmacOSマシンの場合:

brocking@station1:~/dev > nix-env -qasA nixpkgs.libpng.dev
-PS  libpng-apng-1.6.34

マニュアル には、これをカバーするnixpkgsコレクションの章があります。 IIRC nixpkgsコレクションには、過去数回のメジャーリリースの複数の出力が含まれており、現在、多くのパッケージがこの方法で構築されていると思います。

PS nixpkgsマニュアルには、 node.jsパッケージ をカバーするセクションもあります。これも一見の価値があります。


あなたが開いたGitHubの問題をざっと見てみましたが、間違いなく正しい方向に進んでいるようですが、残念ながら、node.jsまたはnode2nixのどちらにも精通していないため、確認できません。正確に問題は何ですか。

ただし、私が言える一般的なポイントの1つは、Nixで何かをパッケージ化しようとして、以下で発生したようなエラーが発生した場合は、ほとんどの場合、どちらかまたは両方を意味します。1.nixにその方法を伝える必要があります。依存関係(この場合はlibpng-dev)を取得できます。2。ビルドしようとしているnix式に1への参照が含まれていることを確認する必要があります(多くの場合、これはbuildInputs nix属性、使用しているビルドシステムによって大きく異なります)、あなたの場合、生成されたdefault.nixファイルのpngquant式の引数として使用されている可能性があります。 node2nixによるものですが、私が言ったように、それは私にはまったくなじみがないので、それについてはかなり間違っているかもしれません。

ℹ compiling from source ✔ pngquant pre-build test passed successfully ✖ RequestError: pngquant failed to build, make sure that libpng-dev is installed

#nixos IRCチャネルのチャットで、より多くのより速いヘルプを見つけることができます。そこにいる人々は非常に役に立ち、私は以前にそこで多くの知識を見つけました。

最後にもう1つ、Nixの大きな強みはその純度です。どこにあるかすべてを正確に伝える必要があり、それは少し気が遠くなる可能性があります。最初。しかし、頭を悩ませたら、純粋さは本当に感謝できるものです。

4
brocking