标签: nixos

在 Nixos 上运行非 nixos 可执行文件的不同方法

在 NixOs 上运行非 nixos 可执行文件有哪些不同的方法?我也想看看手动方法。

executable nixos

29
推荐指数
1
解决办法
6436
查看次数

如何找到 Nix 包的名称以在 configuration.nix 中安装它?

假设我使用nix-env--query操作搜索要安装的软件包:

$ nix-env -qa 'aspell.*en'
aspell-dict-en-7.1-0
Run Code Online (Sandbox Code Playgroud)

我在/etc/nixos/configuration.nixNixOS 的主配置文件中写了这个包名:

environment.systemPackages = with pkgs; [
  aspell-dict-en
];
Run Code Online (Sandbox Code Playgroud)

然而,如果我运行sudo nixos-rebuild switch, NixOS 命令来更新配置并安装declaratively指定的所有系统范围的软件包,它会因错误而中止:

error: undefined variable ‘aspell-dict-en’ at /etc/nixos/configuration.nix:44:5
Run Code Online (Sandbox Code Playgroud)

我知道对于很多包,虽然不是全部,nix-env返回的名称和应该在environment.systemPackages配置选项中指定的名称是不同的,但我不明白其中的逻辑。如何安装通过 找到的软件包nix-env

nixos nix

28
推荐指数
2
解决办法
1万
查看次数

如何在 NixOS 上找出文件属于哪个(未安装)包?

我在NixOS上使用Nix 包管理器。假设我想安装一个提供文件的包。我如何找到提供此文件的包,类似于其他 GNU/Linux 发行版libgtk-x11-2.0.so.0

目前我必须谷歌该文件并找出它可能属于哪个包并在 Nix 存储库中找到相应的包,但我想要一个更惯用的方法。

package-management nixos nix

22
推荐指数
2
解决办法
2475
查看次数

如何在 NixOS 上自动挂载/永久挂载外部设备

我有一个 U 盘和一个 NTFS 硬盘分区,我想在 NixOS 中使用它们。在其他一些发行版上,我会使用ntfs-3gin安装它/mnt。但是在 NixOS 上,该目录不存在;我想 NixOS 有其他一些规范的方式和/或这样做的地方。

在 NixOS 中,应该如何设置外部分区的自动挂载,最好使用configuration.nix?

usb automounting ntfs nixos

18
推荐指数
2
解决办法
6889
查看次数

如何将 /etc/nixos/configuration.nix 拆分为单独的模块?

假设我有一个非常简单的NixOS 配置文件

{ config, pkgs, ... }:    
{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];
  # SOME STUFF
  environment.systemPackages = with pkgs; [ emacs gitFull ];
  # SOME STUFF
}
Run Code Online (Sandbox Code Playgroud)

我知道 NixOS 实现了一个模块系统,一个模块就是一个.nix文件。每个.nix文件都应该包含任何有效的Nix 表达式(例如一个函数或一个集合)。这意味着 NixOS 配置文件/etc/nixos/configuration.nix本身就是一个模块,包含一个 Nix 表达式。

我也知道要使另一个模块中的 Nix 表达式对我正在使用的模块可见,我可以使用内置import函数

我想将系统包的声明(包含emacs和的列表gitFull)拆分为 file packages.nix。如何将 NixOS 配置文件拆分为单独的模块?

nixos nix

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

如何为 NixOS/nixpkgs 创建本地存储库?

我找到的创建 Nix 包本地存储库的所有说明都涉及创建主nixpkgs存储库的本地克隆并添加到其中。

有没有一种方法可以创建一个只包含我的本地附加包的小型存储库?

development package-management nixos nixpkgs nix

17
推荐指数
2
解决办法
5017
查看次数

如何更改 NixOS 中的默认 shell?

目前,我需要将 fish shell 设置为我在 NixOS 上的默认 shell,并且没有关于如何在 NixOS 中以声明方式(而不是通过运行chsh)执行此操作的官方文档。

shell fish nixos

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

如何在 NixOS 中安装 npm 包?

在 NixOS 中,我yarn像往常一样通过运行$ nix-env -i yarn. 现在我试图yarn通过$ yarn start. 但这导致我出现以下错误。

$ yarn start
    yarn start v0.20.3
    $ webpack-dev-server --env dev 
    sh: webpack-dev-server: command not found
    error Command failed with exit code 127.
Run Code Online (Sandbox Code Playgroud)

当我尝试以webpack-dev-server我通常的 NixOS 方式安装时,出现“匹配无派生”错误。

$ nix-env -i webpack-dev-server
error: selector ‘webpack-dev-server’ matches no derivations
Run Code Online (Sandbox Code Playgroud)

我读到这webpack-dev-server是一个 npm 包,但不确定在这种情况下与它的相关性的几个问题。

  1. 在 Nix 下使用 npm(一种与 nix 不同的包管理器)有意义吗?
  2. 如果(1)的答案是肯定的,那么如何在 NixOS 上安装 npm?我在通过 搜索时没有看到 npm 可用nix-env,因为$ nix-env -qa npm也没有匹配任何派生。 …

nixos npm

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

如何在 nix 中打包我的软件或为 nixpkgs 编写我自己的包派生

如何编写一个简单的推导来打包 nix 程序以及如何创建 PR 将其包含在 nixpkgs 中?

(我写这篇文章是因为我找不到简单的解释)

packaging nixos nix

16
推荐指数
1
解决办法
1万
查看次数

无法在 NixOS 中执行二进制文件 - 没有这样的文件或目录

我尝试在运行 NixOS 的 VM 上安装当前的 oracle jre。

现在发生以下情况:

[michas@cc:~]$ tar xvzf jre-7u40-linux-x64.tar.gz |grep bin/java
jre1.7.0_40/bin/javaws
jre1.7.0_40/bin/java_vm
jre1.7.0_40/bin/java

[michas@cc:~]$ ls -l ./jre1.7.0_40/bin/java
-rwxr-xr-x 1 michas nogroup 7750 Aug 27 09:17 ./jre1.7.0_40/bin/java

[michas@cc:~]$ ./jre1.7.0_40/bin/java
bash: ./jre1.7.0_40/bin/java: No such file or directory
Run Code Online (Sandbox Code Playgroud)

跆拳道?命名文件显然在那里。到底是怎么回事?

尝试进一步分析:

[michas@cc:~]$ strace ./jre1.7.0_40/bin/java
execve("./jre1.7.0_40/bin/java", ["./jre1.7.0_40/bin/java"], [/* 53 vars */]) = -1 ENOENT (No such file or directory)
write(2, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
exit_group(1)                           = ?
+++ …
Run Code Online (Sandbox Code Playgroud)

linux dynamic-linking binary nixos patchelf

14
推荐指数
1
解决办法
5018
查看次数