Ruby 命令与 $gopath 中的程序冲突

标签 ruby go rbenv

我安装了 rbenv(使用自制软件)并在我的 mac 上使用了多个版本的 ruby​​。有一段时间我不太使用 Ruby,在我的电脑上安装了其他东西(包括 OSX 10.9.3 和 Go)。我今天运行了 rbenv,它一遍又一遍地重复这条消息

tory
/usr/local/bin/rbenv: line 14: cd: Usage:  Head host:port: No such file or directory
/usr/local/bin/rbenv: line 14: cd: Usage:  Head host:port: No such file or directory
/usr/local/bin/rbenv: line 14: cd: Usage:  Head host:port: No such file or directory
/usr/local/bin/rbenv: line 14: cd: Usage:  Head host:port: No such file or directory
^C

当我运行 ruby -v 时,它一遍又一遍地重复此消息

/usr/local/Cellar/rbenv/0.4.0/libexec/rbenv: line 14: cd: Usage:  Head host:port: No such file or directory
/usr/local/Cellar/rbenv/0.4.0

我用 homebrew 卸载了 rbenv 并重新安装了它,但遇到了同样的问题。

当我运行 jekyll serve -w(在本地运行一个 jekyll 博客)时,我也得到了错误

/usr/local/Cellar/rbenv/0.4.0/libexec/rbenv: line 14: cd: Usage:  Head host:port: No such file or directory

更新 我最近在我的计算机上安装了 Go,今天运行了几个 Go 程序,其中一个名为 Head。我在尝试运行 rbenv 或 jekyll 时收到的错误消息似乎来 self 的 $GOPATH 中的一个 Go 脚本。这是打印错误消息的 HEAD 脚本

"Usage: ", os.Args[0], "host:port"

这个程序位于$GOPATH

/Users/randomname/go/src/github.com/myname/head

我不明白为什么这会与 Ruby 命令冲突

/* Head
 */

package main

import (
    "fmt"
    "net/http"
    "os"
)

func main() {
    if len(os.Args) != 2 {
        fmt.Println("Usage: ", os.Args[0], "host:port")
        os.Exit(1)
    }
    url := os.Args[1]

    response, err := http.Head(url)
    if err != nil {
        fmt.Println(err.Error())
        os.Exit(2)
    }

    fmt.Println(response.Status)
    for k, v := range response.Header {
        fmt.Println(k+":", v)
    }

    os.Exit(0)
}

这是我的 bash_profile。问题:此文件中是否存在导致冲突的内容?

### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"

export PGHOST=localhost


export LASTFM_API='76479e879457be34dd1180f78e731fc0'

export PATH=${PATH}:/usr/local/mysql/bin
eval "$(rbenv init -)"
export PATH="$HOME/.rbenv/bin:$PATH"

export GOPATH=/Users/randomname/go/
export PATH=$GOPATH/bin:$PATH

# The next line updates PATH for the Google Cloud SDK.
source '/Users/my_name/google-cloud-sdk/path.bash.inc'

# The next line enables bash completion for gcloud.
source '/Users/randomname/google-cloud-sdk/completion.bash.inc'

alias goapp=~/google-cloud-sdk/platform/google_appengine/goapp

export PATH=/path/to/go_appengine:$PATH

最佳答案

它正在尝试使用 GNU head 并且正在捕获您的版本,这是一个完全不同的程序,您必须将名称更改为其他名称并删除 $GOPATH/bin/head

关于Ruby 命令与 $gopath 中的程序冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24706980/

相关文章:

ruby-on-rails - URI::InvalidURIError(URI 只能是 ascii)

ruby-on-rails - 使用 grouped_options_for_select 设置默认值,使用 f.select

linux - 错误消息 "go: go.mod file not found in current directory or any parent directory; see ' go help modules'"

go - 部署到 Heroku 错误无法执行二进制文件 Exec 格式错误

ruby-on-rails - rbenv ruby​​ on rails global vs local vs shell

ruby - 在 macOS 上升级全局 Ruby 版本

ruby-on-rails - 如何使用rails输出当前协议(protocol)和url?

xml - 如何在 Go 中构建三层 xml

ruby - 更新 jekyll 站点

ruby - 如何在 Travis Ruby on Rails 中输入 heroku 凭据