Go / / 2024. 1. 17. 09:57

Ubuntu에 Cobra와 Cobra-cli 설치(cobra-cli: command not found 해결)

반응형

 

Cobra란?

 

https://github.com/spf13/cobra

 

GitHub - spf13/cobra: A Commander for modern Go CLI interactions

A Commander for modern Go CLI interactions. Contribute to spf13/cobra development by creating an account on GitHub.

github.com

 

CLI 애플리케이션을 만들기 위한 라이브러리로, Cobra를 사용하면 CLI 인터페이스를 간단하게 구현할 수 있다.

 

 

Cobra를 사용한 예로 K8S의 kubectl, Docker CLI, Hugo, Helm 등이 있다.

 

 

 

 

1. Go 모듈 생성

# go mod init <프로젝트명>
go mod init minha

 

 

결과:

 

 


 

+go 폴더 위치?

더보기

방금 go mod init 명령어를 실행하면 go폴더까지 같이 현재 디렉토리에 만들어진다.

 

하지만 gopath를 설정한 후에 명령어를 실행면 /usr/local/sbin 디렉토리에 go 폴더가 만들어질것이다.

 

~/.bashrc 파일에 gopath를 추가한 모습

 

 

이 경우에는 이후에 설치할 cobra 라이브러리를 설치할 때 sudo 권한이 있어야한다.

 

 

만약 일반 사용자 권한으로 계속 진행하면 아래 에러를 볼 수 있다:

go: could not create module cache: mkdir /usr/local/sbin/pkg: permission denied

 

 

 

그래서 애초에 프로젝트를 root 권한으로 진행할거면 go 설치부터 root권한으로 실행하거나,

아니면 root 사용자와 일반 사용자의 ~/.bashrc 파일을 모두 수정하면서 진행을 해야한다.

 

 

 

이번 포스팅은 연습용 서버라 go 파일 위치가 중요한건 아니니 그대로 진행한다.

 

 

 


 

 

2. Cobra 최신 라이브러리 설치

 

go get -u github.com/spf13/cobra@latest

 

 

결과: go.sum 생성

 

 

 

3. cobra-cli 설치

go install github.com/spf13/cobra-cli@latest

 

 

결과:

 

 

 

 

4. 환경변수에 cobra-cli 경로 추가

 

cobra-cli가 설치된 경로를 적어준다.

cat << EOF >> ~/.bashrc
export PATH=$PATH:~/go/bin
EOF

 

 

~/.bashrc

 

그리고 설정 적용

source ~/.bashrc

 

 

 

5. 프로젝트 초기화

cobra-cli init

 

 

결과: main.go 와 cmd 폴더의 root.go 생성

 

 

 

 

 

반응형

'Go' 카테고리의 다른 글

Ubuntu에 Go 설치(최신 버전 설치하는 방법)  (0) 2024.01.16
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유