- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道使用 NixOS,您可以简单地复制 configuration.nix
文件同步您的操作系统状态,包括机器之间安装的软件包。
那么,是否有可能在非 NixOS 操作系统上使用 Nix 包管理器来仅同步已安装的包?
最佳答案
请注意,至少从 30.03.2017(对应于 17.03 Nix/NixOS channel /版本)开始,据我所知,官方、现代、支持和建议的解决方案是使用所谓的覆盖。
见 the chapter titled "Overlays"在 nixpkgs 手册中 有关如何使用新方法的很好的指南。
作为一个简短的总结:您可以在 $HOME/.config/nixpkgs/overlays/
中放置任意数量的扩展名为 .nix 的文件。目录。它们将按字母顺序处理,并且每个都可以修改一组可用的 Nix 包。每个文件都必须按照以下模式编写:
self: super:
{
boost = super.boost.override {
python = self.python3;
};
rr = super.callPackage ./pkgs/rr {
stdenv = self.stdenv_32bit;
};
}
super
set 对应于“旧”包集(在应用覆盖层之前)。如果你想引用旧版本的包(如上面的 boost
),或者 callPackage
,您应该通过 super
引用它. self
set 对应于最终的“ future ”包集,代表应用所有叠加层后的最终结果。 (注意:不要害怕有时使用它们可能会被 Nix 拒绝,因为这会导致无限递归。可能你应该在这些情况下使用 super
代替。)$HOME/.nixpkgs/config.nix
——例如:
$ mkdir -p ~/.nixpkgs
$ $EDITOR ~/.nixpkgs/config.nix
{
packageOverrides = defaultPkgs: with defaultPkgs; {
home = with pkgs; buildEnv {
name = "home";
paths = [
nethack mc pstree #...your favourite pkgs here...
];
};
};
}
$ nix-env -i home
or:
$ nix-env -iA nixos.home # *much* faster than above
paths
你可以像
/etc/nixos/configuration.nix
一样把东西放进去在 NixOS 上。另外,
home
这里实际上是一个“假包”。您可以在它旁边添加更多自定义包定义,然后将它们包含在您的“路径”中。
关于nix - 是否可以在不运行 NixOS 的机器之间保持我的 Nix 软件包同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38493704/
当我启动我的机器时,它会在列表中显示所有代,但将它们命名为“第 49 代”、“第 50 代”等。 有没有办法为世代添加标签,以便我以后可以轻松查看更改的内容?我想要一些类似于可选提交消息的内容,因此它
这几天我读了一些关于 NixOS 的文章并尝试了它,因为我的印象是它可以让我只用一个文件来配置 Linux。 我用的时候用nix-env装了一堆包,所以他们没有进入 configuration.nix
我开始尝试 NixOS 部署。为此,我有一个定义了一些包的存储库,以及一个用于服务器的 configuration.nix。 看来我应该能够在本地测试此配置(我也在运行 NixOS)。我认为将我的 g
我想找到一个可用字体列表,我可以在如下表达式中使用这些字体: { i18n = { consoleFont = "font-name-here"; }; } 在我的 configura
我一直在玩 NixOs,想知道如何修改配置文件。例如,我试图修改 ssh 配置文件 /etc/ssh/ssh_config (以允许 root )但是我无法保存文件,因为它只是一个链接。我明白手动修改
我正在尝试在 nixos 中配置一个容器 containers例如: containers.abc123 = { config = { config, pkgs, ... }: {
我真的很喜欢 nixos/nix 的确定性,但我很难理解为我的使用定制包的最佳方法。我使用 nixpkgs.config.packageOverrides 属性取得的成功有限,但它很痛苦,我发现它失败
我真的很喜欢 nixos/nix 的确定性,但我很难理解为我的使用定制包的最佳方法。我使用 nixpkgs.config.packageOverrides 属性取得的成功有限,但它很痛苦,我发现它失败
我正在尝试安装 vim-now-haskell在 NixOS 17.09 上。 安装失败,出现异常 *** Installer requires 'curl-config'. Please insta
我正在尝试在haskell中设置一个用于代码开发的NixOS VM,并且在xmonad和emacs的基本安装方面遇到了麻烦。我的相关部分/etc/nixos/configuration.nix是 en
我最近安装了 NixOS,最终得到了 3 个配置文件: bruno(用户个人资料), 默认(由 root 使用)和 系统(由 NixOS 使用)。 我发现为系统配置文件使用稳定 channel 和为我
几天前我开始使用 NixOS。似乎所有东西都有一个配置选项,例如hardware.opengl.driSupport32Bit或 system.copySystemConfiguration . 但问
我想要的是 https://nixos.org/nixpkgs/manual/#sec-pkg-overrideAttrs文件 overrideAttrs它可以与 top-level/all-pack
假设我有我的 NixOS configuration.nix设置如下: {config, pkgs, ...}: { services.openssh.enable = true; } 我现在想要
如何确定我在系统nixos安装上安装的所有软件包(即/etc/nixos/configuration.nix中列出的软件包,我使用sudo nixos-rebuild switch安装的软件包)都使用
我要求的是GCC 8,但我却得到了GCC 7。 $ nix-shell -p gcc8 [nix-shell:~]$ gcc --version gcc (GCC) 7.3.0 到底是怎么回事? 最佳
我使用带有 XMonad 的 NixOS 作为窗口管理器,它是通过 configurations.nix 启用的。这很好用。 启动后,初始登录是通过 NixOS 登录 gui 完成的。 在 Debia
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
今天,我在使用 NixOS 发行版时遇到了一个非常有趣的问题。我只是想创建一个静态编译的 OCaml 程序,但做不到。然后我尝试使用 ANSI C 规范玩具“hello world!”来做到这一点。应
这是一个初学者的问题。所以有一个包vscode-with-extensions . package说: A set of vscode extensions to be installed along
我是一名优秀的程序员,十分优秀!