2010-09-20 4 views
4

При установке ruby-1.9.2-p0 с rvm на обновленный Ubunutu x86_64, я все время получаю ошибку в `merge ': не могу преобразовать String в Hash (TypeError). Были установлены все аппетитные пакеты в примечаниях rvm и в руководствах по рубигемам. Я считаю, что ошибка возникает, когда RVM пытается установить rubygems.rubygems 1.3.7 TypeError (in 'merge') во время установки на Ubuntu

Я также получаю ту же самую ошибку при установке рубиновых драгоценных камней с системой рубина. Я думаю, что это проблема зависимости.

Я скомпилировал на Ubuntu раньше как на i386, так и на x86_64 раньше и никогда не сталкивался с этой проблемой. Что мне не хватает/не так?

Через систему рубин:


$ ruby -v 
ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux] 
$ sudo ruby setup.rb 
./lib/rubygems/config_file.rb:172:in `merge': can't convert String into Hash (TypeError) 
    from ./lib/rubygems/config_file.rb:172:in `initialize' 
    from ./lib/rubygems.rb:385:in `new' 
    from ./lib/rubygems.rb:385:in `configuration' 
    from ./lib/rubygems.rb:635:in `path' 
    from ./lib/rubygems/source_index.rb:68:in `installed_spec_directories' 
    from ./lib/rubygems/source_index.rb:58:in `from_installed_gems' 
    from ./lib/rubygems.rb:883:in `source_index' 
    from ./lib/rubygems/gem_path_searcher.rb:81:in `init_gemspecs' 
    from ./lib/rubygems/gem_path_searcher.rb:13:in `initialize' 
    from ./lib/rubygems.rb:841:in `new' 
    from ./lib/rubygems.rb:841:in `searcher' 
    from ./lib/rubygems.rb:840:in `synchronize' 
    from ./lib/rubygems.rb:840:in `searcher' 
    from ./lib/rubygems.rb:479:in `find_files' 
    from ./lib/rubygems.rb:983:in `load_plugins' 
    from ./lib/rubygems.rb:1139 
    from setup.rb:24:in `require' 
    from setup.rb:24 

Via РВМ:


[2010-09-20 10:46:27] make 
file.c: In function 'file_expand_path': 
file.c:2844: warning: 'b' may be used uninitialized in this function 
io.c: In function 'argf_next_argv': 
io.c:6821: warning: ignoring return value of 'fchown', declared with attribute warn_unused_result 
process.c: In function 'rb_fork_err': 
process.c:2516: warning: ignoring return value of 'write', declared with attribute warn_unused_result 
process.c:2519: warning: ignoring return value of 'write', declared with attribute warn_unused_result 
process.c: In function 'p_uid_change_privilege': 
process.c:4111: warning: signed and unsigned type in conditional expression 
process.c:4112: warning: signed and unsigned type in conditional expression 
process.c:4113: warning: signed and unsigned type in conditional expression 
process.c: In function 'proc_daemon': 
process.c:4608: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result 
process.c: In function 'p_gid_change_privilege': 
process.c:4730: warning: signed and unsigned type in conditional expression 
process.c:4731: warning: signed and unsigned type in conditional expression 
process.c:4732: warning: signed and unsigned type in conditional expression 
random.c: In function 'fill_random_seed': 
random.c:492: warning: ignoring return value of 'read', declared with attribute warn_unused_result 
ossl_pkey_ec.c: In function 'ossl_ec_group_set_seed': 
ossl_pkey_ec.c:1110: warning: comparison between signed and unsigned integer expressions 
ossl_pkcs7.c: In function 'ossl_pkcs7_sym2typeid': 
ossl_pkcs7.c:376: warning: comparison between signed and unsigned integer expressions 
ossl_hmac.c: In function 'ossl_hmac_hexdigest': 
ossl_hmac.c:162: warning: comparison between signed and unsigned integer expressions 
ossl_hmac.c: In function 'ossl_hmac_s_hexdigest': 
ossl_hmac.c:225: warning: comparison between signed and unsigned integer expressions 
ossl_ssl_session.c: In function 'ossl_ssl_session_to_der': 
ossl_ssl_session.c:208: warning: comparison between signed and unsigned integer expressions 
parser.c: In function 'parse': 
parser.c:58: warning: 'internal_enc' may be used uninitialized in this function 
pty.c: In function 'chfunc': 
pty.c:209: warning: ignoring return value of 'write', declared with attribute warn_unused_result 
pty.c: In function 'establishShell': 
pty.c:269: warning: ignoring return value of 'read', declared with attribute warn_unused_result 
_sdbm.c: In function 'makroom': 
_sdbm.c:425: warning: ignoring return value of 'write', declared with attribute warn_unused_result 
_sdbm.c: In function 'chkpage': 
_sdbm.c:864: warning: comparison between signed and unsigned integer expressions 
rubyext.c: In function 'mktime_do': 
rubyext.c:278: warning: comparison between signed and unsigned integer expressions 
/home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems/config_file.rb:159:in `merge': can't convert String into Hash (TypeError) 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems/config_file.rb:159:in `initialize' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems.rb:390:in `new' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems.rb:390:in `configuration' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems.rb:618:in `path' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems/source_index.rb:68:in `installed_spec_directories' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems/source_index.rb:58:in `from_installed_gems' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems.rb:866:in `source_index' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems/gem_path_searcher.rb:81:in `init_gemspecs' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems/gem_path_searcher.rb:13:in `initialize' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems.rb:824:in `new' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems.rb:824:in `block in searcher' 
    from :10:in `synchronize' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems.rb:823:in `searcher' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems.rb:484:in `find_files' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems.rb:966:in `load_plugins' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rubygems.rb:1136:in `' 
    from :29:in `require' 
    from :29:in `require' 
    from /home/deploy/.rvm/src/ruby-1.9.2-p0/lib/rdoc/rdoc.rb:438:in `' 
    from :29:in `require' 
    from :29:in `require' 
    from ./bin/rdoc:11:in `' 
make: *** [rdoc] Error 1 

ответ

18

Решение было простым.

1) Прочитайте исходный код. 2) Поймите, что слияние system_config завершается успешно. 3) Поймите, что у вас есть ошибка в файле user_config (.gemrc). 4) Исправьте его. 5) Все работает.

.gemrc правильный синтаксис:

gem: --no-ri --no-rdoc