如何使用Nix而不是自制软件在OS X上设置Ruby?
我最近切换到Nix软件包管理器,而不是OS X的自制软件 通常,我使用rbenv安装它,如:如何使用Nix而不是自制软件在OS X上设置Ruby?,ruby,nix,Ruby,Nix,我最近切换到Nix软件包管理器,而不是OS X的自制软件 通常,我使用rbenv安装它,如: brew install rbenv rbenv install 2.2.0 我现在在问自己,一个人如何用尼克斯做到这一点?我听说Nix本身就是一个足够好的包管理器,所以我可以摆脱rbenv来处理我的ruby版本吗 当我通过Nix安装ruby时 nix-env -i ruby 即使OS X能够识别它: $ which ruby /Users/USERNAME/.nix-profile/bin/rub
brew install rbenv
rbenv install 2.2.0
我现在在问自己,一个人如何用尼克斯做到这一点?我听说Nix本身就是一个足够好的包管理器,所以我可以摆脱rbenv
来处理我的ruby版本吗
当我通过Nix安装ruby时
nix-env -i ruby
即使OS X能够识别它:
$ which ruby
/Users/USERNAME/.nix-profile/bin/ruby
在尝试执行以下操作时,我仍然收到一个权限被拒绝的错误:
gem install sass
您还会推荐rbenv来处理ruby安装吗?我
我知道我可以随便翻阅Nix文件夹,但无论如何我应该拥有它
您可以通过以下方式找到ruby的包
nix-env -qa ruby
然后它将显示ruby版本的列表
nix-env -i ruby-2.1.0-p0
这将安装ruby版本,然后通过ruby-v
检查它。我在使用python和nix
时也有类似的经验。
通常,使用nix时的方法是而不是:
- 为某种语言版本安装特定于语言的软件包管理器(
gem
,pip
,…)
- 使用该语言特定的软件包管理器安装库
取而代之的是(从我所学到的)nix方法是:
- 使用
nix安装所有已打包的应用程序
- 如果您正在开发应用程序,而不是通过
nix
(或gem
)安装应用程序所依赖的库,您可以定义一个nix
表达式来描述应用程序的依赖关系,并将其用作开发环境。(我认为这方面的文档应该改进。)
- 通常情况下,不要自行安装库,而是手动参考某些第三方构建过程中的库。(这在某些情况下有效,例如在编译的C/C++库中,库的依赖项通过
RPATH
s内置到库中。但这不适用于例如python包。)最终,您真正想要的是应用程序,而不是库李>
您可以在官方网站上找到一些关于如何设置这样的环境的文档,目前主要介绍Haskell,但是Ruby应该是类似的 “要列出所有可用的软件包:$nix env-qa
”。是你干的吗?在nix中有ruby的软件包吗?有,但是没有sudo我仍然无法运行gem安装。那么我还需要通过其他来源安装rbenv吗?你可能想了解一下,当我使用ruby-v时,我仍然使用旧版本,而不是Nix安装的版本。我怎样才能指出Nix ruby?因此,您可以使用rvm,它可以帮助您轻松地在ruby之间切换