ファイルに保存して一時ファイルを使用しても問題ありません。
$ url="https://raw.githubusercontent.com/toraritte/shell.nixes/main/deno-latest-shell.nix"
$ curl $url > default.nix
$ nix-shell
# or
$ nix-shell default.nix
しかし、一時ファイルを使わずにこれを行う方法は何ですか?これが私が今まで試したことです:
管路
$ curl $url | nix-shell -
その後、ファイルがダウンロードされます...何も起こりません。
$ curl $url | nix-shell
default.nix
(もちろん)エラーが発生します。
プロセスの置き換え
$ nix-shell <(curl $url)
# ... output...
error: getting status of '/dev/fd/pipe:[11284302]': No such file or directory
ただし、変更すると、nix-shell
出力を通常のファイルにcat
保存してその内容を印刷するのと同じように機能します。curl
(おそらくこの方法でも同じ問題が発生した可能性があります。プロセス置換<()がssh -Fで機能しない理由?解決策は、=(...)
基本的に後ろから一時ファイルを使用するzshと特殊演算子を使用することです。 )
あることを知っていますが、nix-shell -E
特定の例のNix式にコメントが含まれていなくても問題になる可能性があります...
ベストアンサー1
これはNixのバグのようです。ここにも同様のバグがあります。nix eval
。
問題が解決するまでnix-shell -E "$(curl $url)"
。nix-shell -E "import (builtins.fetchurl $url)"
実行する前に、式が信頼できることを確認してください。式にはshellHook
任意のbashコードを含めることができ、nix-shellがこれを実行します。