Mac – Using GitLab

원문

Using gitLab

Mac에 GitLab를 설치하기 위해서는 몇 가지 전제 조건이 필요한데, 본인은 한 가지 조건을 더 부가했다. 뭐 거창한 것은 아니고, 실제 서버(하드웨어)에 설치하는 것이 아닌 개인용 맥북프로에 설치하는 것이어서 git이라는 운영용 계정을 따로 만들지 않고 개인 계정을 그대로 활용했다. 이 점에 주의하면, 호스팅용 세팅도 별반 다르지 않다. 또한 Mac이 아니라면 GitLab의 설치 문서만으로도 간단히 설치가 된다(Gitosis는 조금 신경을 써야 겠지만…).

참고

* GitLab을 설치하지 않고 단순히 Mac에 gitosis를 설치하여 Git 서버를 관리하는 목적이라면 다음 두 포스트 만으로도 충분할 것이다.
Installing gitosis on Mac OS X
Hosting Git repositories, The Easy (and Secure) Way

필수 조건

  • Ruby 1.9.2-p290Ruby on Rails 3.1
  • sqlite(Mac에는 /usr/bin/sqlite3에 설치 되어 있을 것이다.)
  • git
  • giosis
  • GitLab
  • Ruby 1.9.2-p290 설치하기

    [code]$ brew install ruby[/code]
    * brew가 설치되어 있지 않을 경우 설치를 해주자. (open source)
    [code]/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"[/code]

    버전을 확인 후 다음으로 진행한다. 만약 이전 버전이 나온다면 이전버전에 대한 처리를 해주자.

    Ruby on Rails 3.1 설치하기

    [code]sudo gem update rails[/code]

    git 설치되었나 확인하기

    아마 설치되어있을 것이다.

    gitosis 설치하기

    git이 설치되어 있으므로 다음과 같이 저장소를 복사한다. (설치한 소스는 모두 홈 디렉토리를 이용했다.)
    [code]
    git clone git://eagain.net/gitosis.git
    cd gitosis
    sudo python setup.py install
    [/code]

    gitosis를 설치하면 아래와 같은 메시지를 확인 할 수 있다.
    [code]
    …..
    Finished processing dependencies for gitosis==0.2
    [/code]

    SSH를 이용하기 위한 공개 키 생성하기

    만약 기존에 GitHub를 사용하고 있다면 기존 키를 사용해도 무방하다.
    SSH 키 생성과 관련하여 자세한 내용은 링크를 참고하라.
    (키 생성위치 예: /Users//.ssh)
    [code]// 현재 홈 디렉토리 이므로(/Users/<user>) 없다면 디렉토리를 생성해주자.
    cd .ssh[/code]

    // 그리고, 메일주소를 추가하여 공개 키 생성
    ssh-keygen -t rsa -C “@gmail.com”

    공개 키까지 생성하였으면 gitosis를 위해 다음 두 가지 추가 작업을 해야 하는데, 한 가지 주의할 점이 있다. 위에서 미리 언급했듯이 서버 관리를 위해 git이라는 계정을 따로 만들지 않고 사용자 계정을 그대로 사용한다고 했으니 다음 볼드 글자(사용자 계정) 부분만 신경쓰면 된다.
    // 현재 위치: /Users//.ssh
    sudo -H -u ezcocoa gitosis-init < ./id_rsa.pub 생성시 아래와 같은 메세지를 확인 할 수 있다. [code] Initialized empty Git repository in /Users/hojunbaek/repositories/gitosis-admin.git/ Reinitialized existing Git repository in /Users/hojunbaek/repositories/gitosis-admin.git/ [/code] [code]// 마지막으로... chmod 755 ~/repositories/gitosis-admin.git/hooks/post-update[/code]

    GitLab 설치하기

    GitLab의 설치 문서를 그대로 따라하기만 하면된다.
    [code]// 현재 홈 디렉토리이다.
    git clone git://github.com/gitlabhq/gitlabhq.git
    cd gitlabhq/[/code]

    [code]// 다음 라이브러리들 부터 설치한다.
    sudo easy_install pygments[/code]

    [code]// 위 라이브러리 설치가 끝난 후…
    sudo gem install bundler[/code]

    [code]// 다시… 약간 시간이 걸린다.
    bundle[/code]

    [code]// 위 작업까지 이상이 없다면…
    RAILS_ENV=production rake db:setup[/code]

    [code]// 마지막으로… 다음과 같은 기본정보로 관리자 계정이 생성된다.
    // ID: admin@local.host
    // PW: 5iveL!fe
    RAILS_ENV=production rake db:seed_fu[/code]

    자 이제 서버를 실행시킬 차례인데, 위에서 미리 언급했듯이 git 계정을 사용하지 않고 사용자 계정(예: )을 사용할 것이므로… GitLab의 gitosis.yml의 설정을 변경해야 한다.
    [code]// 바로 전 작업했던 위치가, /User/<user>/gitlabhq 이였으므로…
    cd config
    vi gitosis.yml
    [/code]

    파일 내용은 다음과 같을 것이다.
    [code]admin_uri: git@localhost:gitosis-admin.git
    base_path: /home/git/repositories/
    host: localhost
    git_user: git [/code]

    다음과 같이 수정한다.
    [code]admin_uri: <user>@localhost:gitosis-admin.git
    base_path: /Users/<user>/repositories/
    host: localhost
    git_user: <user>

    다 수정하였으면 다음과 같이 서버를 실행해 보자.
    [code]
    // 당연히 실행 위치는 gitlabhq 이다.
    cd ..[/code]

    [code]// 서버 실행
    rails s -e production[/code]

    서버가 실행된 후, http://localhost:3000/ 주소로 브라우저에서 접속하면 로그인 화면이 뜰 것이다. 위에서 미리 생성된 관리자 계정으로 접속 된다면
    기본 설치는 끝났다.

    * bundle 입력 중 아래와 같은 문제가 발생할 수 있다.
    [code] `bin_path’: can’t find executable rake for rake-0.8.7 (Gem::Exception)
    [/code]

    이 문제는 1.9.2문제로 아래와 같이 해결할 수 있다.

    [code]sudo ln -s /usr/local/bin/ruby /opt/local/bin/ruby[/code]

    버전 확인
    [code]ruby -v
    gem list -d
    rake –version
    [/code]

    다시 설치.
    [code]
    gem install rake
    [/code]

    [SVN] SVN Server & Repository 생성하기

    OS : OS X 10.6.6

    1. 저장소 만들기 (파일 DB)
    [code]# svnadmin create -fs-type fsfs sample
    [/code]

    2. 다른 유저들을 위한 권한 설정
    [code]# chmod -R g+w sample
    [/code]

    3. 유저 등록하기
    conf 이하폴더에서 수정하세요.
    [code][users]
    test = test
    [/code]

    4. 서버 가동하기
    [code]#svnserv -d -r <svn root directory>[/code]

    5. ssh를 이용한 접근 (암호화하기 위해)
    [code]#svn+ssh://userid@xxx.xxx.xxx.xxx/<svn root>/<repository>
    [/code]

    [code]pyrasis 의 설명에 따르면
    ‘주의할 점은 IP주소나 도메인 뒤에 저장소의 절대 경로를 적어주어야 합니다. svnserve를 띄워서 /home/svn/과 같이 지정해 주지 않았기 때문에 각 저장소의 절대경로인 /home/svn/sample로 합니다.
    SSH2 데몬으로 svnserve을 터널링 하여 작동시킵니다. 이렇게 되면 svn+ssh:// 프로토콜을 사용하게 되며 사용자 인증은 시스템 계정으로 인증을 합니다. 구동시키는 방법은 따로 있지 않으며 SSH데몬만 떠 있으면 됩니다.’
    라고 한다. 아마 svnserv 와는 별개로 치는가보다…
    [/code]

    [Git] Ignoring files

    // 각 폴더에 해당하는 무시파일
    [sourcecode language=”TEXT”]
    .DS_Store
    build
    *.pbxuser
    *.mode2v3
    *.mode1v3
    *.perspective
    *.perspectivev3
    [/sourcecode]

    Global .gitignore
    git config –global core.excludesfile ~/.gitignore_global
    [sourcecode language=”TEXT”]
    # Compiled source #
    ###################
    *.com
    *.class
    *.dll
    *.exe
    *.o
    *.so
    *.a
    *.dat
    *.dep
    *.hmap

    # Packages #
    ############
    # it’s better to unpack these files and commit the raw source
    # git has its own built in compression methods
    *.7z
    *.dmg
    *.gz
    *.iso
    *.jar
    *.rar
    *.tar
    *.zip

    # Logs and databases #
    ######################
    *.log

    # OS generated files #
    ######################
    .DS_Store?
    ehthumbs.db
    Icon?
    [/sourcecode]

    Installation – Gitosis

    그 동안 Github 호스팅 서비스에서 저장소를 대여하여 프로젝트를 관리하고 있었습니다. 물론 한달에 7달라라는 금액을 내고 사용을 했었죠.
    무료로 접근제한이 되지 않는 공간 또한 대여 받을 수 있습니다.

    오랬동안 금액을 산출해보니 낮은 금액이 아니더라구요. 위험을 조금 감수해서 gitosis를 설치하여 내장으로 관리하기로 했습니다.
    환경은 Parallels 위에 ubuntu를 설치하여 서버로 사용하고 그 위에 gitosis를 설치했습니다. 물론 저는 OS X를 사용해 그 위에 깔면 되지만 그렇게 하지 않은 이유는 따로 가상으로 관리하게 되면 백업효율과 이식성이 높아지기 때문입니다. 단점도 있겠지요.

    현재 제 환경은
    Mac OS X version 10.7.3
    CPU 2.53GHZ Integer Core 2Duo
    RAM 8GB
    SSD를 Master로 HDD SLAVE로 사용하고 있습니다.

    Parallels를 이용하여 ubuntu 를 설치하였고 램은 2GB를 사용합니다.

    그럼 이제 설치를 해보겠습니다.

    Git 설치하기

    [code]# sudo apt-get install git-core

    After this operation, 16.3MB of additional disk space will be used. Do you want to continue [Y/n]?
    [/code]

    설치를 하기 위해 추가적인 공간을 사용한다는 의미로 ‘Y’를 선택해줍니다.

    [code]
    # git –version
    git version 1.6.3.3
    [/code]

    git툴 설치가 완료되었습니다.

    python으로 구성되어 있는 gitosis를 설치하기 위해 그전에 python-setuptools를 설치하도록 하겠습니다.

    python-setuptools 설치하기

    [code]
    # apt-get install python-setuptools

    After this operation, 1126kB of additional disk space will be used.
    Do you want to continue [Y/n]?
    [/code]
    설치하기 위한 공간 사용을 의미하므로 ‘Y’를 눌러주세요.

    Gitosis 다운로드

    [code]
    # mkdir /home/<user>/src
    # cd /home/<user>/src
    [/code]
    다운을 받기 위해 디텍토리를 생성하였습니다. 는 자신의 홈디렉토리 명을 넣으시면 됩니다.
    [code]
    git clone git://eagain.net/gitosis.git
    Initialized empty Git repository in /root/src/gitosis/.git/
    remote: Counting objects: 614, done.
    remote: Compressing objects: 100% (183/183), done.
    remote: Total 614 (delta 434), reused 594 (delta 422)
    Receiving objects: 100% (614/614), 93.82 KiB, done.
    Resolving deltas: 100% (434/434), done.
    [/code]

    Gitosis 설치하기

    [code]
    # cd gitostis
    # python setup.py install
    "result":http://gist.github.com/352769
    [/code]

    이어서 유저 등록 및 추가 저장소 생성에 대해서 작성하도록 하겠습니다.

    Continue reading