go语言-在mac下brew升级golang


Posted in Golang onApril 25, 2021

在命令行下直接运行:

brew upgrade go

补充:mac下更新delve调试go语言

概述

delve 是golang调试程序。但如果版本不配套, mac下goland 调试,step over会不起作用,直接变成执行完毕或者到下一个断点。 需要更新调试器delve解决。

go get安装

mac下安装delve,官方教程是两步。

$ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
$ go get -u github.com/derekparker/delve/cmd/dlv

但go get 一直不返回。

homebrew 安装

zhouhh@/Users/zhouhh $ brew install go-delve/delve/delve
Updating Homebrew...
==> Installing delve from go-delve/delve
==> Downloading https://github.com/derekparker/delve/archive/v1.0.0.tar.gz
Already downloaded: /Users/zhouhh/Library/Caches/Homebrew/delve-1.0.0.tar.gz
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
==> Generating dlv-cert
==> openssl req -new -newkey rsa:2048 -x509 -days 3650 -nodes -config dlv-cert.cfg -extensions codesign_reqext -batch -out dlv-cert.cer -keyout dlv-cert.key
==> [SUDO] Installing dlv-cert as root
==> sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain dlv-cert.cer
Last 15 lines from /Users/zhouhh/Library/Logs/Homebrew/delve/02.sudo:
2018-08-09 17:07:38 +0800
sudo
security
add-trusted-cert
-d
-r
trustRoot
-k
/Library/Keychains/System.keychain
dlv-cert.cer
If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
https://github.com/go-delve/homebrew-delve/issues
These open issues may also help:
Upgrade to delve fails https://github.com/go-delve/homebrew-delve/issues/20
/usr/local/Homebrew/Library/Homebrew/exceptions.rb:426:in `block in dump': undefined method `check_for_bad_install_name_tool' for #<Homebrew::Diagnostic::Checks:0x007fc5df858bd8> (NoMethodError)
Did you mean?  check_for_tap_ruby_files_locations
 from /usr/local/Homebrew/Library/Homebrew/exceptions.rb:425:in `each'
 from /usr/local/Homebrew/Library/Homebrew/exceptions.rb:425:in `dump'
 from /usr/local/Homebrew/Library/Homebrew/brew.rb:138:in `rescue in <main>'
 from /usr/local/Homebrew/Library/Homebrew/brew.rb:30:in `<main>'

这是因为证书有问题。 可以到homebrew缓存下载的delve里处理一下。

zhouhh@/Users/zhouhh $ cd $HOME/Library/Caches/Homebrew
zhouhh@/Users/zhouhh/Library/Caches/Homebrew $ ls del*
delve-1.0.0.tar.gz
zhouhh@/Users/zhouhh/Library/Caches/Homebrew $ tar zxvf delve-1.0.0.tar.gz
zhouhh@/Users/zhouhh/Library/Caches/Homebrew $ sh delve-1.0.0/scripts/gencert.sh
Password:

再安装成功

zhouhh@/Users/zhouhh/Library/Caches/Homebrew $ CGO_ENABLED=1 brew install go-delve/delve/delve
==> Installing delve from go-delve/delve
==> Downloading https://github.com/derekparker/delve/archive/v1.0.0.tar.gz
Already downloaded: /Users/zhouhh/Library/Caches/Homebrew/delve-1.0.0.tar.gz
==> dlv-cert is already installed, no need to create it
==> make build BUILD_SHA=v1.0.0
==> Caveats
If you get "could not launch process: could not fork/exec", you need to try
in a new terminal.
When uninstalling, to remove the dlv-cert certificate, run this command:
    $ sudo security delete-certificate -t -c dlv-cert /Library/Keychains/System.keychain
Alternatively, you may want to delete from the Keychain (with the Imported private key).
==> Summary
?  /usr/local/Cellar/delve/1.0.0: 6 files, 10.6MB, built in 13 seconds

安装成功

修改ide环境

安装完最新的 delve 后,如 brew install delve, 然后在IntelliJ或goland中点击

Help → Edit Custom Properties...

添加新行

dlv.path=/usr/local/bin/dlv

保存重启,解决step over(F8) 直接运行完毕的bug。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Golang 相关文章推荐
golang在GRPC中设置client的超时时间
Apr 27 Golang
go语言中json数据的读取和写出操作
Apr 28 Golang
go mod 安装依赖 unkown revision问题的解决方案
May 06 Golang
Go 语言结构实例分析
Jul 04 Golang
Go语言实现一个简单的并发聊天室的项目实战
Mar 18 Golang
golang生成vcf通讯录格式文件详情
Mar 25 Golang
Go语言安装并操作redis的go-redis库
Apr 14 Golang
Golang 并发编程 SingleFlight模式
Apr 26 Golang
Go 内联优化让程序员爱不释手
Jun 21 Golang
在ubuntu下安装go开发环境的全过程
Aug 05 Golang
GO中sync包自由控制并发示例详解
Aug 05 Golang
go原生库的中bytes.Buffer用法
Apr 25 #Golang
Go缓冲channel和非缓冲channel的区别说明
Apr 25 #Golang
Go语言使用select{}阻塞main函数介绍
win10下go mod配置方式
Go语言-为什么返回值为接口类型,却返回结构体
Apr 24 #Golang
go:垃圾回收GC触发条件详解
Apr 24 #Golang
基于go interface{}==nil 的几种坑及原理分析
Apr 24 #Golang
You might like
php 删除无限级目录与文件代码共享
2008/11/22 PHP
延长phpmyadmin登录时间的方法
2011/02/06 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
2016/01/04 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
2017/04/19 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
js和jquery设置disabled属性为true使按钮失效
2014/08/07 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
js实现导航跟随效果
2018/11/17 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
2017/05/24 Python
Python实现基于POS算法的区块链
2018/08/07 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Python之变量类型和if判断方式
2020/05/05 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
英国精品买手店:Browns Fashion
2016/09/29 全球购物
制药工程专业个人求职自荐信
2014/01/25 职场文书
幼儿教育感言
2014/02/05 职场文书
旅游与酒店管理专业求职信
2014/07/21 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书