Glide now errors out if cache setup fails and cache is needed
diff --git a/action/cache.go b/action/cache.go
index 9896f21..b2ee07a 100644
--- a/action/cache.go
+++ b/action/cache.go
@@ -9,21 +9,15 @@
 
 // CacheClear clears the Glide cache
 func CacheClear() {
-	l, err := cache.Location()
-	if err != nil {
-		msg.Die("Unable to clear the cache: %s", err)
-	}
+	l := cache.Location()
 
-	err = os.RemoveAll(l)
+	err := os.RemoveAll(l)
 	if err != nil {
 		msg.Die("Unable to clear the cache: %s", err)
 	}
 
 	cache.SetupReset()
-	err = cache.Setup()
-	if err != nil {
-		msg.Die("Unable to clear the cache: %s", err)
-	}
+	cache.Setup()
 
 	msg.Info("Glide cache has been cleared.")
 }
diff --git a/action/config_wizard.go b/action/config_wizard.go
index ea627b4..e941399 100644
--- a/action/config_wizard.go
+++ b/action/config_wizard.go
@@ -37,10 +37,7 @@
 
 	conf := EnsureConfig()
 
-	err = cache.Setup()
-	if err != nil {
-		msg.Die("Problem setting up cache: %s", err)
-	}
+	cache.Setup()
 
 	msg.Info("Looking for dependencies to make suggestions on")
 	msg.Info("--> Scanning for dependencies not using version ranges")
@@ -252,11 +249,7 @@
 var createGitParseVersion = regexp.MustCompile(`(?m-s)(?:tags)/(\S+)$`)
 
 func wizardFindVersions(d *cfg.Dependency) {
-	l, err := cache.Location()
-	if err != nil {
-		msg.Debug("Problem detecting cache location: %s", err)
-		return
-	}
+	l := cache.Location()
 	remote := d.Remote()
 
 	key, err := cache.Key(remote)
diff --git a/cache/cache.go b/cache/cache.go
index 5a8538d..21f4edd 100644
--- a/cache/cache.go
+++ b/cache/cache.go
@@ -54,12 +54,12 @@
 var setupMutex sync.Mutex
 
 // Setup creates the cache location.
-func Setup() error {
+func Setup() {
 	setupMutex.Lock()
 	defer setupMutex.Unlock()
 
 	if isSetup {
-		return nil
+		return
 	}
 	msg.Debug("Setting up the cache directory")
 	pths := []string{
@@ -71,12 +71,11 @@
 	for _, l := range pths {
 		err := os.MkdirAll(filepath.Join(gpath.Home(), l), 0755)
 		if err != nil {
-			return err
+			msg.Die("Cache directory unavailable: %s", err)
 		}
 	}
 
 	isSetup = true
-	return nil
 }
 
 // SetupReset resets if setup has been completed. The next time setup is run
@@ -86,11 +85,11 @@
 }
 
 // Location returns the location of the cache.
-func Location() (string, error) {
+func Location() string {
 	p := filepath.Join(gpath.Home(), "cache")
-	err := Setup()
+	Setup()
 
-	return p, err
+	return p
 }
 
 // scpSyntaxRe matches the SCP-like addresses used to access repos over SSH.
@@ -153,10 +152,7 @@
 	if !Enabled {
 		return ErrCacheDisabled
 	}
-	location, err := Location()
-	if err != nil {
-		return err
-	}
+	location := Location()
 	data.LastUpdate = time.Now().String()
 	d, err := json.Marshal(data)
 	if err != nil {
@@ -185,10 +181,7 @@
 	if !Enabled {
 		return &RepoInfo{}, ErrCacheDisabled
 	}
-	location, err := Location()
-	if err != nil {
-		return &RepoInfo{}, err
-	}
+	location := Location()
 	c := &RepoInfo{}
 	p := filepath.Join(location, "info", key+".json")
 	f, err := ioutil.ReadFile(p)
diff --git a/repo/vcs.go b/repo/vcs.go
index e77e870..eacb1c0 100644
--- a/repo/vcs.go
+++ b/repo/vcs.go
@@ -368,10 +368,7 @@
 		loc := dep.Remote()
 		key, err := cp.Key(loc)
 		if err == nil {
-			location, err := cp.Location()
-			if err != nil {
-				return err
-			}
+			location := cp.Location()
 			d := filepath.Join(location, "src", key)
 
 			repo, err := dep.GetRepo(d)