如何使用Nix而不是Homebrew在OS X上设置Ruby?

问题描述 投票:3回答:2

我最近切换到Nix包管理器而不是Homebrew for OS X.

通常,我用rbenv安装它,如:

brew install rbenv
rbenv install 2.2.0

我现在问自己,如何用Nix做到这一点?我听说Nix本身就是一个很好的包管理器,所以也许我可以摆脱rbenv来处理我的ruby版本?

当我通过Nix安装ruby时

nix-env -i ruby

即使OS X识别它:

$ which ruby
/Users/USERNAME/.nix-profile/bin/ruby

我在尝试时仍然遇到Permission denied错误:

gem install sass

你还会推荐rbenv来处理红宝石装置吗?我知道我可以只打开Nix文件夹,但无论如何我应该拥有它。

ruby nix
2个回答
4
投票

我有使用python和nix的类似经验。通常,使用nix时的方法不是:

  • 为某种语言版本安装特定于语言的包管理器(gempip,...)
  • 使用该语言特定的包管理器来安装库

相反,nix方式(从我所学到的)做的事情是:

  • 使用nix安装所有已打包的应用程序
  • 如果您正在开发一个应用程序,而不是通过nix(或gem)安装应用程序所依赖的库,您可以定义一个描述应用程序依赖关系的nix表达式,并将其用作开发环境。 (我认为应该在这个问题上改进文档。)
  • 通常不要自己安装库并手动引用某些第三方构建过程中的库。 (这在某些情况下有效,如在编译的C / C ++库中,库的依赖关系通过RPATHs构建到它们中。但这对于例如python包不起作用。)最后你真正想要的是应用程序,不是图书馆!

您可以在官方nixpkgs documentation中找到有关如何设置此类环境的一些文档,目前主要涵盖Haskell,但Ruby应该类似。


1
投票

你可以通过以下方式找到红宝石包

nix-env -qa ruby

然后它将显示ruby版本列表

nix-env -i ruby-2.1.0-p0

这将安装ruby版本然后由ruby -v检查

© www.soinside.com 2019 - 2024. All rights reserved.