簡體   English   中英

go install golang.org/x/crypto/pbkdf2@latest 返回“不是主包”

[英]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沒有maingo 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM