我正在使用工具和数据库开发一个简单的数据科学环境。Python当我输入时nix-shell,我启动数据库进程。我想在退出环境时将其降速。
我该如何使用trap并nix实现这一目标?
我在手册中没有找到太多信息。
我试图手动修改文件,/etc/resolv.conf但这似乎被某些东西覆盖了?
我怎样才能做到这一点?
为了找出存储库无法构建的原因,我想枚举源中的所有可用属性。也就是说,列出所有ATTR适合 的内容nix-build --attr ATTR https://github.com/USER/REPO/tarball/X.Y.Z。
我使用NixOS,Nix 版本 1.10。nix-env,Nix包管理器的安装命令,创建新一代每次安装软件包时这样,不同的包配置存储在不同的代中,您可以在它们之间切换以回滚到系统的先前状态,即从现在起安装了不同的包。
假设我安装了包emacs,它创建了新一代:
$ nix-env --list-generations\n1 2015-09-18 14:32:51 \n2 2015-09-19 15:41:58 (current)\nRun Code Online (Sandbox Code Playgroud)\n\n第 1 代不包含emacs,第 2 代包含 。如果我切换到第 1 代并删除第 2 代,那就意味着我输了emacs:
$ nix-env --switch-generation 1\nswitching from generation 2 to 1\n$ nix-env --delete-generations 2\nremoving generation 2\nRun Code Online (Sandbox Code Playgroud)\n\n运行操作的信息--delete-generations太少,添加--verbose或未--dry-run指定删除的包列表。甚至-vvvvv没有帮助。
$ nix-env --dry-run --delete-generations 14\n(dry run; not doing anything)\nwould remove generation 14\n$ nix-env --verbose --dry-run --delete-generations …Run Code Online (Sandbox Code Playgroud) 远离像 Arch 这样的操作系统,其中软件包大多可用,如何处理缺少的开发依赖项,例如libpng-dev?
我有一个 Node 包依赖问题 - pngquant-bin. 它依靠libpng-dev包来构建pngquant-bin。libpng&pngquant都在 Nixpkgs 中可用,但它试图找到libpng-dev.
在这种情况下最好的解决方案是什么?例如设置一个覆盖,从源创建包...
研究:
使用libpng-config --cflag显示开发标题的位置。我假设我可以以某种方式将 NPM 包定向到这些头文件以构建pngquant-bin二进制文件。
我在 GitHub 上记录了一个问题,其中提供了更多详细信息:https : //github.com/svanderburg/node2nix/issues/123
免责声明:我是 NixOS 的新手 - 来自 Arch。我感谢任何建议,喜欢 NixOS!
我nix在 Linux 系统上安装了,并添加了频道nixpkgs-unstable。我现在可以安装软件包,例如gcc:
% nix-env --install gcc
installing 'gcc-7.4.0'
...
created 78 symlinks in user environment
Run Code Online (Sandbox Code Playgroud)
如果我看着如目录~/.nix-defexpr/channels/nixpkgs/pkgs/development/compilers/gcc/,我会发现,有多种版本,全部完成default.nix。
如何使用ghc-env --query或其他一些友好工具发现这些隐藏的软件包版本?
假设我想在gcc我的用户环境中安装版本 8,我应该怎么做?我可以一次获得多个版本gcc吗?
我一直在浏览 Nix 的大量文档,但到处都在说“使用 Nix,你可以一次安装任意数量的版本,它们永远不会发生冲突”,同时“你应该只安装一次一个版本,在您选择的频道中进行硬编码”。它有什么意义?
通过“安装包”,我的意思是评估 Nix 构建表达式(使用nix-env、nix-shell -p等)从源代码构建,而不是使用替代品。
最初发布在 Stackoverflow 上,但 [Charles Duffy 指出][3] 如果它是关于命令行工具或配置的,那么在这里更合适。仍然把它留在那里,因为我假设通过使用 Nix 语言本身可以强制包始终从源代码编译,我只是还不知道如何做。(或者如果实际上不可能,有人会指出,那么这个问题就属于这里。)
构建推导后是否可以计算出推导的大小?例如,在 后nixos-rebuild,新的派生需要多少空间(不包括由于先前构建而节省的任何存储空间)?
我正在尝试为Foliate进行 Nix 推导,这是我的第一个真正的推导,所以我还不知道我在做什么。
这是我到目前为止所拥有的。它构建并安装,但失败并出现以下错误:
Running custom install script '/build/source/build-aux/meson/postinstall.py'
Failed to run install script '/build/source/build-aux/meson/postinstall.py'
FAILED: meson-install
/nix/store/2b4cdbcs1xbqjna5dr4qrr1p9p9bgm98-meson-0.51.2/bin/meson install --no-rebuild
ninja: build stopped: subcommand failed.
builder for '/nix/store/32vn9xlxlk9zb7vmpm90bz5i5qq59fjc-foliate-1.5.3.drv' failed with exit code 1
error: build of '/nix/store/32vn9xlxlk9zb7vmpm90bz5i5qq59fjc-foliate-1.5.3.drv' failed
Run Code Online (Sandbox Code Playgroud)
我尝试添加python3为构建依赖项,但这似乎不起作用。我缺少什么?
另外,还有其他方法可以改进或简化这个推导吗?
$ sudo nix-env --list-generations --profile /nix/var/nix/profiles/system
...
600 2020-01-25 21:01:11
601 2020-02-03 13:44:19
602 2020-02-09 14:06:20
603 2020-02-09 14:11:11
604 2020-02-11 00:02:43
605 2020-02-13 12:26:22
606 2020-02-16 16:40:02 (current)
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得 Nixos 一代的提交/频道生成(这是一个东西吗?) - 并可能将频道回滚到它?
或者换句话说,我怎样才能将我的“通道状态”回滚到 605 代时的状态?
为什么我想知道是因为几天前我做了一个sudo nix-channel --update,sudo nixos-rebuild switch但无论发生了什么包更新 - 导致系统不稳定。
因此,为了缓解这种情况,我启动并继续使用老年代 ( 605)。
我现在想更新 Nixos 系统配置中的特定软件包,并将更改基于605最新的606.
我确实找到了/sf/ask/2736327121/ ( nix-channel --rollback..) 但是我可能已经更新了几次频道 - 所以“最后”频道状态可能不是什么我需要。
我确实注意到您可以指定通道代号作为此命令的参数 - 但我不确定这与 nixos 代之间有什么关系?它似乎与我尝试605的结果不同:
sudo nix-channel --rollback 605
error: …Run Code Online (Sandbox Code Playgroud) 鉴于即将发布的关键 OpenSSL 3.0.7 安全修复程序,如何将 NixOS 更改为全局使用 LibreSSL 而不是 OpenSSL?
我无法在 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)