Golang 1.13.4 和 1.12.13 版本已发布

Golang 1.13.4 和 1.12.13 版本已发布 大家好,

万圣节快乐!🎃

我们刚刚发布了 Go 1.13.4 和 1.12.13 版本,这是两个次要的补丁版本。

Go 1.13.4 包含了对 net/http 和 syscall 包的修复。

这两个版本都解决了 macOS 10.15 Catalina 上的一个问题,即未经过公证的安装程序和二进制文件曾被 Gatekeeper 拒绝

查看发布说明以获取更多信息: https://golang.org/doc/devel/release.html#go1.13.minor

您可以从 Go 网站下载二进制和源代码发行版: https://golang.org/dl/

要使用 Git 克隆从源代码编译,请使用以下命令更新到该版本:

git checkout go1.13.4

然后照常构建。

感谢所有为此次发布做出贡献的人。

祝好, Go 团队 Andy




更多关于Golang 1.13.4 和 1.12.13 版本已发布的实战教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于Golang 1.13.4 和 1.12.13 版本已发布的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


Go 1.13.4 和 1.12.13 的发布主要解决了 macOS Catalina 上的 Gatekeeper 公证问题,这对于在 macOS 10.15 上部署 Go 应用的开发者来说至关重要。以下是相关修复的简要说明和示例。

1. macOS Gatekeeper 修复 在 macOS 10.15 中,未公证的二进制文件会被 Gatekeeper 阻止运行。此版本更新了链接器和构建流程,确保生成的二进制文件符合公证要求。如果你在 Catalina 上构建或分发 Go 程序,升级到此版本可以避免运行时被系统拦截。

2. net/http 包修复 Go 1.13.4 修复了 net/http 包中的一个问题,涉及 HTTP 客户端在处理特定响应时可能出现的错误。例如,修复了在某些情况下读取响应体时可能发生的死锁或数据损坏。以下是一个简单的 HTTP 客户端示例,展示修复后包的正常使用:

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    resp, err := http.Get("https://example.com")
    if err != nil {
        fmt.Printf("请求失败: %v\n", err)
        return
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Printf("读取响应失败: %v\n", err)
        return
    }
    fmt.Printf("响应内容: %s\n", body)
}

此代码在修复后能更稳定地处理网络响应。

3. syscall 包修复 修复了 syscall 包中与系统调用相关的问题,提升了在类 Unix 系统上的兼容性。例如,修复了某些情况下文件描述符处理不当导致的资源泄漏。以下示例展示如何使用 syscall 进行文件操作(注意:实际使用中应优先使用 os 包):

package main

import (
    "fmt"
    "syscall"
)

func main() {
    fd, err := syscall.Open("test.txt", syscall.O_RDONLY, 0)
    if err != nil {
        fmt.Printf("打开文件失败: %v\n", err)
        return
    }
    defer syscall.Close(fd)
    var buf [128]byte
    n, err := syscall.Read(fd, buf[:])
    if err != nil {
        fmt.Printf("读取文件失败: %v\n", err)
        return
    }
    fmt.Printf("读取内容: %s\n", buf[:n])
}

修复后,系统调用更可靠,减少了潜在错误。

升级建议 如果你在 macOS Catalina 上开发或部署,建议立即升级到 Go 1.13.4 或 1.12.13 以避免 Gatekeeper 问题。对于其他用户,升级可以获取最新的安全修复和稳定性改进。使用 git checkout go1.13.4 更新源代码并重新构建即可。

回到顶部