问题标签 [nix-shell]

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.

0 投票
0 回答
547 浏览

nix - 直接从 nix-shell 启动 IDE

我是 NixOs 和 nix-shell 的新手,并且仍在了解它的习语。现在我有一个 Java 项目,我正在使用 nix-shelldirenv加载构建工具链,包括 jdk 和 bazel。

我希望 IDE(在我的情况下为 ItelliJ)使用相同的工具链。我天真的方法是使用如下的 nix-shell 脚本,它位于default.nix我项目的根目录中,并且由 direnv 拾取。

然后我可以从 shell 使用以下命令启动 IntelliJ:

虽然它有效,但我有以下担忧:

  1. 将 IDE 加载到我的命令行 shell 中似乎非常繁重,尤其是对于 CI 构建。
  2. 随着我添加团队使用的其他 IDE(如 Eclipse),情况会变得更糟。
  3. 这似乎是错误的方式。

当然,我可以使用其他 Nix 工具安装这些 IDE 包,例如家庭管理器,在正确的配置步骤后,它会在菜单中为我提供应用程序启动器;但是,我喜欢直接从 shell 启动 IDE,以确保正确的工具链到位并位于正确的路径中。

我下一步的想法是从中删除 IDE 输入default.nix并创建自定义 nix 文件,其中包括 IDE 的输入和启动器脚本,以实际使用 nix-shell 启动 IDE。我希望,如果从上面的 shell 执行,它将继承其输入,用 IDE 输入扩充它,然后启动 IDE。

同样,我的目标是使用 nix 启动我的 IDE,并使用default.nix项目根目录中的包和配置设置来确保一致性。

建议,包括替代方法,表示赞赏。

0 投票
1 回答
456 浏览

nix - nix-shell 的等效 shell.nix 是什么?' - 一个 gnused

我正在尝试探索 gnu sed 代码库。

我可以从命令行执行此操作:

然后在 sed 等下编辑代码

但是我想使用未安装的 ctags:

安装软件包但:

得到错误:

我意识到我必须使用 shell.nix 但找不到上面的 mkShell 示例。

PS 两次调用 nix-shell 实现了所需的结果,但这似乎很笨拙:

0 投票
2 回答
1136 浏览

nix - Nix:派生如何在不调用 builder 的情况下在 nix-shell 中设置 PATH?

推导需要很多参数,但其中只有一个builder是可执行的,对吗?

而且nix-shell并没有真正执行builder,这意味着无法运行诸如export PATH=....

但是我发现其他一些派生提供了他们的虚拟 shell 环境,其中 PATH 是任意设置的,例如.envhaskell 包派生的属性。

我还发现mkDerivationbuildInput包的子目录添加/bin到 PATH(如果存在)。

他们是怎么做到的?内置派生函数是否有一些特殊参数可以让您在评估时运行自定义命令?

0 投票
0 回答
110 浏览

lua - 在 nix-shell `shell.nix` 中构建 Lua 包

我正在尝试构建一个不在当前 nixpkgs 存储库中的 nix-shell。具体来说:raylua

我已经设法使用 Nim 将 Raylib 本身构建为 nix-shell的一部分。我现在正在尝试修改它以使用 Lua Raylib 和 Lua 库,但不确定如何继续。

我看到人们使用nix-shell ...命令来绕过很多这种痛苦,但我想要一些我可以提交给 repo 的东西。

我拥有的文件是:

shell.nix

nix/raylib/default.nix

https://github.com/adamlwgriffiths/nix-nim/中的相同

nix/raylua/default.nix

0 投票
2 回答
172 浏览

nix-shell - 什么是 `nix-env -f` 的 `nix-shell` 等价物-iA ...`?

或者这只能通过编写自定义来实现shell.nix

例如:


有人可能会争辩说这个问题在这里是题外话,因为它询问命令行选项,但解决方案可能只是上面的 Nix 表达式(或提供的表达式-E)。无论如何,如果我的论点有缺陷,请告诉我。谢谢!

0 投票
0 回答
69 浏览

python - 如何使用 nix-shell 从 PyPi 安装 playwright?

我正在尝试创建一个nix-shell安装pythonplaywright. 我的代码确实安装了 python,但我无法playwright正确安装。

这给了我以下错误:

我怎样才能修复它的哈希?

0 投票
1 回答
46 浏览

nix - 在 nix-shell 中找不到 ortools

如下启动 nix-shell

其次是

结果是

任何关于如何解决这个问题的建议都值得赞赏!

0 投票
1 回答
164 浏览

shell - 如何合并两个 shell.nix 文件?

我有第一个 shell.nix 文件:

我有第二个 shell.nix 文件:

首先,我尝试将第二个附加到第一个,但随后收到以下错误:

之后,我尝试了许多其他组合如何将这两者结合在一起,但我从未成功过。你能帮我解决这个问题吗?

0 投票
0 回答
43 浏览

python - python setup.py 在 nix-shell 中安装

我有一个用nix-shell foo.nix. 我现在想用经典的python setup.py install. 当我尝试这样做时,我收到了消息[Errno 13] Permission denied: '/nix/store/kp0qz36y3cwbhwb65sw5f2vqbbnhs8dg-python3-3.7.11-env/lib/python3.7/site-packages/test-easy-install-30257.write-test'

我可以做到这一点python setup.py install --prefix=$out --root=$out,这似乎成功了,但是我无法导入我刚刚安装的包。

如何通过修改 foo.nix 或仅在 nix shell 中手动执行某些操作来安装此软件包。

根据 Charles Duffy 的建议,我尝试在 virtualenv 中完成所有这些操作,并且它的行为方式相同。 python setup.py install在 virtualenv 中给了我[Errno 13] Permission denied: '/nix/store/kp0qz36y3cwbh....

如果我安装python setup.py install --prefix=$VIRTUAL_ENV它似乎可以工作,但我无法导入包。与--user选项相同。我想我可以去手动编辑 python 路径以强制它工作,但这并不理想。

0 投票
1 回答
63 浏览

nix - 尼克斯壳#!引用父目录中的 shell.nix

我最近开始几乎所有的脚本

但这要求default.nix/shell.nix与脚本位于同一目录中,但情况并非总是如此。有没有办法告诉nix-shell查看*.nix文件的所有父目录?