9

您好我正在尝试使用以下代码通过 rvm 安装 ruby​​:

CC=/usr/bin/gcc-4.2 rvm install 1.9.3 --with-iconv-dir=$rvm_path/usr --with-openssh-dir=$rvm_path/usr

但我在(安装)make.log 文件中遇到错误:

在 openssl_missing.c:22:450 openssl_missing.h:71: 错误:“HMAC_CTX_copy”类型冲突</p>的文件中

451 /Users/Sebastian/.rvm/usr/include/openssl/hmac.h:102: 错误: 'HMAC_CTX_copy' 的先前声明在这里

452 openssl_missing.h:95:错误:“EVP_CIPHER_CTX_copy”的类型冲突</p>

453 /Users/Sebastian/.rvm/usr/include/openssl/evp.h:503: 错误: 'EVP_CIPHER_CTX_copy' 的先前声明在这里

454 openssl_missing.c:27: 错误: 'HMAC_CTX_copy' 的类型冲突</p>

455 /Users/Sebastian/.rvm/usr/include/openssl/hmac.h:102: 错误: 'HMAC_CTX_copy' 的先前声明在这里

456 openssl_missing.c:122:错误:“EVP_CIPHER_CTX_copy”的类型冲突</p>

457 /Users/Sebastian/.rvm/usr/include/openssl/evp.h:503: 错误: 'EVP_CIPHER_CTX_copy' 的先前声明在这里

458 make[2]: [openssl_missing.o] 错误 1

459 make[1]: [ext/openssl/all] 错误 2

460 make: [build-ext] 错误 2

我读过这可能与 macports 安装有关,但我确保我删除了与它相关的所有内容。

另一方面,在/usr/bin/的另一个位置有一个 openssl 文件。我不确定这是否会引起冲突,但我不敢删除它。

我很感激你在这方面的帮助。

谢谢

4

2 回答 2

8

在将 rvm 的 openssl pkg 安装到 testdrive ruby​​ 2.0.0 后,我遇到了类似的问题。

经过一番摆弄,以下为我解决了它:

  • 让您的 rvm 保持最新状态:

    $ rvm get head

  • 删除您手动安装的软件包:

    $ rvm pkg remove

  • 直接了解要求:

    $ rvm requirements run

    在这里,我得到了缺少的必需软件包的列表:

   Installing requirements for osx/10.8/x86_64, might require sudo password
   Skipping `brew update` make sure your formulas are up to date.
-> Missing required packages: libtool, libxml2, libxslt, sqlite.
   Skipping update of certificates in '/usr/local/etc/openssl/cert.pem'.
  • 我“自制”了这些包:

    $ brew update

    $ brew install libtool libxml2 libxslt sqlite

您可以通过再次运行该rvm requirements run命令来重新检查要求,以查看您是否清除了丢失的包。

  • 重新安装 ruby​​,在我的例子中是 1.9.3-p392:

    $ rvm reinstall 1.9.3-p392

希望能帮助到你!

于 2013-03-20T19:22:14.697 回答
0

我也遇到了这个。尝试按照此处的步骤操作。

基本上,在终端上:

您还可以安装Homebrew并尝试以下操作:

$ brew update
$ brew install openssl
$ brew link openssl --force
$ brew install curl-ca-bundle
于 2013-03-19T16:23:01.387 回答