問題タブ [nix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - cabal と nix を連携させる方法
私が理解している限り、Nixはcabal サンドボックスの代替です。ようやく Nix をインストールできましたが、サンドボックスをどのように置き換えることができるのかまだわかりません。
Nix とラップされたバージョンの GHC を使用する場合、cabal は必要ないことを理解しています。ただし、パッケージを公開したい場合は、ある時点で cabal を使用してパッケージ化する必要があります。したがって、NIX 内で cabal 構成を作成およびテストできる必要があります。どうやってそれをしますか?
理想的には、cabal サンドボックスに似た環境を希望しますが、NIX 内に「含まれる」ことは可能ですか? 実際、私が本当に望んでいるのは、ネストされたサンドボックスと同等のものです。私は通常、複数のパッケージで構成されるプロジェクトに取り組んでいるためです。
現在のワークフローに関する最新情報
現在、私は 2 つまたは 3 つの独立したプロジェクト (P1、P2、P3) に取り組んでおり、それぞれが 2 つまたは 3 つの Cabal モジュール/パッケージで構成されています。たとえば、P1 については、L11、L12 (ライブラリ) および E11 (実行可能ファイル) です。E11 は L11 に依存する L12 に依存します。実行可能ファイルはプライベートであり、プライベート git リポジトリに保持されているため、主にライブラリから実行可能ファイルを分割しました。
理論的には、各プロジェクトはこの独自のサンドボックス (サブモジュール間で共有) を持つことができます。私はそれを試しました(L11 L12とE11に共通のサンドボックスを用意しました)が、L11を変更すると、E11が依存しているため再構築できないため、すぐに面倒になり、最初にE11をアンインストールしてL11を再コンパイルする必要があります。正確にはそうではないかもしれませんが、同様の問題が発生します。ときどきL11を改造していればこれでいいのですが、実際はE11以上に改造しています。
共有サンドボックスが機能しないため、パッケージ ソリューションごとに 1 つのサンドボックスに戻りました。機能していますが、理想的とは言えません。主な問題は、L11 を変更した場合、それを 2 回 (L11 で 1 回、次に E11 で) コンパイルする必要があることです。また、誰もが知っているように、新しいサンドボックスを開始するたびに、すべてのパッケージをダウンロードして再コンパイルするまでしばらく待つ必要があります。
したがって、Nix を使用することで、プロジェクトごとに個別のカバールの「環境」をセットアップできるようになり、上記の問題がすべて解決されることを望んでいます。
これがより明確であることを願っています。
haskell - Nix & Haskell - cabal2nix の default.nix と汎用の shell.nix を使用
かなり基本的なcabalファイルから
そして、のshell.nix
nix-shell で cabal configure を実行すると、テキストなどのパッケージが見つからないというメッセージが表示されます。
次のように、テキストパッケージを明示的にshell.nixに入れると
cabal の構成は問題ありませんが、hs.thispackage.propagatedNativeBuildInputs がこれらのパッケージを提供することを期待しています。
非常に基本的な haskell プロジェクトは、次の場所で見ることができます。
https://github.com/fatlazycat/haskell-nix-helloworld
あなたがこのように働くことができると仮定するのは間違っていますか?
ありがとう
haskell - Nix から Haskell パッケージをインストールする
具体的には、 Hasteをからインストールしようとしてnix
います。
にhasteCompiler
エントリがnixpkgs/pkgs/top-level/haskell-packages.nix
あり、適切な.nix
ファイルが にありますnixpkgs/pkgs/development/libraries/haskell/haste-compiler/
が、インストール方法がわかりません。具体的には、どれも
私がやりたいことをして、部分文字列を含むものを利用可能なパッケージとしてnix-env -qa
リストしません。haste
何かご意見は?
haskell - NixOS で新しい haskell-ng インフラストラクチャを使用するにはどうすればよいですか?
新しい haskell-ng インフラストラクチャを使用して、NixOS で単純な Haskell 開発環境をセットアップするにはどうすればよいですか?
nix - nix を /nix 以外の別の場所にインストールできますか?
しばらくすると、開発マシン (128GB のみ) のディスク容量が不足し始めています。このため、ローカル キャッシュ ストア (.npm、.m2、.ivy2 など) を外部ドライブに移動することにしました。
私は最近、よく知られている「陰謀団地獄」を経験した後、Haskell 開発のために Nix に切り替えました。ただし、Nix ストアの場所を変更する適切な方法は見つかりませんでした。
出来ますか?