可以在 OS X 上将 pkgsrc 与 rvm/gem 一起使用



我从 fink 切换到 pkgsrc 以便在 Mac 上进行包管理。但是现在我发现通过rvm安装的gem似乎不能很好地与pkgsrc一起使用。例如:

$ gem update
Updating installed gems
ERROR:  While executing gem ... (Gem::Exception)
    Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

这令人费解,因为:

$ which openssl
/usr/pkg/bin/openssl

我也收到关于缺少软件包autoconf automake libtool pkg-config libyaml readline libksba openssl的投诉,但我已经用 pkgsrc 安装了所有这些软件包。

对推进这两个有什么想法吗?看来rvm真的很想用homebrew.我宁愿不吹走pkgsrc并安装homebrew因为pkgsrc很好地满足了我的所有其他需求。但基于 http://rvm.io/rvm/autolibs,对于pkgsrc来说,事情看起来并不乐观

目前尚不清楚究竟是什么导致了问题。但看起来你通过 PATH 公开了 pkgsrc 的二进制文件,所以 gem 混淆了像 libtool 或 pkg-config 这样的东西。

尝试从路径中删除 pkgsrc 的 bin 和 sbin 目录,以确保这导致了问题。

之后,您可以编写一个简单的包装器来从 pkgsrc 运行二进制文件而不会污染 PATH:

附言:

#!/bin/sh -uv
PATH=/usr/pkg/bin:/usr/pkg/sbin:$PATH exec "$@"

然后,如果你想从 pkgsrc 运行 smth,这样做:

$ ps <your command>

另外,我不得不说,这不是pkgsrc的问题,而是fink的问题。Pkgsrc 不会尝试从您的 PATH 运行二进制文件,而是使用完整路径,即使您的 PATH 公开了其他软件包系统的二进制文件,通常也不会混淆。

最新更新