【问题标题】:Configure nix-shell to use a shell other than Bash?将 nix-shell 配置为使用 Bash 以外的 shell?
【发布时间】:2016-01-06 21:41:35
【问题描述】:

我使用的是 NixOS 15 和 nix-shell v1.10。我现在使用 Zsh 作为我的主要 shell,并且当我在由 Nix 表达式构建的开发环境中工作时,我也想在 nix-shell 中将它与 Oh-My-Zsh 结合使用。

如果有帮助,这里是我为 Rails 项目设置的 Nix 环境之一:

with import <nixpkgs> {}; {
  cannyFreeRadicalEnv = stdenv.mkDerivation rec {
    name = "canny-free-radical-env";
    version = "0.1";
    src = ./.;
    buildInputs = [
        stdenv
        ruby_2_2_2
        bundler_HEAD
        zlib
        postgresql94
        sqlite
    ];
  };
}

** 编辑 **

以这种方式运行命令不会在 CLI 提示中表明我在 nix-shell 中。有没有一种简单的方法可以检测到这一点,以便我可以在我的zshrc 中快速编写脚本?

【问题讨论】:

    标签: shell configuration development-environment nixos


    【解决方案1】:

    使用以下命令打开 shell:

    nix-shell . --command "zsh"
    

    感谢#nixos IRC 频道上的人给我一个快速的答复。

    【讨论】:

    • 我不接受这个,以防有人有更好的答案。也许有一种方法可以更有效地替换 nix-shell 运行的实际基础 shell?我认为使用 --command 只会在创建 shell 时从原始 Bash shell 执行 Zsh。
    • 已经过去了几天,我想我现在不会得到更好的答案。
    • 只要你不需要调用 nix-shell 生成的 shell 函数(configurePhase 等)
    【解决方案2】:

    最近打开了PR #545 将解决这个问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-20
      • 2017-11-09
      • 2016-12-05
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      相关资源
      最近更新 更多