我从 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 公开了其他软件包系统的二进制文件,通常也不会混淆。