上卷 程序设计
中卷 标准库
- bufio 1.18
- bytes 1.18
- io 1.18
- container 1.18
- encoding 1.18
- crypto 1.18
- hash 1.18
- index 1.18
- sort 1.18
- context 1.18
- database 1.18
- connection
- query
- queryrow
- exec
- prepare
- transaction
- scan & null
- context
- tcp
- udp
- http
- server
- handler
- client
- h2、tls
- url
- rpc
- exec
- signal
- embed 1.18
- plugin 1.18
- reflect 1.18
- runtime 1.18
- KeepAlived
- ReadMemStats
- SetFinalizer
- Stack
- sync 1.18
- atomic
- mutex
- rwmutex
- waitgroup
- cond
- once
- map
- pool
- copycheck
- nocopy
- unsafe 1.18
- fmt 1.18
- log 1.18
- math 1.18
- time 1.18
- timer
下卷 运行时
源码剖析
附录
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
安装
手工安装,了解如何自举(bootstrap)编译。
1. 发行版
下载预编译的发行版(os_arch.tar.gz)。解压缩,将 go/bin
目录添加到系统搜索路径。
# 下载。注意平台和架构。 $ wget https://go.dev/dl/go1.18.linux-amd64.tar.gz # 解压缩到指定目录(默认 /usr/local)。 $ tar xf go1.18.linux-amd64.tar.gz -C /usr/local # 添加搜索路径。 $ export PATH=/usr/local/go/bin:$PATH # .profile
# 输出版本号,测试。 $ go version go version go1.18 linux/amd64
2. 自举编译
自 1.15 起,以 Go 替换 C 重写工具链和运行时。用 Go 编译 Go 源码,即所谓自举。
- 确认当前环境有可用版本。
- 下载源码,解压缩,自举编译。
# 当前版本安装路径。 $ go env GOROOT /usr/local/go
# 下载源码。(注意文件名差异,src 表明源码包) $ wget https://go.dev/dl/go1.18rc1.src.tar.gz # 解压缩到临时目录。(编译成功再考虑是否替换现有版本) $ tar xf go1.18rc1.src.tar.gz -C ~/tmp
进入源码目录,编译。
默认 CGO 需 GCC 支持,执行
apt install gcc build-essential
安装。使用
GOROOT_BOOTSTRAP
指定当前版本路径。默认路径(/usr/local/go
)可省略。执行
make.bash
仅编译,all.bash
则包括编译和测试。
$ cd tmp/go/src $ GOROOT_BOOTSTRAP=/usr/local/go ./make.bash Building Go cmd/dist using /usr/local/go. (go1.18rc1 linux/amd64) Building Go toolchain1 using /usr/local/go. Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1. Building Go toolchain2 using go_bootstrap and Go toolchain1. Building Go toolchain3 using go_bootstrap and Go toolchain2. Building packages and commands for linux/amd64. --- Installed Go for linux/amd64 in tmp/go Installed commands in tmp/go/bin
# 编译成功,测试。 $ ../bin/go version go version go1.18rc1 linux/amd64
3. 多版本
安装多版本,测试新功能(rc, beta),或替换当前版本。
- 安装下载工具。
- 下载目标版本。
# 安装指定版本下载工具。 $ go install golang.org/dl/go1.16@latest # 下载工具存储路径。 $ cd `go env GOPATH`/bin; ls go1.16
$ ./go1.16 download Downloaded 100.0% (129003129 / 129003129 bytes) Unpacking sdk/go1.16/go1.16.linux-amd64.tar.gz ... Success. You may now run 'go1.16'
同样以该工具执行命令,避免和默认主版本混淆。
$ ./go1.16 version go version go1.16 linux/amd64 $ ./go1.16 build -h
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论