ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • golang: Found, but does not contain package
    Trouble Shooting 2022. 11. 19. 19:10

    나같은 이상한 실수를 하는 사람이 없기를 바라면서, 작성한다. 

     

    새로운 pkg를 설치하려다 다음과 같은 error를 마주쳤다. 

    # pkg 다운로드 시도
    go get sigs.k8s.io/cluster-api-provider-vsphere/apis/v1alpha3@v0.7.6
    
    # 실패 error
    go get: module sigs.k8s.io/cluster-api-provider-vsphere@v0.7.6 found, 
    but does not contain package sigs.k8s.io/cluster-api-provider-vsphere/apis/v1alpha3

     

    해당 error는 cluster-api-provider-vsphere라는 저장소는 찾았지만, apis/v1alpha3라는 pkg가 존재하지 않는다는 error다. 

     

    따라서 pkg 명을 한번 더 확인할 필요가 있다.

     

    pkg.go.dev에서 패키지 다운로드를 시도한 버전에서 패키지명을 다시 확인하거나 

     

    GOPATH 경로에 있는 pkg 파일을 직접 확인하면 된다. 

     

    나의 경우, pkg.go.dev에서 확인하지 않고, 직접 GOROOT 경로에 있는 pkg 파일을 직접 확인했다.

     

    root@tmax:~/sjoh/hypercloud-multi-operator# go env | grep -i gopath
    GOPATH="/root/go"

     

    /root/go/sigs.k8s.io/cluster-api-provider-vsphere@0.7.6 경로에서 직접 pkg명을 확인했더니 

    pkg명이 apis가 아니라, api였다...

    // pkg 경로 확인
    ls /root/go/pkg/mod/sigs.k8s.io/cluster-api-provider-vsphere\@v0.7.6/api/v1alpha3/
    // 사용하기 원했던 내용들 
    cloudprovider_encoding.go           vspherecluster_conversion.go           vspheremachinetemplate_webhooks_test.go
    cloudprovider_encoding_test.go      vsphereclusterlist_webhook.go          vspheremachine_types.go
    cloudprovider_types.go              vspherecluster_types.go                vspheremachine_webhook.go
    condition_consts.go                 vspherecluster_webhook.go              vspheremachine_webhook_test.go
    doc.go                              vspherecluster_webhook_test.go         vspherevm_conversion.go
    groupversion_info.go                vspheremachine_conversion.go           vspherevmlist_webhook.go
    haproxyloadbalancer_conversion.go   vspheremachinelist_webhook.go          vspherevm_types.go
    haproxyloadbalancerlist_webhook.go  vspheremachinetemplate_conversion.go   vspherevm_webhook.go
    haproxyloadbalancer_types.go        vspheremachinetemplatelist_webhook.go  vspherevm_webhook_test.go
    haproxyloadbalancer_webhook.go      vspheremachinetemplate_types.go        webhooks.go
    types.go                            vspheremachinetemplate_webhook.go      zz_generated.deepcopy.go

     

    패키지 경로를 고친 후, 시도하니 정상 다운로드 된다. 

    // 다운로드 시도
    go get sigs.k8s.io/cluster-api-provider-vsphere/api/v1alpha3@v0.7.6
    
    // 정상 다운로드 
    go get: added sigs.k8s.io/cluster-api-provider-vsphere v0.7.6

     

    사소한 실수에 시간을 많이 사용했지만

    이번 기회에 go에서 모듈 관리를 어떻게 하는지에 대해서 잘 알게 되었다. 

    반응형

    댓글

Designed by Tistory.