拉取单个 go 标准包的副本进行修改

我想对 database/sql go 包做一个小的补充。我想试试我的改变,看看它是如何工作的。


我认为我将能够执行此命令以获取我可以使用的 database/sql 中的源副本:


go get github.com/golang/go/tree/master/src/database/sql

然后,我打算将我的导入语句从


import "database/sql"


import "github.com/golang/go/tree/master/src/database/sql"

并在我的本地代码副本中放置一个调试 Printf,以确认我刚刚提取的新代码正在执行,而不是 /usr/local/go 中的代码。


当我尝试上面的“go get”命令时,我收到以下错误消息:


$ go get github.com/golang/go/tree/master/src/database/sql

package github.com/golang/go/tree/master/src/database/sql: cannot find package "github.com/golang/go/tree/master/src/database/sql" in any of:

    /usr/local/go/src/github.com/golang/go/tree/master/src/database/sql (from $GOROOT)

    /Users/me/go/src/github.com/golang/go/tree/master/src/database/sql (from $GOPATH)

$ echo $GOPATH

/Users/me/go

$

为什么这不起作用?


我也试过用源代码做到这一点


https://go.googlesource.com/go/+/release-branch.go1.6/src/database/sql

那也没有用。然后我尝试从上面的链接下载源代码的 tgz,并在我自己的 $GOPATH/src/github.com/database/sql 文件夹中解压缩这些文件,然后在那里构建它们。这产生了一个运行,但没有工作的 sql.a。


繁星点点滴滴
浏览 173回答 2
2回答

哔哔one

您可以从源代码构建 Go,然后就地修改标准库,也可以供应该特定包。如果您从源代码安装了 Go,则在编辑软件包后,您可以像安装任何其他软件包一样安装新版本 go install database/sql如果将database/sql包复制到vendor目录中,则将构建并导入该副本以代替标准库中的版本。

森栏

正如戈多克所说get         download and install packages and dependencies您只能获取包和依赖项。但是你想得到一个文件夹!您可以从 github 下载其 zip 文件并将其复制到该目的地。如果您想查看错误,可以使用错误类型。例如 sql.Open 返回 *sql.DB,错误db, err := sql.Open("mysql", "astaxie:astaxie@/test?charset=utf8")if err != nil {    fmt.Println(err)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go