无法在Mac上安装Delve Go调试器

时间:2019-11-29 20:50:12

标签: bash debugging go delve

我正在尝试与以下YouTube video一起开始Go调试。

建议按照官方的Delve github存储库上的Delve安装说明进行操作。对于Mac用户,他们是as follows

确保工具链到位

xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates

使用“获取”来安装Delve

go get -u github.com/go-delve/delve/cmd/dlv

确保在Xcode中启用了开发人员模式

sudo /usr/sbin/DevToolsSecurity -enable
Developer mode is already enabled.

要检查安装是否正确完成,我尝试在Go项目目录中运行以下命令:

dlv debug
zsh: command not found: dlv

视频教程的作者建议在无法识别命令的情况下更新~/.bash_profile文件中的GOPATH和PATH变量。我这样做是通过添加:

export GOPATH=/Users/<user_name>/go/src/
export PATH=$PATH:/Users/<user_name/go/src/my_project

但是,即使这样做,在尝试运行调试器时我也会得到相同的结果:

dlv debug
zsh: command not found: dlv

即使使用exec bash将默认zsh的shell更改为bash,我也得到相同的结果。

2 个答案:

答案 0 :(得分:7)

要运行可执行文件,它必须在您的PATH中可用。

1。配置您的路径。

确保在您的shell环境中正确设置了GOPATH$GOPATH/bin目录。您可以通过在外壳程序配置中添加以下几行来完成此操作。

~/.zshrc(如果您使用的是zsh

~/.bash_profile(如果您使用的是bash

export GOPATH="$HOME/go"
export PATH="$GOPATH/bin:$PATH"

2。重新加载您的Shell配置。

确保更改后重新启动外壳程序或在外壳程序配置文件上运行source

source ~/.zshrc(如果您使用的是zsh

source ~/.bash_profile(如果您使用的是bash


3。安装dlv软件包。

go install github.com/go-delve/delve/cmd/dlv

这是假设您使用/Users/<username>/go作为GOPATH


您现在应该可以在终端会话中运行dlv

祝你好运!

答案 1 :(得分:5)

将环境变量GOBIN设置为要安装dlv二进制文件的位置。

例如:

GOBIN=~/bin go install github.com/go-delve/delve/cmd/dlv

这会将dlv安装在〜/ bin

澄清

运行go install时,可以通过设置GOBIN环境变量来指定安装路径。

有两种设置环境变量的方法:

1)运行export GOBIN=<SOMETHING>之前运行go install ..

$ export GOBIN="$HOME/bin"
$ go install github.com/go-delve/delve/cmd/dlv

export命令将更改当前终端会话中的环境。您以后执行的任何命令都会看到您为GOBIN

设置的值

使用这种方法时,通常不仅要在此会话中,而且要在以后的所有会话中都激活此环境变量。因此最好将行添加到您的bash个人资料中。

2)仅为命令设置环境变量。

$ A=10 some-command

在这种情况下,some-command将看到环境变量A的值设置为'10'。如果您运行更高版本的命令,它将看不到该值。

当您只是尝试尝试或仅在某些情况下希望设置某些环境变量时,此方法很有用。

我作为答案提供的命令行遵循第二种方法。

它将GOBIN变量设置到~/bin目录,然后在同一行中调用go install。这样,对go install的调用将在~/bin中安装dlv

这当然假设您的主目录中有一个bin目录。

如果您没有这样的目录,那么它将不起作用。

这个想法不是复制粘贴行。想法是将~/bin更改为要安装dlv二进制文件的目录。