우선 Echo Framework를 받아 보자

https://echo.labstack.com/guide

Echo 사이트의 가이드에는

go get github.com/labstack/echo/v4

하라고 되어 있지만 해당 명령을 그대로 수행하면 오류가 난다.

cannot find package "github.com/labstack/echo/v4" in any of...

아래와 같이 버전을 빼고 실행해야 받아 짐

go get github.com/labstack/echo

그러나 depencency가 걸려있는 것들이 있어
아래와 같이 ... 을 붙여줘야 다 받아 짐.

go get -u github.com/labstack/echo/...

 

참고 VS Code에서 파일 위치는

/mnt/c/해당폴더 등으로 terminal 가동했을 때 나타난 주소이다.
/usr/local 같은데로 이동했다가 못찾아오지 말고 참고 할 것.

 

 

728x90

https://golang.org/dl/

Go 사이트에서 최신 버전 확인 : go1.15.6.linux-amd64.tar.gz

터미널에서 다운받는다

curl -LO https://dl.google.com/go/go1.15.6.linux-amd64.tar.gz

압축파일이므로 압축을 푼다.

tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz

근데 압축이 안풀리고 permission denied가 나면 sudo를 붙여 명령을 실행한다.

sudo tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz

비밀번호를 물어보므로 최초 설정한 비밀번호를 입력한다. 

cd /usr/local/go 를 하여 해당 폴더가 정상적으로 생성되었는지 확인한다.

go 실행파일을 path에 추가한다.

export PATH=$PATH:/usr/local/go/bin

permission denied가 나서 sudo로 다시 압축을 풀고 /usr/local에 go 생성확인
PATH에 추가 후 go version 확인

 

참조 : 우분투 go 1.12.1 설치 - 제타위키 (zetawiki.com)

728x90

Windows 에서 Linux용 Window 하위 시스템 설치 한 뒤에 리눅스도 설치했다.
VS Code를 에디터로 사용하기 위한 설정이다.

VS Code를 그냥 설치하게 되면 설치 경로에 공백이 있어 vs code 의 path 설정을 bash 해야하는데

/mnt/c/Users/사용자/AppData/Local/Programs/"Microsoft VS Code/bin"

위와 같이 Microsoft 뒤에 오는 공백 때문에 정상적으로 설정이 되지 않는다"

따라서 vs코드 설치할 때 공백이 없이 설치 경로명을 수정한다.

/mnt/c/Users/사용자\AppData\Local\Programs\VS_Code\bin

VS Code를 실행하자 다음과 같이 Install하라고 나오네

만약에 안뜨면 WSL 로 검색하면 됨

그 다음 Remote Development 를 install

 

그다음 power shell 에서 ubuntu 를 실행시킨다음.
코드 띄우고 쩜 을 입력하고 엔터하면 뭔가 설치가 되고 VS Code가 실행된다.

code .

C드라이브의 현재 User경로에서 뜨는데 특정 폴더기준으로 하려면
원하는 경로에 가서 code 한칸 공백 쩜 하고 엔터

code .

linux_for_go 라는 폴더를 만들어서 거기에서 code . 을 했더니 해당 경로로 열림

728x90

Windows 사용자를 위한 설정이므로

Linux 사용자는 Skip할 것.

---

Linux용 Windows 하위 시스템 체크를 하고 재부팅이 되면
Window키 또는 시작버튼을 눌러 Microsoft Store를 실행한다.

Ubuntu 를 검색한다

여러개가 검색되는데 그냥 Ubuntu를 클릭(특정버전 쓸꺼면 해당 버전 클릭)

무료이므로 다운받아 설치한다.
굳이 로그인할 필요 없으므로 '관심 없음' 클릭.

다운로드 중

 

다운로드가 다 되고 설치가 완료 됨

실행을 눌러 리눅스 install

설치가 끝나면 username 과 password를 설정한다

이번에는 터미널 설치

 

설치가 끝나고 Terminal 실행해보면 아직 리눅스(Ubuntu)가 안보인다.
재부팅한다.

설정이 정상적으로 된 경우 terminal을 검색하여 실행시킨 후

 

실행시킬 Command를 보면 Ubuntu가 추가되어 있다.

이후부터는 동일하게 리눅스에서 하는 것과 같다.

728x90

Go 언어를 시작하려면 개발환경설정을 해야하는데

권장하는 OS는 리눅스다.
Windows를 사용하는 경우에는 이런저런 제약이 많은데

윈도우에서 리눅스환경으로 설정이 가능하다.

WSL 이라는 것을 사용하는 것인데

우선 [제어판] - [앱] 에서 스크롤을 아래로 쭉~ 내리면
관련설정 - 프로그램 및 기능 이 있다.

클릭해 들어가면 왼쪽 메뉴에 'Windows 기능 켜기/끄기'가 있다.

클릭해보면 팝업이 뜨는데
Linux용 Windows 하위 시스템에 체크를 한다.

재부팅한다.

728x90

Start Go lang

2021. 1. 7. 22:50

Window는 path 에서 %PATH% 와 같이 %를 사용해야하는 귀찮음이...

먼저

Go 설치는 다음 Site 참조

http://golang.site/Go/Tips

 

1. go 파일 다운로드

(curl이 설치되어 있지 않으면 sudo get curl 로 설치) 버전 확인

curl -o ./go1.15.6.linux-amd64.tar.gz https://storage.googleapis.com/golang/go1.15.6.linux-amd64.tar.gz

sudo tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz
(sudo 가 없으면 permission denied로 압축이 제대로 안풀릴 수 있음)

Go 실행경로인 /usr/local/go/bin 폴더를 PATH에 추가한다

PATH=$PATH:/usr/local/go/bin

- GOPATH : Go를 실행시킬 파일이 있는 경로. /usr/local/go/bin 가 되겠다.
- GOROOT : Go가 설치된 경로. /usr/local/go 가 되겠다

//$ export GOROOT=/usr/local/go
//$ export GOPATH=$HOME/go

2. 도커 세팅 참조

https://blog.puppyloper.com/menus/Golang/articles/Golang%EA%B3%BC%20docker%EB%A5%BC%20%EC%9D%B4%EC%9A%A9%ED%95%9C%20%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD%20%EB%A7%8C%EB%93%A4%EA%B8%B0%20(feat.%20hot%20reload)

 

3. Dockerfile
해당 프로젝트 루트에서 확장자 없이 파일명이 "Dockerfile"인 파일을 생성
vi Dockerfile

FROM golang:alpine
ADD . .
RUN go build main.go
CMD ["./main"]

 

이미지 빌드
docker build 옵션 이미지명 위치

주의 :  위치가 현재경로인 경우 . 이다. 누락되면 다음과 같은오류 남.
"docker build" requires exactly 1 argument

docker build -t go-main:t1 .

이미지 생성여부 확인
docker images | grep go-main

실행해보기
docker run go-main:t1

 

728x90

Color Code 찾기

2021. 1. 6. 00:50
728x90

Cloud Barista 설정관련

2021. 1. 5. 14:20

path 설정에서
linux에서 $path 는
윈도우에서 %path% 로 변경하여 사용

exec: gcc executable 관련 오류나면
sourceforge에서 MinGW-W64 를 다운받아 설치한다

그러나... path설정이 잘 안된다.

걍 가상머신이든 뭐든 linux에서 진행하는 것을 추천한다.

728x90

소스는 문제가 없다.

server.go

package main

import (
    "net/http"
    "github.com/labstack/echo"
)

func main() {
    e := echo.New()
    e.GET("/", func(c echo.Context) error {
        return c.String(http.StatusOK, "Hello, World!")
    })

    e.Logger.Fatal(e.Start(":1323"))
}

터미널에서go run server.go 를 실행시켰더니 아래와 같이 에러가 났다.

go: inconsistent vendoring in C:\Go\src: github.com/labstack/echo/v4@v4.1.17: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
golang.org/x/crypto@v0.0.0-20200820211705-5c72a883971a: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
golang.org/x/crypto@v0.0.0-20200622213623-75b288015ac9: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod
golang.org/x/sys@v0.0.0-20200501145240-bc7a7d42d5c3: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod
golang.org/x/text@v0.3.3-0.20200430171850-afb9336c4530: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod

run 'go mod vendor' to sync, or use -mod=mod or -mod=readonly to ignore the vendor directory

물론 go get -u 를 했을 때

go get .: path C:\Go\src\echotest is not a package in module rooted at C:\Go\src;

프로젝트를 포함시켜야 하는데 안해서 나는 에러
go mod init "your-app-name" 

이름을 echotest 라고 했을 때

go mod init echotest

하고 나서 실행시키니 정상으로 서버가 가동 됨.

728x90
AppData\Local\Temp\go-build584962370\b001\exe\world.exe: Access is denied.

go run world.go 를 했을 때 위와같은 에러가 나왔다.

이것은 안티바이러스가 실시간으로 감시모두에 있을 때 바이러스로 인식해서 그렇다.

예외규칙으로 추가 하면 정상적으로 실행 됨.

728x90
BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1933)
Life With Gopro (7)
Life With Mini (79)
Diary (971)
너 그거 아니(do you know) (162)
난 그래 (159)
Study (290)
속지말자 (10)
Project (34)
Poem (15)
Song (0)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :