如果对于一个包存在NixOS的分发,那么是否可以(轻松)使用Nix将该包安装到Ubuntu,如果是的话怎么样?

时间:2015-07-08 16:53:43

标签: haskell nixos nix

这是this Haskell包。对于这个包,NixOS有一个distribution

如果存在NixOS的这种发行版,那么将相同的软件包安装到安装了Nix软件包管理器的Ubuntu上会很容易吗?

如果是,怎么样?

如果没有,为什么不呢?

2 个答案:

答案 0 :(得分:2)

  

对于这个包,有一个NixOS的发行版。

NixOS没有分发版。 NixOS是构建在Nix包管理器之上的实际Linux发行版。您的链接只显示了他们的Hydra构建农场,用于构建各种nix包。

  

如果存在NixOS的这种发行版,那么将相同的软件包安装到安装了Nix软件包管理器的Ubuntu上会很容易吗?

同样,不存在这样的分布。如果您想在Ubuntu发行版中使用Nix,那么您可以只安装Nix包管理器,并可以使用nix-env工具安装任何包。安装Haskell text包的示例:

nix-env -i -A nixpkgs.haskellPackages.text

答案 1 :(得分:0)

问题的答案可以在Nixpkgs user manual中找到。我引用了“8.5.1。如何安装Haskell软件包”中的相关位:

  

我们将所有与Haskell相关的包保存在一个名为haskellPackages的单独属性集中,以下命令将列出:

$ nix-env -f "<nixpkgs>" -qaP -A haskellPackages
haskellPackages.a50         a50-0.5
haskellPackages.abacate     haskell-abacate-0.0.0.0
haskellPackages.abcBridge   haskell-abcBridge-0.12
haskellPackages.afv         afv-0.1.1
haskellPackages.alex        alex-3.1.4
haskellPackages.Allure      Allure-0.4.101.1
haskellPackages.alms        alms-0.6.7
[... some 8000 entries omitted  ...]
     

要将任何这些软件包安装到您的配置文件中,请通过其属性路径(第一列)引用它们:

$ nix-env -f "<nixpkgs>" -iA haskellPackages.Allure ...
     

任何Haskell软件包的属性路径都对应于Hackage上特定软件包的名称:软件包cabal-install具有haskellPackages.cabal-install属性,依此类推。

在您的具体情况下,这意味着正在运行

nix-env -f "<nixpkgs>" -iA haskellPackages.SourceGraph

nix-shell -p haskellPackages.SourceGraph

将使您可以运行该程序包。