如何在我的苹果酒 REPL 中加载这个 Clojure 项目?为什么我收到消息 "The clojure executable isn’t on your ‘exec-path’" (NixOS)?

How to load this Clojure project in my cider REPL? Why I am receiving the message "The clojure executable isn’t on your ‘exec-path’" (NixOS)?

最近开始学习Clojure。我一直在使用 Emacs 和 cider (REPL)。另外,我有 NixOS 作为 OS.

我已经能够使用此环境在 Clojure 中成功编程。通常,我会创建文件,然后转到 .clj 所在的目录,执行 cider-jack-in,创建 REPL,交互式编程魔法就会发生。因此,我能够加载文件、加载旧函数的新版本等。

如果我只是启动 Emacs 并执行 `cider-jack-in.迷你缓冲区询问:

Are you sure you want to run `cider-jack-in' without a Clojure project? (y or n)

回答y后,一切正常。

在阅读Clojure for the Brave and True这本书的同时,我也成功使用了:

$ lein run

出于学习目的,我决定探索一些开源项目。因此,我做了一个 git clone 这个开源 project.

在文件夹中,我决定重现到目前为止有效的步骤。但是,它 起作用。执行 cider-jack-in 后,迷你缓冲区回显以下内容:

The clojure executable isn’t on your ‘exec-path

此外,如果我尝试使用 lein,我会得到:

[pedro@system:~/projects/http-cron]$ lein run
No :main namespace specified in project.clj.

Obs.: 如果我在 shell 上键入 clojure,这就是我得到的:

[pedro@system:~]$ clojure
The program 'clojure' is not in your PATH. You can make it available in an
ephemeral shell by typing:
  nix-shell -p clojure

为什么会这样?

我该如何解决这个问题(考虑到我使用的是 NixOS)?

走命令式路线,这取决于您使用的是带有频道(默认)还是 flakes 的 NixOS,您可以通过以下方式将 clojure 永久安装到您的环境中:

  • 频道:nix-env -f '<nixpkgs>' -iA clojure
  • 薄片:nix profile install nixpkgs#clojure

然而,首选(声明性)方式是在 /etc/nixos/configuration.nix 和 运行 sudo nixos-rebuild switch.

中将 clojure 添加到 environment.systemPackages