猿问

“ln”脚本的一些错误

有人熟悉 etcd 项目吗?或者我们在谈论这个问题时最好忘记这个项目。问题是


$ build

ln: `gopath/src/github.com/coreos/etcd': cannot overwrite directory

当 exec构建外壳和内容是:


#!/bin/sh -e


if [ ! -h gopath/src/github.com/coreos/etcd ]; then

    mkdir -p gopath/src/github.com/coreos/

    ln -s ../../../.. gopath/src/github.com/coreos/etcd

fi


export GOBIN=${PWD}/bin

export GOPATH=${PWD}/gopath

export GOFMTPATH="./bench ./config ./discovery ./etcd ./error ./http ./log main.go ./metrics ./mod ./server ./store ./tests"


# Don't surprise user by formatting their codes by stealth

if [ "--fmt" = "$1" ]; then

    gofmt -s -w -l $GOFMTPATH

fi


go install github.com/coreos/etcd

go install github.com/coreos/etcd/bench

一些补充:我的系统是 Windows 7

我在 git bash 上运行 shell。 问题重现:


step1: open the git bash

step2: git clone git@github.com:coreos/etcd.git

step3: cd etcd

step4: build


哈士奇WWW
浏览 263回答 3
3回答

跃然一笑

如“ Git Bash Shell 无法创建符号链接”中所述(因为您在 Windows 7 上的 git bash 中使用该脚本)在ln与msysGit运只是试图复制它的参数,而不是链接小提琴。这是因为链接只在(某种程度上)在 NTFS 文件系统上工作,并且 MSYS 团队不想重新实现 ln。解决方法是mklink从 Bash运行。这也允许您创建Symlink 或 Junction。因此,默认情况下,'ln' 在 Windows 版 Git 随附的旧 shell 中不会按预期工作。
随时随地看视频慕课网APP

相关分类

Go
我要回答