From cee66c15b93fc5b17098825ce81c4389893496ae Mon Sep 17 00:00:00 2001 From: "Wayne E. Seguin" Date: Thu, 27 May 2010 16:08:49 -0400 Subject: [PATCH] Removed global gem caching. Excellent idea, however, it does not work for all use cases. --- scripts/gemsets | 14 +++++++------- scripts/rvm | 2 -- scripts/utility | 22 +++------------------- 3 files changed, 10 insertions(+), 28 deletions(-) diff --git a/scripts/gemsets b/scripts/gemsets index 6ec843dfcc..55a3f0d752 100755 --- a/scripts/gemsets +++ b/scripts/gemsets @@ -23,7 +23,6 @@ __rvm_gemset_create() { for gemset in $(echo $gems_args) ; do gem_home="${rvm_ruby_gem_prefix}${rvm_gemset_separator}${gems_args/ /}" mkdir -p $gem_home - ln -nfs "$HOME/.gem/cache" "$gem_home/cache" $rvm_scripts_path/log "info" "Gemset '$gemset' created." done ; unset gem_home } @@ -55,7 +54,8 @@ __rvm_gemset_delete() { echo -n "(anything other than 'yes' will cancel) > " read response if [[ "yes" = "$response" ]] ; then - rm -f $gemdir/cache && rm -rf $gemdir + rm -f $gemdir/cache 2>/dev/null + rm -rf $gemdir else $rvm_scripts_path/log "info" "Not doing anything, phew... close call that one eh?" fi @@ -237,10 +237,10 @@ __rvm_gem_install() { else if [[ -s "$gem" ]] ; then cache_file="$gem" - elif [[ -s "$rvm_gems_path/cache/${gem_file_name}" ]] ; then - cache_file="$rvm_gems_path/cache/${gem_file_name}" + elif [[ -s "$rvm_ruby_gem_home/cache/${gem_file_name}" ]] ; then + cache_file="$rvm_ruby_gem_home/cache/${gem_file_name}" else - cache_file="${cache_file:-$(\ls ${rvm_gems_path}/cache/${gem_file_name} 2> /dev/null | sort | head -n1)}" + cache_file="${cache_file:-$(\ls ${rvm_ruby_gem_home}/cache/${gem_file_name} 2> /dev/null | sort | head -n1)}" fi if [[ ! -s "$cache_file" ]] ; then @@ -259,9 +259,9 @@ __rvm_gem_install() { unset gem # already installed, not forcing reinstall. $rvm_scripts_path/log "info" "$gem_name $gem_version exists, skipping (--force to re-install)" else - if [[ -s "$rvm_gems_path/cache/$(basename $gem_file_name)" ]] ; then + if [[ -s "$rvm_ruby_gem_home/cache/$(basename $gem_file_name)" ]] ; then mkdir -p "$rvm_tmp_path/$$/" - mv "$rvm_gems_path/cache/$gem_file_name" "$rvm_tmp_path/$$/$gem_file_name" + mv "$rvm_ruby_gem_home/cache/$gem_file_name" "$rvm_tmp_path/$$/$gem_file_name" gem="$rvm_tmp_path/$$/$gem_file_name -f -l" else gem="$cache_file" diff --git a/scripts/rvm b/scripts/rvm index 0b944793a4..ca0a591060 100755 --- a/scripts/rvm +++ b/scripts/rvm @@ -7,8 +7,6 @@ if [[ "$rvm_loaded_flag" != "1" ]] || [[ "$rvm_reload_flag" = "1" ]] ; then unset rvm_reload_flag - mkdir -p $HOME/.gem/cache - for rvmrc in /etc/rvmrc $HOME/.rvmrc ; do if [[ -f "$rvmrc" ]] ; then if grep -q '^\s*rvm .*$' $rvmrc ; then diff --git a/scripts/utility b/scripts/utility index 2ede3ee932..4e7b6c65f2 100644 --- a/scripts/utility +++ b/scripts/utility @@ -489,25 +489,9 @@ __rvm_gemset_select() { rvm_ruby_gem_path="$rvm_ruby_gem_home:$rvm_ruby_global_gems_path" - # Careful not to nuke system gems cache. - if [[ ! -z "$rvm_ruby_gem_home" ]] && [[ ! -z "$(echo $rvm_ruby_gem_home | awk '/rvm/')" ]] ; then - # Ensure that the ruby gem home exists. - mkdir -p "$rvm_ruby_gem_home" - - # If there is a cache *directory* already, - # move all the gems to the global cache directory and remove it. - if [[ -d "$rvm_ruby_gem_home/cache" ]] && [[ ! -L "$rvm_ruby_gem_home/cache" ]] ; then - if [[ ! -z "$(\ls -A "$rvm_ruby_gem_home"/cache/)" ]] ; then - mv "$rvm_ruby_gem_home"/cache/* "$HOME"/.gem/cache/ - fi - rmdir "$rvm_ruby_gem_home"/cache - fi - - # If the ruby's gems cache directory is not a symlink to the global cache, symlink it - if [[ ! -L "$rvm_ruby_gem_home/cache" ]] ; then - ln -nfs "$HOME/.gem/cache" "$rvm_ruby_gem_home/cache" - fi - fi ; export rvm_ruby_gem_path rvm_ruby_gem_home + # Ensure that the ruby gem home exists. + mkdir -p "$rvm_ruby_gem_home" + export rvm_ruby_gem_path rvm_ruby_gem_home } # Use a gemset specified by 'rvm_ruby_gem_home'