我通过运行“gem sources -c”实际删除了什么?

时间:2009-10-30 16:30:04

标签: ruby rubygems

我运行了“gem sources -c”,因此我必须故意指定我要安装gem的位置,因为我现在有3个不同的gem安装源 - RubyForge,Github和Gemcutter。

C:\>gem sources -c
*** Removed specs cache ***
*** Removed user source cache ***
*** Removed latest user source cache ***
*** Removed system source cache ***
*** Removed latest system source cache ***

运行此命令后,我再次运行gem sources以确保我不再拥有任何默认来源,我得到了这个:

C:\>gem sources
*** CURRENT SOURCES ***

http://gems.rubyforge.org
http://gems.github.com
http://gems.rubyforge.org/
http://gemcutter.org

换句话说,没有任何改变

查看下面gem sources -c的帮助,似乎是一次删除所有宝石资源的正确命令:

    -c, --clear-all                  Remove all sources (clear the cache)

否则,您似乎必须逐个删除它们。 没什么大不了的,因为我只有4个,但我想知道我实际删除的是“gem sources -c

C:\>gem sources --help
Usage: gem sources [options]

  Options:
    -a, --add SOURCE_URI             Add source
    -l, --list                       List sources
    -r, --remove SOURCE_URI          Remove source
    -c, --clear-all                  Remove all sources (clear the cache)
    -u, --update                     Update source cache

  Local/Remote Options:
    -p, --[no-]http-proxy [URL]      Use HTTP proxy for remote operations

  Common Options:
    -h, --help                       Get help on this command
    -V, --[no-]verbose               Set the verbose level of output
    -q, --quiet                      Silence commands
        --config-file FILE           Use this config file instead of default
        --backtrace                  Show stack backtrace on errors
        --debug                      Turn on Ruby debugging

1 个答案:

答案 0 :(得分:1)

对于每个源,rubygems保存有关每个源托管的gems的信息的本地缓存,以加快操作,并且该命令只是清除那些缓存。

查看rubygems源代码,在我的系统上,例如删除

C:/Users/Kris/.gem/specs
C:/Users/Kris/.gem/source_cache
C:/Users/Kris/.gem/latest_source_cache
C:/Ruby/lib/ruby/gems/1.8/source_cache
C:/Ruby/lib/ruby/gems/1.8/latest_source_cache

您仍然需要自己删除实际来源。