标签: nixos

何时以及如何使用default.nix,shell.nix和release.nix?

学习如何使用Nix包管理器时遇到的第一类Nix表达式之一是default.nix; 上精彩NixOS IRC频道我学到的存在shell.nix,并release.nix为好.

我得到的印象是-大概- default.nix是用来用nix-build的只是建立包,shell.nix与用于nix-shell制造与封装的交互环境和release.nix使用与nixops部署包.

由于这可能是不完整和部分不正确的,并且由于这似乎没有明确记录,我想要清楚准确地解释这些"标准文件"; 特别是,对于每种文件类型(以及我缺少的任何其他标准文件),我想知道:

  1. 这种文件的典型用例是什么?他们应该不能被用来做什么?
  2. 这种文件类型的结构通常如何?它的最低要求是什么?
  3. 你能否在其使用上下文中展示这样一个文件的范例,即使用说明并包含在shell中使用它或其他Nix表达式所需的代码行?

作为一个额外的奖励问题,我想知道在将软件包安装到NixOS模块时应该使用哪些标准文件(如果有的话)?怎么办?

nixos nix nixops

36
推荐指数
2
解决办法
5742
查看次数

Nix可组合派生选项

我正在尝试configuration.nix通过搜索pkgsnixpkgs源代码树的子文件夹,选择模块的定义以了解可用选项来了解我在特定程序中可用的选项.但是,我遇到了一个麻烦的PHP案例- 它是一个特殊的派生,一个可组合的派生.我无法看到我用PHP提供的选项 - 这对于启用mcrypt,gd等特殊模块非常有帮助.任何对此的帮助都将非常感谢!

php configuration mcrypt nixos

30
推荐指数
1
解决办法
1154
查看次数

如何在NixOS上使用新的haskell-ng基础架构?

如何使用新的haskell-ng基础架构在NixOS上设置简单的Haskell开发环境?

haskell ghc nixos nix

24
推荐指数
1
解决办法
2613
查看次数

Disnix和NixOps之间有什么关系?

nixos.org上的一个顶级项目是Disnix,"Nix的分布式部署扩展".另一个项目是NixOps,"用于在网络或云中部署NixOS机器的工具".

该功能设置声音非常相似.他们是竞争对手,还是另一个的继承者,还是他们解决了不同的问题?如果他们似乎是"竞争对手",那么差异是什么,我应该使用哪些?

编辑:如果有任何迹象,NixOps似乎正在积极开发中,但我无法看到Disnix最后一次工作.

nixos

21
推荐指数
2
解决办法
1317
查看次数

Nix中的构建与运行时依赖关系

我刚刚开始接触Nix,如果我在文档中错过了我的问题的答案,那么道歉.

我想使用Nix来设置一个安全的生产机器,其中包含最少的库和可执行文件.我不希望出现任何编译器或其他构建工具,因为这些可能存在安全风险.

当我安装一些软件包时,它们似乎只依赖于最小的运行时依赖项集.例如,如果我安装,apache-tomcat-8.0.23那么我得到一个Java运行时(JRE)和包含Tomcat的预构建JAR文件.

另一方面,一些软件包似乎包含一个完整的构建工具链作为依赖项.以另一个基于Java的示例为例,当我安装spark-1.4.0Nix 时,请下载包含编译器的Java开发工具包(JDK),它还会提取Maven构建工具等.

所以,我的问题如下:

  1. Nix包是否在构建和运行时依赖关系之间做出了区分?
  2. 为什么有些软件包似乎依赖于构建工具而其他软件包只需要运行时?这完全取决于包作者如何包装应用程序?
  3. 如果一个软件包包含我不想要的构建依赖项,除了为同一个应用程序设计我自己的替代包装之外,我作为运营商可以做些什么吗?

非常感谢.

nixos nix nixpkgs

18
推荐指数
1
解决办法
1984
查看次数

nixos安装问题,“找不到命令:nix”

我删除了 /nix 并开始全新安装 nix,但是在安装 nix install nix (MACBook Pro M1 arm64 BigSur) 后 sh <(curl -L https://nixos.org/nix/install) 运行,$ nix但我得到了输出zsh: command not found: nix,同样,nix-shell/nix 卷也未创建,我也尝试了指令在https://docs.plutus-community.com/docs/setup/MacOS.html仍然是同样的问题

nixos nix

17
推荐指数
1
解决办法
9921
查看次数

错误:在 Nix 搜索路径中找不到文件“nixpkgs”(使用 $NIX_PATH 或 -I 添加它)

我曾经sh <(curl -L https://nixos.org/nix/install) --daemon安装过 Nix。\n安装完成后运行nix-shell -p nix-info --run "nix-info -m"以验证安装。\n它返回以下错误

\n

输出

\n
warning: Nix search path entry \'/nix/var/nix/profiles/per-user/kana/channels\' does not exist, ignoring\nerror: file \'nixpkgs\' was not found in the Nix search path (add it using $NIX_PATH or -I)\n\n       at \xc2\xabstring\xc2\xbb:1:25:\n\n            1| {...}@args: with import <nixpkgs> args; (pkgs.runCommandCC or pkgs.runCommand) "shell" { buildInputs = [ (nix-info) ]; } ""\n             |                         ^\n(use \'--show-trace\' to show detailed location information)\n
Run Code Online (Sandbox Code Playgroud)\n

installation ubuntu nixos nix nixpkgs

16
推荐指数
2
解决办法
8145
查看次数

如何将系统升级到nixos-unstable?

如何确保我在系统nixos安装上安装的所有软件包(即/etc/nixos/configuration.nix我安装的软件包中使用的软件包sudo nixos-rebuild switch)使用的是nixos/nixpkgs的最新(不稳定)版本?

nixos

14
推荐指数
2
解决办法
5039
查看次数

在nix上的haskell开发环境中使用hoogle

我试图在Haskell开发环境中使用hoogle,就像O'Charles的wiki所描述的那样:

我已经修改shell.nix如下使用hoogleLocal,但它似乎没有为我安装hoogle二进制文件.

let
  pkgs = import <nixpkgs> {};

  # I'm attempting to use hoogle here, but it is not working.
  haskellPackages =
    let callPackage = pkgs.lib.callPackageWith haskellPackages;
    in pkgs.recurseIntoAttrs (pkgs.haskellPackages.override {
      extension = self: super: {
        thiscurrentpackage = self.callPackage ./. {};
        hoogleLocal = pkgs.haskellPackages.hoogleLocal.override {
          packages = self.thiscurrentpackage;
        };
      };
    });
in pkgs.myEnvFun {
  name = haskellPackages.thiscurrentpackage.name;
  buildInputs = [
    (haskellPackages.ghcWithPackages (hs: ([
      hs.cabalInstall
      hs.ghcMod
      hs.yesodBin
      # This doesn't appear to install the hoogle …
Run Code Online (Sandbox Code Playgroud)

haskell hoogle nixos

13
推荐指数
2
解决办法
2406
查看次数

nix路径类型何时进入nix存储区,何时不进入?

我已经在过去注意到nix,一个./myfile.txt路径类型似乎

  • 有时评价为/home/myuser/mydir/myfile.txt,和
  • 有时候/nix/store/55j24v9qwdarikv7kd3lc0pvxdr9r2y8-myfile.txt.

我想知道究竟何时发生这种情况.

这对于包含任何形式的秘密信息的文件尤为重要,因为/nix/store系统中的所有用户都可以读取所有文件.

(使用时nixops,为此目的有一个特殊的"键"功能,请参阅本手册中的管理键部分,但我认为这种路径到存储路径复制nix本身和如何发生的时间和方式仍然很重要.)

nixos nix

12
推荐指数
1
解决办法
892
查看次数

标签 统计

nixos ×10

nix ×6

haskell ×2

nixpkgs ×2

configuration ×1

ghc ×1

hoogle ×1

installation ×1

mcrypt ×1

nixops ×1

php ×1

ubuntu ×1