Hol*_*ola 40 ruby dependencies rubygems ruby-on-rails
我尝试使用该命令卸载datamapper gem uninstall dm-core.
但似乎还需要卸载一大堆依赖宝石.
C:\>gem uninstall dm-core
You have requested to uninstall the gem:
dm-core-0.9.11
dm-migrations-0.9.11 depends on [dm-core (= 0.9.11)]
dm-cli-0.9.11 depends on [dm-core (= 0.9.11)]
dm-serializer-0.9.11 depends on [dm-core (= 0.9.11)]
dm-timestamps-0.9.11 depends on [dm-core (= 0.9.11)]
dm-aggregates-0.9.11 depends on [dm-core (= 0.9.11)]
dm-types-0.9.11 depends on [dm-core (= 0.9.11)]
dm-is-tree-0.9.11 depends on [dm-core (= 0.9.11)]
dm-observer-0.9.11 depends on [dm-core (= 0.9.11)]
dm-validations-0.9.11 depends on [dm-core (= 0.9.11)]
If you remove this gems, one or more dependencies will not be met.
Continue with Uninstall? [Yn] n
ERROR: While executing gem ... (Gem::DependencyRemovalException)
Uninstallation aborted due to dependent gem(s)
Run Code Online (Sandbox Code Playgroud)
我尝试找到关于"gem uninstall"的文档,但似乎没有办法自动卸载依赖项:
C:\>gem help uninstall
Usage: gem uninstall GEMNAME [GEMNAME ...] [options]
Options:
-a, --[no-]all Uninstall all matching versions
-I, --[no-]ignore-dependencies Ignore dependency requirements while
uninstalling
-x, --[no-]executables Uninstall applicable executables with
out
confirmation
-i, --install-dir DIR Directory to uninstall gem from
-n, --bindir DIR Directory to remove binaries from
--[no-]user-install Uninstall from user's home directory
in addition to GEM_HOME.
-v, --version VERSION Specify version of gem to uninstall
--platform PLATFORM Specify the platform of gem to uninst
all
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 defau
lt
--backtrace Show stack backtrace on errors
--debug Turn on Ruby debugging
Arguments:
GEMNAME name of gem to uninstall
Summary:
Uninstall gems from the local repository
Defaults:
--version '>= 0' --no-force --install-dir C:/Ruby18/lib/ruby/gems/1.8
--user-install
C:\>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
小智 32
gem list | cut -d" " -f1 | xargs gem uninstall -aIx 删除所有已安装的红宝石宝石!
Jon*_*ace 11
据我所知,你是正确的,没有一种简单的方法来内置gem命令来做到这一点.
但是,您可以查看gem-prune,它可以在您删除dm-core后帮助清理您的gem存储库.
http://github.com/ddollar/gem-prune/tree/master
小智 5
for gem in `gem list --no-version`; do
gem uninstall -aIx $gem
done
Run Code Online (Sandbox Code Playgroud)
对我来说效果最好,不知道为什么
gem list | cut -d" " -f1 | xargs gem uninstall -aIx
Run Code Online (Sandbox Code Playgroud)
在我的系统上不起作用,因为它仍然抱怨...
ERROR: While executing gem ... (Gem::InstallError)
cannot uninstall, check `gem list -d some-gem-here`
Run Code Online (Sandbox Code Playgroud)
运行这些卸载时的问题是,它们按顺序排列在宝石列表中,因此如果可以卸载口香糖,那么最终会卡住.运行以下几次,它应该删除允许的所有宝石.
gem list | cut -d" " -f1 | sort -R | xargs -n1 gem uninstall -aIx
Run Code Online (Sandbox Code Playgroud)