标签: nix

使用 nix-env -f 输入 Nix 表达式中的名称冲突

按照之前给我的答案,我开始关注 nixpkgs-unstable 频道,并使用此存储库的 git 克隆:https : //github.com/NixOS/nixpkgs-channels/

我的克隆在~/nixpkgs. 我打电话nix-shell给选项-I ~,它工作正常。因为nix-env-I选项不存在,但我知道应该改用该-f选项。到目前为止(在两台不同的机器上)我就是这样做的(nix-env使用 option调用-f ~)并且它运行良好。

现在,我在第三台机器上,我试图重现相同的过程。我尝试使用命令安装 nixpkgs-unstable 但不在我的系统通道 nixos-16.09 中的软件包,nix-env -f ~ -iA nixpkgs.exercism但它失败并显示以下错误消息:

warning: name collision in input Nix expressions, skipping ‘/home/theo/nixpkgs’
error: attribute ‘exercism’ in selection path ‘nixpkgs.exercism’ not found
Run Code Online (Sandbox Code Playgroud)

搜索此错误消息给了我这个http://lists.science.uu.nl/pipermail/nix-dev/2013-October/011898.html 但我不是在描述的情况。我没有以普通用户的身份关注任何频道(nix-channel --list答案为空),我唯一的系统范围频道称为 nixos(进一步证实了.nix-defexpr/仅包含channels_root/又包含binary-caches,manifest.nix和的事实nixos)。

我做错了什么? …

nixos nix

6
推荐指数
1
解决办法
2075
查看次数

如何升级 Nixos 以使用新的频道 nixos 版本?

我目前在 18.03 并且想升级到 18.09。我该怎么做呢?

我通过网络搜索找到了以下内容,但不是很确定:https : //discourse.nixos.org/t/how-to-upgrade-from-18-03-to-18-09/933

我假设我可能只是更改我引用的频道nixos?但我不确定这是否适合在出现问题时允许回滚。

sudo nix-channel --list        
nixos https://nixos.org/channels/nixos-18.03
unstable https://nixos.org/channels/nixos-unstable
Run Code Online (Sandbox Code Playgroud)

此外,我还看到了以下内容:https : //github.com/NixOS/nixpkgs/issues/40351#issuecomment-388405973(引用如下) - 我需要考虑这一点吗?

还:

/etc/nixos/configuration.nix:

# 这个值决定了你的系统要兼容的 NixOS 版本,以避免破坏一些软件,比如数据库 # 服务器。只有在 NixOS 发行说明说你应该这样做之后,你才应该改变它。system.stateVersion = "17.09"; #你看评论了吗?我没有看到何时发出更改此命令的命令。

我阅读了发行说明、新闻和可用信息。等待命令执行它,但没有找到。

无论如何,发布几天后,我更改了“17.09”->“18.03”。

nixos nix dist-upgrade

6
推荐指数
1
解决办法
5957
查看次数

如何诊断失败的 nix-build?

如何诊断 nix-build 失败?

目前我看到输出为:

nix build -v
warning: dumping very large path (> 256 MiB); this may run out of memory
building '/nix/store/fdrm6kbm68vld3bhfjizv684ck725lyf-blog.drv'...
builder for '/nix/store/fdrm6kbm68vld3bhfjizv684ck725lyf-blog.drv' failed with exit code 1; last 5 log lines:
  unpacking sources
  unpacking source archive /nix/store/s7r5vlvp49ad6a9d5hqhsiaxw691iyhf-Blog
  source root is Blog
  patching sources
  configuring
[0 built (1 failed), 0.0 MiB DL]
error: build of '/nix/store/fdrm6kbm68vld3bhfjizv684ck725lyf-blog.drv' failed
Run Code Online (Sandbox Code Playgroud)

我希望找到一些日志/错误,说明为什么它无法构建?


以下来自/sf/answers/3308506281/

我已经尝试添加build-cache-failures = true;到,default.nix但是我仍然看不到以下输出:

nix-store --read-log
Run Code Online (Sandbox Code Playgroud)

nix-store --query-failed-paths结果:

error: no operation …
Run Code Online (Sandbox Code Playgroud)

nix

6
推荐指数
2
解决办法
2660
查看次数

Nixos 无法修改或 chmod nix 配置 - '/etc/nix/nix.conf'

[root@nixos:/etc/nix]# sudo chmod 777 /etc/nix/nix.conf
chmod: changing permissions of '/etc/nix/nix.conf': Read-only file system
Run Code Online (Sandbox Code Playgroud)

我记得这是一些文件系统/Linux 内核实用程序来更改它,但我不确定它叫什么?

permissions nixos nix

6
推荐指数
1
解决办法
3680
查看次数

如何确定 Hydra 中为 Nix nixpkgs 缓存的软件包版本?

我试图用旧的 nixpkgs 通道/分支(18.03)构建一个旧的 Haskell 项目。

在我第一次尝试构建它时,我将编译器版本指定为ghc843...但是在构建时 - 当我期望它来自缓存时,它似乎正在构建所有外部库。

幸运的是,我记得我之前遇到过这个问题:调试为什么 nix 不必要地构建一个包,而它应该位于 nixpkgs 二进制缓存中?

问题基本上是我使用的是 ghc 的“非默认”版本(Hydra 不会构建/缓存)。

所以现在我的问题是,我怎样才能找到“默认”编译器版本 - 或者 Hydra 构建/缓存的版本?

{
  nixpkgs ? import <nixpkgs> {}
, sources ? import ./nix/sources.nix
, compiler ? "ghc843" } :
let
  niv = import sources.nixpkgs {
    overlays = [
      (_ : _ : { niv = import sources.niv {}; })
    ] ;
    config = {};
  };
  pkgs = niv.pkgs;
  myHaskellPackages = pkgs.haskell.packages.${compiler}.override {
  };
in
(myHaskellPackages.callCabal2nix …
Run Code Online (Sandbox Code Playgroud)

nixos nix

6
推荐指数
1
解决办法
1034
查看次数

在 NixOs 上安装 .net core sdk 2.0(找不到模板)

恢复

我目前正在尝试使用 NixOs 中的 Nix 包管理器安装 dot-net-core-sdk 2.0。

我对 NixOs、Nix、bash 脚本和 ELF 之类的东西都很陌生。但是我认为我已经成功地为 dot-net-core-sdk 2.0 创建了一个有效的 Nix 包描述。

但是,当我尝试创建一个新console项目时,它抱怨找不到控制台模板:

No templates matched the input template name: console.
Run Code Online (Sandbox Code Playgroud)

说来话长...

我已经定义了我的 Nix 包和构建脚本,如下所示:

dotnet-sdk.nix

with import <nixpkgs> {};

stdenv.mkDerivation {
  name = "dotnet-sdk-2.0";

  builder = ./builder.sh;

  libPath = stdenv.lib.makeLibraryPath
    [ lttng-tools kerberos zlib gettext openssl icu libunwind eject stdenv.cc.cc glib ];

  src = fetchurl {
    url = "https://download.microsoft.com/download/1/B/4/1B4DE605-8378-47A5-B01B-2C79D6C55519/dotnet-sdk-2.0.0-linux-x64.tar.gz";
    sha256 = "6059a6f72fb7aa6205ef4b52583e9c041fd128e768870a0fc4a33ed84c98ca6b";
  };
}
Run Code Online (Sandbox Code Playgroud)

建设者.sh

source $stdenv/setup

mkdir -p $out/dotnet-sdk

echo …
Run Code Online (Sandbox Code Playgroud)

.net nixos patchelf nix

5
推荐指数
0
解决办法
869
查看次数

如何在 nix 中覆盖损坏的 Haskell 包?

我使用 NixOS,并且正在尝试为我的 Haskell 项目设置 Nix Haskell 环境。我有一个用 Nix 编写的 Haskell 包,我试图通过它来工作nix-shell,但是依赖的 Haskell 包 Clay不会构建,正如我刚刚打开的错误报告中所述。我怎样才能用这个Haskell包的不同版本(旧的或新的,我想这并不重要)覆盖这个包?

haskell nixos nix

5
推荐指数
1
解决办法
2119
查看次数

我可以像 git 一样在版本控制中管理我的 NixOS 配置吗?

长话短说:到目前为止,我只使用了具有“命令式配置管理/打包”方法的发行版。而且,...我对使用命令式配置管理(在试验时)难以追踪损坏/问题感到恼火。

我找到了NixOS,它做广告:

NixOS 有一种完全声明式的配置管理方法:你用 NixOS 的模块化语言编写系统所需配置的规范,NixOS 负责实现它。

我正在考虑使用 NixOS 作为我的主要桌面操作系统,并将配置存储在 GIT 存储库中。

那么,NixOS 配置是 gittable 吗?我可以通过 git 存储库“定义”我的主要操作系统配置吗(可能使用一些“应用”命令)?

configuration git nixos nix

5
推荐指数
1
解决办法
541
查看次数

Nixos 如何在特定频道中搜索软件包?

nix-env -v -qaP '*'目前返回我所有渠道提供的所有包。

如何指定从特定渠道返回包裹,例如unstable/ 18.03

nixos nix

5
推荐指数
1
解决办法
1220
查看次数

如何使用“nix-shell”固定软件包版本?

据我了解,我可以使用该-I标志来使用给定版本的 Nix 软件包。但我想知道在一个shell.nixconf中是否可以有类似的东西:

  • gitv2.1.2
  • htopv1.2.3
  • ...

能够确保给定的工具版本。

shell version configuration nix

5
推荐指数
1
解决办法
3462
查看次数

标签 统计

nix ×10

nixos ×8

configuration ×2

.net ×1

dist-upgrade ×1

git ×1

haskell ×1

patchelf ×1

permissions ×1

shell ×1

version ×1