我在 ubuntu 12.04 上并使用 rbenv v0.4.0 启用的 ruby 2.0.0-p195。
当我跑到下面时,
$ruby -rdigest/sha1 -e '1'
我得到这个错误。
/home/ktsuji/.rbenv/versions/2.0.0-p195/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': /home/ktsuji/.rbenv/versions/2.0.0-p195/lib/ruby/2.0.0/x86_64-linux/digest/sha1.so: undefined symbol: rb_Digest_SHA1_Init - /home/ktsuji/.rbenv/versions/2.0.0-p195/lib/ruby/2.0.0/x86_64-linux/digest/sha1.so (LoadError)
from /home/ktsuji/.rbenv/versions/2.0.0-p195/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
我知道这与此处描述的问题非常相似: Faulty ruby compilation with rvm: getting 'undefined symbol: rb_Digest_MD5_Init' while running racku
但我已经在上面的线程中尝试了答案并在下面运行:
$ sudo apt-get install zlib1g-dev libreadline6-dev libssl-dev libxml2-dev
甚至尝试重新安装:
$ sudo apt-get install --reinstall zlib1g-dev libreadline6-dev libssl-dev libxml2-dev
$ (rbenv uninstall -f 2.0.0-p195 && rbenv install 2.0.0-p195)
但没有运气。我还用 rbenv 尝试了其他 ruby 版本:
- 1.8.7-p371 工作正常。
- 1.9.3-p429 出现与上述类似的错误。
关于解决这个问题的任何想法?