我找到的创建 Nix 包本地存储库的所有说明都涉及创建主nixpkgs
存储库的本地克隆并添加到其中。
有没有一种方法可以创建一个只包含我的本地附加包的小型存储库?
我在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 和版本”,这听起来像是我可以.nixpkgs/configuration.nix
在我订阅的频道 ( nixos-16.03
) 中编写一个 nix 表达式并覆盖包的这些属性。当我询问通道中不存在的包时,建议是“指定整个包而不是仅覆盖 src 和版本”,我认为这意味着我需要复制包的整个 nix 表达式我对......感兴趣。nix-env
对于存在于另一个频道中的软件包,我想安装但留在我当前的频道中,有没有更好的方法?几乎感觉我应该能够做类似的事情nix-build <url> | nix-env -i
。理想的做法是安装这个,但没有配置可能会阻止它在以后升级,如果我当前的频道要赶上。
我在 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'
Run Code Online (Sandbox Code Playgroud)
这不是我想要的 - 我更喜欢普通版本git-1.9.0
而不是-full
版本。我知道我可以使用 手动升级到普通版本nix-env -i git-1.9.0
,但是有没有办法nix-env -u
做我想做的事?
我使用 Arch Linux 4.19.15-1-lts #1 SMP Sun Jan 13 13:53:52 CET 2019 x86_64 GNU/Linux
。我也安装了 Nix:nix-env (Nix) 2.2
.
在最近更新到 version 之前,我从未遇到任何问题2.2
。我总是通过以下两个步骤进行升级/更新:
$ nix-channel --update
...
$ nix-env --upgrade
...
Run Code Online (Sandbox Code Playgroud)
...但在最近的2.2
更新之后,我再也找不到nix-channel --update
工作的方法了。我总是收到这些错误:
error: cloning builder process: Operation not permitted
error: unable to start build process
error: program '/nix/store/876x7a35qbn3q062b6zcz6va88m0990d-nix-2.2/bin/nix-env' failed with exit code 1
Run Code Online (Sandbox Code Playgroud)
...即使我回滚以前的操作:
$ nix-channel --update
unpacking channels...
error: cloning builder process: Operation not permitted
error: unable to start build process
error: …
Run Code Online (Sandbox Code Playgroud) 如何在 nixos 中安装 google chrome?我努力了
nix-env -i google-chrome
nix-env -i google-chrome-stable
...
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用。我也尝试过使用不稳定分支
nix-channel --add https://nixos.org/channels/nixpkgs-unstable
nix-channel --update
Run Code Online (Sandbox Code Playgroud)
进而
nix-env -i unstable.google-chrome-stable
nix-env -i unstable.google-chrome
...
Run Code Online (Sandbox Code Playgroud)
然而,看起来这个包应该存在于某个地方。 https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/networking/browsers/google-chrome
有人知道我在这里缺少什么吗?
我无法在 nixOS 上安装任何 vim 插件
运行命令:
nix-env -i vimplugin-Syntastic
Run Code Online (Sandbox Code Playgroud)
将这些作为最后 3 行输出:
output path ‘/nix/store/3bcdjr4hwgrimcimdg2115prpfm83xca-syntastic-4782184’ should
have r:sha256 hash ‘1vjh3a3w6whvaws86z48j8bp7dgavvix8a2kgjn195axs83hpkxy’, instead has
‘01a1px7i77ajc4y8czwhkhhqif89q6yf26wpjakh3asdv7cvnidm’
cannot build derivation ‘/nix/store/478msfr0bm6h64zp0ri5c98dgkp4zrcd-vimplugin-
Syntastic-2015-02-17.drv’: 1 dependencies couldn't be built
error: build of ‘/nix/store/478msfr0bm6h64zp0ri5c98dgkp4zrcd-vimplugin-Syntastic-2015-02-17.drv’ failed
Run Code Online (Sandbox Code Playgroud)
在最后几行之前,所有其他输出都显示正常。我在使用其他 vim 插件时遇到了完全相同的问题,我尝试了其他 4 个插件:
Solarized
Nerd commenter
airline
ctrp
Run Code Online (Sandbox Code Playgroud)