[英]go install golang.org/x/crypto/pbkdf2@latest returns 'not a main package'
我是 go 的新手,我正在嘗試運行 go 腳本,其中包括以下內容:
import (
"bytes"
"crypto/aes"
"crypto/cipher"
"crypto/rand"
"crypto/sha256"
"encoding/base64"
"errors"
"fmt"
"io"
"golang.org/x/crypto/pbkdf2"
)
如果我嘗試運行腳本,我似乎缺少 pbkdf2 package:
$ go run DecryptGrafanaPassword.go
DecryptGrafanaPassword.go:12:2: no required module provides package golang.org/x/crypto/pbkdf2: go.mod file not found in current directory or any parent directory; see 'go help modules'
但是當我嘗試安裝它時,它也抱怨它不是主要的 package:
$ go install golang.org/x/crypto/pbkdf2@latest
package golang.org/x/crypto/pbkdf2 is not a main package
讓它運行的最簡單方法是什么?
go install
下載 package 並構建可執行文件。 每個可執行文件都必須有一個名為main
的子模塊。 由於golang.org/x/crypto/pbkdf2
沒有main
, go install
失敗。
實際上,您需要的只是go mod tidy
。 它讀取源代碼,將所需模塊寫入go.mod
並下載它們。 我用你的導入創建了一個小例子,這就是go mod tidy
所做的:
code$ go mod tidy
go: finding module for package golang.org/x/crypto/pbkdf2
go: downloading golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8
go: found golang.org/x/crypto/pbkdf2 in golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8
這是go.mod
,由以下命令更新:
module example.org
go 1.16
require golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8
golang.org/x/crypto
的源代碼自動下載到$GOPATH/pkg/mod/golang.org/x/crypto@v0.0.0-20220817201139-bc19a97f63c8/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.