首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NixOS安装特定的NodeJS版本

NixOS安装特定的NodeJS版本
EN

Stack Overflow用户
提问于 2016-07-18 12:17:32
回答 2查看 5.4K关注 0票数 8

我可以看到,NixOS有以下版本可供安装:

代码语言:javascript
复制
...
nodejs-0.10-statsd-0.7.2
nodejs-0.10.42
nodejs-4.3.1
nodejs-5.9.0
...

然而,systemPackages不喜欢我安装nodejs-5.9.0,因为它抱怨说:

代码语言:javascript
复制
error: syntax error, unexpected INT, expecting ID or OR_KW or DOLLAR_CURLY or '"', at /etc/nixos/configuration.nix:49:14
(use ‘--show-trace’ to show detailed location information)
error: syntax error, unexpected INT, expecting ID or OR_KW or DOLLAR_CURLY or '"', at /etc/nixos/configuration.nix:49:14
(use ‘--show-trace’ to show detailed location information)
building the system configuration...
error: syntax error, unexpected INT, expecting ID or OR_KW or DOLLAR_CURLY or '"', at /etc/nixos/configuration.nix:49:14
(use ‘--show-trace’ to show detailed location information)

这说明我做错了什么。我不想只使用nix-env -i ...安装,因为我希望它在系统范围内安装(而且我正在为我的所有开发人员的计算机构建标准的NixOS配置)。

根据nixpkgs储存库,v6是可用的,但我不知道如何通过configuration.nix告诉nixos-rebuild,或者如何安装它。

我如何正确地配置它,以便能够安装最新版本的NodeJS,或者具体地说是5.9.0?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-19 10:27:10

原来是有可能的,但我用错了包名。如果使用nix-env -qaP | grep nodejs查询,则可以从其名称空间中获得名称:

代码语言:javascript
复制
$ nix-env -qaP | grep nodejs
nixos.statsd                                                          nodejs-0.10-statsd-0.7.2
nixos.nodejs-0_10                                                     nodejs-0.10.42
nixos.nodejs                                                          nodejs-4.3.1
*nixos.nodejs-5_x                                                      nodejs-5.9.0*
nixos.azure-cli                                                       nodejs-azure-cli-0.9.15
nixos.dnschain                                                        nodejs-dnschain-0.5.3
nixos.groovebasin                                                     nodejs-groovebasin-1.5.1
nixos.keybase                                                         nodejs-keybase-0.8.25
nixos.npm2nix                                                         nodejs-npm2nix-5.12.0
nixos.pumpio                                                          nodejs-pump.io-git-2015-11-09
nixos.ripple-rest                                                     nodejs-ripple-rest-1.7.0-rc1
nixos.shout                                                           nodejs-shout-0.51.1
nixos.sloc                                                            nodejs-sloc-0.1.9
nixos.wring                                                           nodejs-wring-1.0.0

我特别想要nodejs-5.9.0,这意味着我需要像上面描述的那样使用nodejs-5_x包(重点是我的)。

票数 11
EN

Stack Overflow用户

发布于 2021-08-26 08:11:19

最新的nixpkgs只提供了一些节点版本。其他节点版本(如nodejs-11)是删除 (由于产品寿命终结(EOL) )。

这些删除的版本可以在著名的惰性工具中找到。

因此,要使用nodejs-11 (例如)

代码语言:javascript
复制
{ stdenv }:
let
  # nodejs-11_x was removed, EOL 2019-06-01
  # https://github.com/NixOS/nixpkgs/pull/70256
  nodejs-11_x = (import (builtins.fetchGit {
    # https://lazamar.co.uk/nix-versions/?channel=nixpkgs-unstable&package=nodejs
    name = "nixpkgs-nodejs-11.15.0"; # name in nix store
    url = "https://github.com/NixOS/nixpkgs/";
    ref = "refs/heads/nixpkgs-unstable";
    rev = "84f318e323989435d5dd54b4038b0af728f20c85";
  }) {}).nodejs-11_x;
in
stdenv.mkDerivation {
  # ...
}

注意:这将从源代码编译nodejs,这可能需要几个小时。todo:找到一个公共二进制缓存

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38436527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档