반응형
Cobra란?
https://github.com/spf13/cobra
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 폴더가 만들어질것이다.
이 경우에는 이후에 설치할 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
그리고 설정 적용
source ~/.bashrc
5. 프로젝트 초기화
cobra-cli init
결과: main.go 와 cmd 폴더의 root.go 생성
반응형
'Go' 카테고리의 다른 글
Ubuntu에 Go 설치(최신 버전 설치하는 방법) (0) | 2024.01.16 |
---|