:::: MENU ::::
Posts tagged with: Git

Resin.io 사용법

Resin.io의 홈페이지에는 다음과 같이 자신들의 서비스를 설명을 한다.

Resin.io brings the benefits of Linux containers to the IoT. Develop iteratively, deploy safely, and manage at scale.

Linux containers to the IoT… 리눅스 기반의 IoT 디바이스를 위한 도커같은 서비스 일 것 같다.

Resin.io 사용법

Account setup

resin.io 에 계정을 생성후 SSH 키 설정하여 resin에 저장을 하는데,  깃헙계정으로 로그인 할 경우 깃헙계정에 저장된 SSH 키 중 하나를 선택한다.

SSH 키 확인

ls -al ~/.ssh

SSH 키 생성

ssh-keygen -t rsa -b 4096 -C “[email protected]

SSH 키를 ssh-agent애 넣기

eval “$(ssh-agent -s)”

~/.ssh/config 파일을 다음과 같이 만든다.
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa

ssh-add -K ~/.ssh/id_rsa

다음과 같이 SSH 키를 클립보드에 복사후 github 계정에 설정한다.

pbcopy < ~/.ssh/id_rsa.pub

Create Application & Add your first device

디바이스 타입에서 – 라즈베리파이 같은 보드를 선택
Add device를 클릭하고 위에서 선택한 라즈베리파이에 맞는 이미지를 다운로드 한다.

Provision your device

다운로드한 이미지를 Etcher로 SD로 굽는다.
라즈베리파이가 부팅이 끝나면 dashboard에서 확인이 가능하다.

Deploy code

코드를 하나 클론한다.

$ git clone https://github.com/resin-io-projects/simple-server-node.git

다음과 같이 remote endpoint를 추가한다. 주의) 여기서 USERNAME은 resin의 USERNAME이고, APPNAME은 위에서 생성한 Application 이름으로 대쉬보드에서 보인다.

$ cd simple-server-node
$ git remote add resin <USERNAME>@git.resin.io:<USERNAME>/<APPNAME>.git

다음과 같이 push를 하면 resin 서버에 코드가 업로드되고 기기에 코드가 적용이 된다.

$ git push resin master

대시보드의 모습

참고 – https://docs.resin.io/learn/getting-started/raspberrypi3/nodejs/


git 관련 팁 – .gitignore

.gitignore를 설정 전에 원하지 않는 파일(예를 들면 소스가 아닌 컴파일된 obj 파일 같은..)이 repositary에 add/initilized된 경우는 cache를 지우고 tracking을 다시 설정해야 한다.
먼저 필요한 파일들을 commit한후 다음의 명령어를 실행한다.
cache 삭제

git rm -r –cached .

다시 tracking 하도록 설정

git add .

그 다음 commit

git commit -m “.gitignore is now working”


윈도우 환경에서의 오픈소스 프로그래밍 툴 설치

원래 맥(Mac)을 사용하기 때문에 윈도우즈는 은행업무를 할때나 HWP 파일을 작성할때 빼고는 사용하지 않는다. 그런데 배포할 프로그램이 3가지 OS (Mac, Linux, Win)인지라 윈도우 환경에서도 개발툴의 설치가 필요하다. 사실 코드의 수정 보다도 이런 작업이 더 어려울 수 있는데, software deployment(한글로는 뭔지 잘….)를 위해서는 필요한 작업이고……..

내용은 윈도우환경에서 리눅스 개발환경 설치하기 정도가 될 것 같다. 리눅스 버젼의 배포판을 위해 가상머신에 우분투도 설치해서 설치패키지를 만들어 봤는데, 생각보다 깔끔하고 문제 없이 동작한다. 개발용이 아닌 한글을 사용한 워드, PPT작업등의 일반 업무 사용을 위해서는 어떨지 살짝 궁금하기도 했다는…

일단 필요한 프로그램은 컴파일을 위한 MinGW, 코드를 github에서 받고 bash 환경을 위한 프로그램, 마지막으로 윈도우즈 설치프로그램을 만들어 주는 프로그램이 필요하다.

MinGW

  • Minimalist GNU for Windows이라 불리우는 s/w 패키지이다. http://www.mingw.org/ 에서 Downloads 항목의 Installer에 있는 mingw-get-setup.exe 파일을 받아서 설치를 한다. 구글링을 해보니 mingw 5.1.4나 mingw5.16에 대한 소개가 있는데 g++버젼이 오래되어서 컴파일이 안될 수 있다.
  • 프로그램을 설치 한 후 필요한 컴파일러를 선택을 하면 다운로드 및 설치가 자동으로 된다.

Git-bash

  • http://git-scm.com/downloads 윈도우 버젼을 받아서 설치한다. 설치후 git-bash 를 사용하여 코드를 받고 패키지 컴파일을 위한 스크립트를 실행할 것이다.

NSIS

  • nullsoft scriptable install system
  • 상용프로그램으로 인스톨쉴드같은 것을 썼는데, 오픈소스인 NSIS도 같은 기능을 한다.
  • 오래된 프로그램이라 구글링하면 한글로 정리된 구체적인 사용법들이 많다.

git 사용법

git에 대한 위키피디아 문서
http://en.wikipedia.org/wiki/Git_(software)

git 사용자 설명서: 잘 정리된 메뉴얼
http://namhyung.springnote.com/pages/3132772
 
git 튜토리얼 메뉴얼 페이지
http://www.funit.net/git

github에 대한 글: Github, 코드 개발 기반 소셜 네트웍
http://channy.creation.net/blog/626

git는 분산 버전 관리 시스템이며 리눅스 커널 개발에 사용하기 위해 리누스 토발츠가 처음 디자인과 개발을 하기 시작했다.
가장 큰 장점인 수정 내용을 매번 마스터 저장소에 커밋해서 올리는 대신에 저장소 전체의 로컬 복사본을 사용한다는 것이다. git을 사용하면 각 개발자가 작업을 진행할 수 있는 자신만의 샌드박스를 가지고 있으며, 작업을 마친후에 변경내역을 마스터 저장소에 push  할 수 있다.

아래 그림을 보면 각 명령어와 동작 flow가 쉽게 이해가 됨…

아래 위키피디아의 그림은 보다 간단히 이해를 도울 수 있다.

윈도우용 git 설치: http://code.google.com/p/msysgit/downloads/list  여기서 다운로드를 받아서 인스톨한다.
인스톨 과정중 모든 옵션은 그냥 디폴트옵션을 사용한다.
인스톨이 끝나면 Git GUI와 Git Bash가 설치되며, 탐색기에서 오른쪽 버튼을 누르면 다음과 같이 git 메뉴가 생긴다.

일단 프로젝트를 관리할 폴더에서 Git Init Here를 선택을 하고, Git Gui를 선택을 하면 다음과 같이 Unstaged Changes항목에 파일들이 들어 있는게 보인다.

커밋할 파일을 선택하고 Commit>Stage to commit을 선택을 하면 파일들이 아래도 내려오며, 오른쪽 하단에 메세지를 입력하는 창에 메세지를 입력을 하고 Commit을 하면 커밋이 된다.
커밋이 잘 됐는지 여부는 Repository > Visulize mater’s History 명령으로 확인이 가능하다.

이제 github에서 repository를 생성한다. Project name만 적으면 되고 나머지는 option이다.
SSH설정은 http://help.github.com/win-set-up-git/ 의 “Set Up SSH Keys” 부분을 참고한다.
이렇게 해서 생성된 키는 Win7의 경우 C:\Users\사용자\.ssh 아래에 저장이 되며, Git GUI에서 Help > Show SSH Key 를 통해서도 SSH키 값을 볼 수 있다.

만약 프로젝트 이름을 my_test로 할 경우 Git GUI에서 설정은 다음과 같다.
Name은 Github 계정이름이고, my_test는 [email protected]:jbkim/my_test.git 위치에 놓이게 된다. 


다음엔 push를 하면 되는데, Remote > Push 를 하면된다.

이때 SSH키를 만들때 passphrase를 물어보면 입력하면 된다.