카테고리 보관물: git

git commit시 There was a problem with the editor ‘vi’. 오류 해결하기

최근 vim 환경을 https://github.com/amix/vimrc 환경으로 바꿨더니,
git commit 시에, 아래와 같은 오류가 발생했다.

error: There was a problem with the editor ‘vi’.
Please supply the message using either -m or -F option.

-m 옵션으로는 당연히 잘 되지만, git commit 이나 -v 옵션등을 주어서, vi 에서 commit message를 작성할 때에는, 저장하고 빠져 나오면 위와 같은 오류가 발생하는 것.

해결책은 의외로 간단하다.

git config 설정에서 core.editor 를 현재 vim 경로로 설정해 주면 끝.

$ git config –global core.editor $(which vim)

출처는 아래.

https://github.com/gmarik/Vundle.vim/issues/167#issuecomment-66900619

Advertisements
태그 지정됨 , ,

Homebrew 로 OS X 패키지 관리하기

OS X 은 기본적으로 wget 명령을 내장하고 있지 않다.

물론 curl 로 옵션을 이용해서 파일 (바이너리) 다운로드가 가능하지만, 그외에도 Apple 에서 기본 제공하지 않는 패키지들이 필요할 때가 있다.

하나씩 다운받아 설치할 수도 있겠지만, 이를 편하게 관리할 수 있는 패키지 관리자가 있어 소개한다.

The missing package manager for OS X (OS X 용 패키지 관리자) – Homebrew

사실은 Macports 를 설치하려고 검색하다가, 우연히 Homebrew를 알게 되었고 좀 더 자세히 살펴보다 보니 Macports 의 단점을 보완하고, 훨씬 장점이 많다는 걸 알게 되었다.

참조 : 잘가 macports. 반갑습니다. homebrew.

설치방법은 매우 간단하다.

터미널에서,

ruby -e "$(curl -fsSL https:⁄⁄raw.github.com/mxcl/homebrew/go)"

명령 한방이면 설치 끝.

다만, 정상 작동을 위해서는 Xcode 용 Command Line Tools 가 설치되어 있어야 한다. Xcode 를 설치하여 실행한 후, Preferences > Downloads 에서 Command Line Tools 를 설치하면 된다.

Homebrew 설치후에는, 터미널에서 brew -v 명령 (또는 brew –version) 으로 설치 버전을 확인할 수 있다.

$ brew -v
Homebrew 0.9.4

이제 Homebrew 를 설치했으니 원하는 패키지를 brew 명령을 통해 설치할 수 있다.

설치는 간단하게 brew install 원하는 패키지 명령으로 설치할 수 있다.

가령 macvim 을 설치한다고 하면,
search 명령으로 brew 패키지 검색을 하고, install 명령으로 설치한다.

$ brew search vim
macvim	  vim	    vimpager  vimpc           // vim 으로 찾았더니 4개의 패키지가 있다.
$ brew install macvim
==> Installing macvim dependency: cscope
==> Downloading http://downloads.sourceforge.net/project/cscope/cscope/15.8a/cscope-15.8a.tar.g
######################################################################## 100.0%
==> Patching
patching file src/constants.h
==> ./configure --prefix=/usr/local/Cellar/cscope/15.8a --mandir=/usr/local/Cellar/cscope/15.8a
==> make install
🍺  /usr/local/Cellar/cscope/15.8a: 10 files, 740K, built in 9 seconds
==> Installing macvim
==> Downloading https://github.com/b4winckler/macvim/archive/snapshot-66.tar.gz
######################################################################## 100.0%
==> ./configure --with-features=huge --enable-multibyte --with-macarchs=x86_64 --enable-perlint
==> make
==> Caveats
MacVim.app installed to:
  /usr/local/Cellar/macvim/7.3-66

To link the application to a normal Mac OS X location:
    brew linkapps
or:
    ln -s /usr/local/Cellar/macvim/7.3-66/MacVim.app /Applications
==> Summary
🍺  /usr/local/Cellar/macvim/7.3-66: 1759 files, 27M, built in 53 seconds

종속성이 있는 모듈을 먼저 다운받아 설치한 후, macvim 을 설치한다.
/usr/local/Cellar/ 경로안에 패키지명/버전 으로 설치가 되고, (brew 는 동일 패키지라도 버전별로 따로 관리할 수 있다!!)
/usr/local/bin/ 내에 symbolic link 를 걸어둔다.

/usr/local/bin $ ls -al | grep vim
lrwxr-xr-x   1 rkJun  admin        33  7 14 01:09 gview -> ../Cellar/macvim/7.3-66/bin/gview
lrwxr-xr-x   1 rkJun  admin        32  7 14 01:09 gvim -> ../Cellar/macvim/7.3-66/bin/gvim
lrwxr-xr-x   1 rkJun  admin        36  7 14 01:09 gvimdiff -> ../Cellar/macvim/7.3-66/bin/gvimdiff
lrwxr-xr-x   1 rkJun  admin        34  7 14 01:09 gvimex -> ../Cellar/macvim/7.3-66/bin/gvimex
lrwxr-xr-x   1 rkJun  admin        33  7 14 01:09 mview -> ../Cellar/macvim/7.3-66/bin/mview
lrwxr-xr-x   1 rkJun  admin        32  7 14 01:09 mvim -> ../Cellar/macvim/7.3-66/bin/mvim
lrwxr-xr-x   1 rkJun  admin        36  7 14 01:09 mvimdiff -> ../Cellar/macvim/7.3-66/bin/mvimdiff
lrwxr-xr-x   1 rkJun  admin        34  7 14 01:09 mvimex -> ../Cellar/macvim/7.3-66/bin/mvimex
$ mvim   // 어디서든 MacVim 을 설치할 수 있다.

brew 에서 설치할 수 있는 패키지들을 formula 라고 부르는데, 일종의 패키지 설명, 좀 더 정확히는 해당 패키지를 다운을 받아 설치하는 .rb 파일을 말한다. (이 목록은 /usr/local/Library/Formula 안에 들어 있다)
그리고 Cellar 는 이 패키지들이 실제 경로라 할 수 있고, 위에서 보았듯 /usr/local/bin 에 ln -s (심볼릭링크) 하는 방식이다.

주요 사용할만한 brew 명령은,
brew install formula // 패키지 설치
brew remove formula // 패키지 삭제
brew info formula // 패키지 정보
brew upgrade [formula] // 설치한 패키지의 최신버전을 설치

brew list 또는 brew ls // 설치한 formula 목록
brew update // Homebrew 업데이트
brew doctor // 시스템에 문제가 있는지 확인
brew outdated // 내가 설치한 formula 목록의 이후 버전이 나왔는지 확인
brew cleanup // fomula 의 모든 과거버전을 제거함

관리자 권한이 필요없다는 점 (sudo) 외에도, 설치한 패키지를 버전별로 사용하는 게 참 편하다.
가령 Play! (경량화된 자바 프레임워크) 를 brew 를 통해 설치해서 사용한다고 할 때,

아래와 같이 총 3개의 버전이 설치되어 있고 2.1.2 를 사용하고 있는데,

$ brew info play
play: stable 2.1.2, HEAD
http://www.playframework.org/
/usr/local/Cellar/play/2.1.0 (4148 files, 268M)
  Built from source
/usr/local/Cellar/play/2.1.1 (3790 files, 225M)
  Built from source
/usr/local/Cellar/play/2.1.2 (3681 files, 223M) *

brew switch 명령을 통해, 간단하게 play 2.1.1 버전으로 바꿀 수 있다.

/usr/local/bin rkJun$ brew switch play 2.1.1
Cleaning /usr/local/Cellar/play/2.1.0
Cleaning /usr/local/Cellar/play/2.1.1
Cleaning /usr/local/Cellar/play/2.1.2
1 links created for /usr/local/Cellar/play/2.1.1

물론 과거 버전도 설치할 수 있다. brew edit formula 명령을 통해 직접 파일내의 다운로드 대상 url 을 수정해 주거나, 과거 버전의 rb 파일을 받으면 된다. formula 의 과거 버전은 brew versions 을 통해 확인 가능하고, git checkout 해서 가져올 수 있도록 되어 있다.

그외에,

간단하게 brew unlink poo 또는 brew link poo 명령으로 간단하게 심볼릭을 걸거나 해제할 수 있고,

아래의 명령을 ~/.bashrc 또는 ~/.bash_profile 등, 쉘 시작시 실행스크립트에 넣어두면 brew 명령을 tab 자동완성으로 사용할 수 있다. (물론 아래 명령은 Bash 용이고, 더 자세한 설명 또는 ZSH 용은 homebrew Tips N’ Tricks 를 참조)

source `brew --repository`/Library/Contributions/brew_bash_completion.sh

Homebrew 를 알게된 이후로 더이상 Macports 를 사용할 일은 없을 것 같다.

OS X 에서 기본 제공하지 않는 wget 같은 명령외에도 정말 수많은 패키지들을 관리할 수 있다. 맥용 앱이라던가, 다양한 프레임워크까지… 무궁무진하다. 그러므로 OS X 을 사용하는 사용자, 또는 개발자에게는 강력하게 권하고 싶다.
Homebrew 가 너무 맘에 들어서, 뭔가 기여할 방법을 찾다가 홈페이지를 한글화 했다. (그래봤자 몇문장 안되지만..)

http://brew.sh/index_ko.html

Macports 를 (불만족스럽지만 대안이 없다고) 사용해 왔거나, 별도의 패키지 관리자를 사용하지 않았던 사용자라면, 지금부터 써보자!

태그 지정됨 ,

github 저장소 소스 간편하게 보기 – Gitray.com

최근 알게 된 서비스 Gitray (깃레이).
Github 저장소 소스를 웹에서 잠깐 보려고 할 때, 꽤 유용하게 쓸만하다.

일반 코드편집기와 유사하게, 파일탐색을 위한 사이드바를 제공해주고, 소스를 보여준다.

잠깐잠깐, 웹에서 소스 볼 때는 유용할 듯.

Gitray Main Screen

Github Project URL 을 입력하고, View Project 버튼을 누르면 텍스트편집기와 유사한 UI 로 웹에서 소스를 볼 수 있게 해준다. (물론, 소스 수정은 되지 않는다.)

스크린샷 2013-06-07 오후 9.29.38

트위터나 페이스북을 통해서 이미 공유했지만, 블로그에도 기록해둔다.

http://gitray.com

태그 지정됨

git – the simple guide (Git – 간편가이드)

작년 여름즈음부터 Github 을 쓰기 시작했다.
kenu 형님 덕분에 알게 되었고, OKJSP 소스도 Github 에 오픈되고 관리되기 시작했던 터라 그때부터 처음 사용하기 시작했다.

Github 은 GIT 을 기반으로, 저장공간을 제공해 주어 소스 관리를 할 수 있다. 다양한 개발자들을 팔로우 할 수 있고, 다른 개발자들의 소스 코드를 포크해서 내 저장 공간에서 추가하거나 수정할 수도 있다. 원저작자에게 요청도 보낼 수 있고… 뭐 암튼 각설하고, 이 Github 에서 놀려면 GIT 선수지식이 필요하다.

개인적으로 CVS 를 거쳐 SVN 만 써오다가, 처음 접한 GIT 은 좀 생소한 느낌이었다. 뭐, 지금은 오히려 SVN 보다 GIT 이 더 가까운 느낌이지만…
암튼, 사용해 가면서 시간과 경험으로 저절로 깨달을 수도 있지만, GIT을 처음 접하는 사용자에게는 심플한 가이드를 보는 게 이해하기도 쉽고, 거부감이 적다. rogerdudler 란 분이 올린 git 심플 가이드를 우연히 보게 되었는데, 처음 접하는 사용자들에게는 꽤 도움이 될 것 같다. 거부감도 안들것 같고..

그래서 이번에도, 한글 번역을 했다. -_-;; 지난 번 오픈 소스 관련 번역 포스팅을 올리고 나서, 번역 품질에 대해 자문해 보고 영어 실력을 쌓기 전까지 한동안 영문 번역은 안하려고 했는데, 이건 영어도 어렵지 않고 해서, 읽어가는 겸 번역해 봤다.

git – the simple guide (English) : http://rogerdudler.github.com/git-guide/

git – 간편가이드 (한글화) : http://rkjun.github.com/git-guide/index.ko.html (제 계정으로도 접속은 가능하지만, 가급적이면 위 또는 아래의 오리지널 링크를 이용해 주세요)

git – 간편가이드 한글판 정식링크 :http://rogerdudler.github.com/git-guide/index.ko.html

(원작자에게 Push Requests 요청을 보내놓은 상태이기는 한데 언제 반영될 지는 알 수 없으므로, 한글화 페이지는 내 Github 계정의 링크를 걸어둔다.)

2012.03.01 [추가] 현재, 원작자 rogerdudler 의 저장소에 이미 Pull Requests 요청이 반영되어 있으므로, 원작자의 링크에서 한국어 링크를 클릭해도 되고, 한글판 정식링크를 클릭하셔도 됩니다.

끝으로 Github 예찬을 해보자면,
다른 개발자들의 소스도 감상(?) 할 수 있는 좋은 학습도구이자, 놀이터중 하나다. 게다가 개발자들과의 교류를 표방하고, 최근에는 소스뿐 아니라 문서관리까지 활발하게 이루어지고 있고···. 거기다 Github 과 연동되는 heroku 나, cloud9 IDE 등과 같은 호스팅, 웹 개발툴 등도 늘어나는 추세고···.
고로, Github 을 알면, 개발자로서의 삶이 더 재밌(고 즐겁)다.

태그 지정됨 , , ,