Questions tagged «nix»

4
如何找到Nix软件包的名称以将其安装在configuration.nix中?
假设我使用nix-env的--query操作搜索要安装的软件包: $ nix-env -qa 'aspell.*en' aspell-dict-en-7.1-0 我将此包名称写在/etc/nixos/configuration.nixNixOS的主要配置文件中: environment.systemPackages = with pkgs; [ aspell-dict-en ]; 但是,如果我运行sudo nixos-rebuild switchNixOS命令来更新配置并安装声明式指定的所有系统范围的软件包,它将中止并显示错误: error: undefined variable ‘aspell-dict-en’ at /etc/nixos/configuration.nix:44:5 我知道对于许多软件包,尽管不是全部,但nix-env返回的名称和应该在environment.systemPackages配置选项中指定的名称是不同的,但是我不理解其逻辑。如何安装找到的软件包nix-env?
21 nixos  nix 


1
如何将/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 } 我知道NixOS实现了一个模块系统,而一个模块就是一个.nix文件。每个.nix文件应包含任何有效的Nix表达式(例如,函数或集合)。这意味着NixOS配置文件/etc/nixos/configuration.nix本身就是一个包含Nix表达式的模块。 我也知道,要使另一个模块中的Nix表达式对我正在使用的模块可见,我可以使用内置import函数。 我想将系统软件包的声明(包含emacs和的列表gitFull)拆分成file packages.nix。如何将NixOS配置文件拆分为单独的模块?
14 nixos  nix 

2
如何在NixOS上找出文件属于哪个(未安装)软件包?
我在NixOS上使用Nix软件包管理器。假设我要安装一个提供文件的软件包。我如何找到提供此文件的软件包,类似于其他GNU / Linux发行版?libgtk-x11-2.0.so.0 目前,我必须搜索该文件并找出它可能属于哪个程序包,然后在Nix存储库中找到相应的程序包,但是我想使用一种更加惯用的方法。

1
如何在NixOS中安装一次性软件包?
我的nixos-16.03频道上有一个NixOS盒子。我希望机器保持在最稳定的状态,所以我想避免切换到nixos-unstable通道。 但是,我需要安装一个比该渠道(nodejs-6_x在本例中)可用的更新版本的软件包。手册中有描述“ 一键安装”的部分,乍一看似乎完全符合我的需要。但是,http://hydra.nixos.org上的Hydra服务器似乎没有提供该部分中描述.nixpkg的nix-install-package工具使用的任何文件。 Wiki还记录了一个过程,通过该过程可以自定义程序包(该页面称为Modifying Packages),我认为这可以用于我的目的,尽管似乎我是在与该工具而不是使用它作斗争。 我也在IRC中问过这个问题(感谢M-Ralith您耐心地回答我的无知问题!),但我不太了解如何应用它。建议是“在您的nixpkgs配置中覆盖src和版本”,这听起来像我可以在其中写入nix表达式.nixpkgs/configuration.nix并在我的订阅频道(nixos-16.03)中覆盖包的那些属性。当我问到通道中不存在的软件包时,建议是“指定整个软件包,而不是覆盖src和版本”,这意味着我需要为该软件包复制整个nix表达式。我感兴趣的是。nix-env 对于要安装在另一个渠道中但仍保留在当前渠道中的软件包,是否有更好的方法?它几乎感觉就像我应该可以做这样的事情nix-build <url> | nix-env -i。理想的情况是先关闭此设备,但如果我的当前频道赶上来,则没有可以阻止它稍后升级的配置。
9 nixos  nix  nixpkgs 

3
Nix:安装Haskell软件包时跳过单元测试
我正在使用Nix在资源有限的共享主机上的家中安装软件包(因此没有二进制软件包)。我正在尝试安装git-annex。在构建其依赖关系之一“ haskell-lens”时,单元测试会消耗大量内存,以至于它们被杀死并且安装失败。 有没有一种方法可以跳过单元测试来安装软件包?我看着Cabal生成器,haskell-packages.nix在我看来,可以通过将其设置enableCheckPhase为false 来禁用测试。我在中尝试了以下操作~/.nixpkgs/config.nix,但测试仍在运行: { packageOverrides = pkgs: with pkgs; { # ...other customizations... haskellPackages = haskellPackages.override { extension = self : super : { self.lens = self.disableTest self.lens; }; }; }; }

2
如何在运行时使用nix安装的库?
我在nix不是root用户的系统中以“单用户模式” 使用(请参见下面有关我的nix设置的说明)。 我想快速运行我的一个二进制文件,该二进制文件与系统中不存在的库动态链接。 因此,我使用以下命令安装了该库nix: $ nix-env -qa 'gmp' gmp-4.3.2 gmp-5.1.3 $ nix-env -i gmp-5.1.3 但是链接器仍然找不到该库: $ ldd -r ../valencies ../valencies: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by ../valencies) ../valencies: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ../valencies) linux-vdso.so.1 => (0x00007fffbbf28000) /usr/local/lib/libsnoopy.so (0x00007f4dcfbdc000) libgmp.so.10 => not found libffi.so.5 => /usr/lib64/libffi.so.5 (0x00007f4dcf9cc000) …

1
防止Nix将git升级到git-full
我在Ubuntu上使用Nix来拥有某些软件包的更现代版本,其中之一就是git。当我跑步时nix-env -u,会发生以下情况: % nix-env -u --dry-run '*' (dry run; not doing anything) upgrading `git-1.8.5.4' to `git-1.9.0-full' 这不是我想要的-与普通版本相比git-1.9.0,我更喜欢普通-full版本。我知道我可以使用手动升级到普通版本nix-env -i git-1.9.0,但是有什么方法nix-env -u可以做我想要的?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.