• [golang] Glide 包管理工具,在windows10 64位系统上的bug修复方案


    bug重现
    [ERROR] Unable to export dependencies to vendor directory: Error moving files: exit status 1. output: Access is denied. 0 dir(s) moved

    解决方案

    第一步

    //找到这个文件 github.com/Masterminds/glide/path/winbug.go
    
    
    // CustomRename is similar to os.Rename but deals with the bug outlined
    // at https://github.com/golang/go/issues/20841.
    func CustomRename(o, n string) error {
    
    	// Handking windows cases first
    	if runtime.GOOS == "windows" {
    		msg.Debug("Detected Windows. Moving files using windows command")
    		cmd := exec.Command("cmd.exe", "/c", "move", o, n) //将这行代码修改为 cmd := exec.Command("cmd.exe", "/c", "xcopy /s/y", o, n+"\")
    		output, err := cmd.CombinedOutput()
    		if err != nil {
    			return fmt.Errorf("Error moving files: %s. output: %s", err, output)
    		}
    
    		return nil
    	} else if detectWsl() {
    		cmd := exec.Command("mv", o, n)
    		output, err2 := cmd.CombinedOutput()
    		msg.Debug("Detected Windows Subsystem for Linux. Removing files using subsystem command")
    		if err2 != nil {
    			return fmt.Errorf("Error moving files: %s. output: %s", err2, output)
    		}
    
    		return nil
    	}
    
    	return os.Rename(o, n)
    }
    

    第二步,重新编译glide.go文件

    go build glide.go
    

    第三步,将编译生成的可执行文件glide.exe,复制到gopath下的bin目录(这个目录是加了系统环境变量的,所以将其放入该目录)

    第四步,更详细的讨论解决方案 https://github.com/Masterminds/glide/issues/873

  • 相关阅读:
    第13章 TCP/IP和网络编程
    实验二测试
    实验四 Web服务器1socket编程
    thread同步测试
    团队作业(五):冲刺总结——第四天
    111
    递归和数学归纳法
    Nodejs中cluster模块的多进程共享数据问题
    JavaScript写类方式(一)——工厂方式
    JavaScript中的shift()和pop()函数
  • 原文地址:https://www.cnblogs.com/yxhblogs/p/8157211.html
Copyright © 2020-2023  润新知