공식 홈페이지에 설치 가이드가 너무나 잘 나와 있다.
   - https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md

아래 글은 거의 대부분 위의 가이드를 따르고 있다.
따라서 해보면서 조금 애매한 부분이거나 개인적인 환경에 맞추기 위해 일부 추가/수정했을 뿐이다.



01. 기본 에디터 설정

   - 특이하게도 기본 에디터 설정부터 설명을 해준다. vim을 추천하긴 하는데, 필자같은 경우는 nano가 좋다 ^^
   - vim을 사용하실 분들은 아래 설정을 참고하시고, 아니신 분은 그냥 무시 !

$ sudo apt-get install -y vim
$ sudo update-alternatives --set editor /usr/bin/vim.basic



02. 필수 패키지 설치

$ sudo apt-get install build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate



03. Python

   - 특정 버전의 Python을 요구한다.

$ sudo apt-get install python
$ python --version


   - 2.x 버전이 설치되어있으면 OK
   - 만약 3.x 버전이 설치되어 있으면 아래와 같은 과정 수행 필요

$ sudo apt-get install python2.7
$ sudo ln -s /usr/bin/python /usr/bin/python2


   - 추가적으로 설치해야할 패키지

$ sudo apt-get install python-docutils



04. Git 설치

   - v1.7.10 이상의 버전이 필요하다.
   - 설치가 필요하다면 다음과 같이 하면 된다.
      ▷ http://whatwant.tistory.com/643


05. Ruby 설치

   - 특정 버전의 Ruby가 필요하다.

$ sudo apt-get remove ruby1.8

$ cd /srv/install/ruby
$ wget ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz
$ tar zxvf ruby-2.0.0-p247.tar.gz
$ cd ruby-2.0.0-p247

$ ./configure --disable-install-rdoc
$ make
$ sudo make install

$ sudo gem install bundler --no-ri --no-rdoc



06. 계정 만들기

$ sudo adduser --disabled-login --gecos 'GitLab' git



07. GitLab-Shell 설치하기

$ cd /home/git

$ sudo -u git -H git clone http://github.com/gitlabhq/gitlab-shell.git
$ cd gitlab-shell

$ sudo -u git -H git checkout v1.7.1
$ sudo -u git -H cp config.yml.example config.yml

$ sudo -u git -H nano config.yml


   - URL 부분을 수정해야 한다.
 

...
gitlab_url: "http://localhost/"
...


   - 설치 진행하자.

$ sudo -u git -H ./bin/install



08. Database

   - 필자의 취향으로 일단 PostgreSQL로 진행해보자.

$ sudo apt-get install postgresql libpq-dev

$ sudo -u postgres psql -d template1

 

# CREATE ROLE git LOGIN ENCRYPTED PASSWORD 'password' NOINHERIT VALID UNTIL 'infinity';
# CREATE DATABASE gitlabhq_production OWNER git;
# \q


   - 접속이 잘 되는지 테스트 함 해보자.

$ sudo -u git -H psql -d gitlabhq_production



09. GitLab 다운로드

$ cd /home/git
$ sudo -u git -H git clone http://github.com/gitlabhq/gitlabhq.git gitlab
$ cd ./gitlab
$ sudo -u git -H git checkout 6-2-stable

 


10. GitLab 환경 설정

$ cd /home/git/gitlab

$ sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml


   - 도메인을 지정하고 싶으면 다음처럼 수정 작업을 하면 된다.

$ sudo -u git -H nano config/gitlab.yml


...
   host: localhost
...


   - 권한 조정이 필요하다.

$ sudo chown -R git log/
$ sudo chown -R git tmp/
$ sudo chmod -R u+rwX  log/
$ sudo chmod -R u+rwX  tmp/


   - satellites를 위한 디렉토리를 하나 생성하고, 필요한 디렉토리를 만들자.

$ sudo -u git -H mkdir /home/git/gitlab-satellites


   - 필요한 디렉토리를 추가로 더 만들자.

$ cd /home/git/gitlab

$ sudo -u git -H mkdir tmp/pids/
$ sudo -u git -H mkdir tmp/sockets/
$ sudo chmod -R u+rwX  tmp/pids/
$ sudo chmod -R u+rwX  tmp/sockets/

$ sudo -u git -H mkdir public/uploads
$ sudo chmod -R u+rwX  public/uploads


   - 엄청 귀찮넹... 스크립트로 만들어서 제공하지....

   -  Unicorn 환경 설정을 진행하자.

$ sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb


   - 고성능이 필요하면 cluster mode를 활성화 하자. 방법은 간단하다 ?!

$ sudo -u git -H nano config/unicorn.rb


   - worker_processes를 3으로 변경하면 된다 ?!

...
worker_processes 2
...


   - 이번에는 Rack attack config를 진행하자.

$ sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb


   - rack attack middleware를 설정하고 싶으면 다음과 같이 하자.

$ sudo -u git -H nano config/application.rb


   - 주석처리된 부분을 찾아서 주석 표시를 지우면 된다고 한다. (뭘 하는지는 아직 모르겠다.)

...
   # config.middleware.use Rack::Attack
...



11. 기본 사용자 설정

   - Git 사용자 설정을 하자.

$ sudo -u git -H git config --global user.name "GitLab"
$ sudo -u git -H git config --global user.email "gitlab@whatwant.com"
$ sudo -u git -H git config --global core.autocrlf input


   - 위 설정은 다음의 설정에서도 적용이 필요하다.

$ sudo -u git -H nano config/gitlab.yml



12. Database 환경 파일 설정

   - PostgreSQL을 사용하는 경우이다.

$ sudo -u git cp config/database.yml.postgresql config/database.yml


   - git 계정에서만 읽어볼 수 있게 하기 위한 권한 설정을 하자.

$ sudo -u git -H chmod o-rwx config/database.yml



13. Install Gems

$ cd /home/git/gitlab

$ sudo gem install charlock_holmes --version '0.6.9.4'


   - PostgreSQL 사용자들은 다음과 같이...

$ sudo -u git -H bundle install --deployment --without development test mysql aws



14. Database 생성

$ sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production


   - 설치과정 끝에 나오는 메시지를 잘 확인해야 한다.

...
Administrator account created:

login............admin@local.host
password.....5iveL!fe



15. Init Script 설정하기

$ sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
$ sudo chmod +x /etc/init.d/gitlab
$ sudo update-rc.d gitlab defaults 21



16. log 관리하기

$ sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab



17. 환경 설정이 잘 되었는지 점검

   - 환경 설정이 잘 되었는지 확인을 해야하는데...
   - 우선 우리는 기본 설정값과 다른 git 경로부터 수정하고 확인을 하자.

$ sudo -u nano config/gitlab.yml

 

...
git:
   bin_path: /usr/local/bin/git
...


   - git 경로를 제대로 적어주고나서 환경 설정 값들을 확인해보자.
 

$ sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production

 


18. 시작

   - 이후 부터는 재부팅 될 때 자동으로 실행이 되겠지만, 지금은 직접 한 번 실행을 해보자.

$ sudo service gitlab start

 

Starting the GitLab Unicorn web server...
Starting the GitLab Sidekiq event dispatcher...
The GitLab Unicorn webserver with pid 1478 is running.
The GitLab Sidekiq job dispatcher with pid 1506 is running.
GitLab and all its components are up and running.



19. 상태 점검

   - green으로 나오면 좋은 것이다 ^^

$ sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production



20. Nginx

   - 개인적으로 Apache2의 대용품(?)으로 좋아하다가 요즘은 살짝 관심을 끊은 Nginx ... ^^
   - GitLab은 공식적으로 웹서버로 Nginx를 추천한다고 한다.

$ sudo apt-get install nginx


   - 설정도 진행을 하자.

$ sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
$ sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab


   -  수정할 것도 있다.

$ sudo nano /etc/nginx/sites-available/gitlab

 

...
   server_name localhost;
...


   - 재시작 !

$ sudo service nginx restart



21. 사이트 테스트

   - [ http://localhost/ ] 접속


   - ID / Password = [ admin@local.host / 5iveL!fe ]


   - 패스워드 재설정 창이 나온다.
   - 여기에서 재설정을 하면 다시 로그인 창이 나온다. 다시 로그인을 하면 된다.


   - 드디어 제대로 된 화면이 나왔다 !!!



헥헥... 너무 힘들다.... 이거, 반드시 스크립트 제공해줘야 한다 !!!

여하튼 일단 페이지 빵! 뜨는 것 까지는 성공~



반응형

새로운 버전이 나온김에 한 번 더 살펴보았다.



1. 필수 패키지 설치

$ sudo apt-get install make libcurl4-gnutls-dev libexpat1-dev gettext zlib1g-dev libssl-dev asciidoc xmlto autoconf

 

 

2. 다운로드

$ cd /srv/install/git

$ wget http://git-core.googlecode.com/files/git-1.8.5.1.tar.gz
$ tar zxvf git-1.8.5.1.tar.gz
$ cd git-1.8.5.1/


3. 빌드

$ make configure
$ ./configure --prefix=/usr/local
$ make all doc
$ sudo make install install-doc install-html

   - 설치가 잘 되었는지 확인을 해보기 위해서 버전 확인을 해보자.

$ git --version



GIT 자동완성을 지원하기 위해서는...

   - http://whatwant.tistory.com/478


우리 모두 Git으로 행복한 형상관리를...

반응형


1. 필수 패키지 설치

$ sudo apt-get install make libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev asciidoc xmlto autoconf

 

 

2. 다운로드

$ cd /srv/install/git

$ wget http://git-core.googlecode.com/files/git-1.8.4.1.tar.gz
$ tar zxvf git-1.8.4.1.tar.gz
$ cd git-1.8.4.1/


3. 빌드

$ make configure
$ ./configure --prefix=/usr/local
$ make all doc
$ sudo make install install-doc install-html

   - 설치가 잘 되었는지 확인을 해보기 위해서 버전 확인을 해보자.

$ git --version



GIT 자동완성을 지원하기 위해서는...
   - http://whatwant.tistory.com/478


우리 모두 Git으로 행복한 형상관리를...


반응형

기본적으로 RedHat 기본 계정이 root라고 전제하고 진행하면 되겠다.


1. 계정 생성

$ adduser git
$ passwd git
$ adduser gitolite
$ passwd gitolite




2. gitolite 다운로드

$ su git
$ cd
 $ git clone http://github.com/sitaramc/gitolite.git
$ cd gitolite/




3. 관리자 SSH Public-Key 파일 확보 하기

$ exit

$ su gitolite
$ ssh-keygen

$ exit
$ cp /home/gitolite/.ssh/id_rsa.pub /home/git/gitolite/gitolite.pub
$ chown git:git /home/git/gitolite/gitolite.pub 




4. 설치하기

$ su git
$ /home/git/gitolite

$ ./install
./src/gitolite setup -pk ./gitolite.pub




5. gitolite 관리자 계정

$ exit
$ su gitolite
$ cd

$ git clone git@localhost:gitolite-admin.git 

$ git config --global user.email "seinfra@whatwant.com"

$ git config --global user.name "seinfra"

$ git config --global push.default matching



gitolite 사용법이나 기타 사항은 별도의 포스팅을 참고하기 바라며...


반응형

빌드하기 위해 필요한 패키지들을 미리 설치합시다.

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc xmlto


asciidoc 은 직접 받아서 설치를 해야 한다.

$ cd /srv/install/asciidoc
wget http://pkgs.repoforge.org/asciidoc/asciidoc-8.6.8-1.el6.rfx.noarch.rpm
$  rpm -Uvh 
asciidoc-8.6.8-1.el6.rfx.noarch.rpm

git 소스파일을 내려 받아야겠죠?!

$ cd /srv/install/git
$ wget  http://git-core.googlecode.com/files/git-1.8.4.1.tar.gz
$ tar zxvf git-1.8.4.1.tar.gz
$ cd ./
git-1.8.4.1  


 Ubuntu에서 했던 것과 차이가 없죠 !?

$ make configure
$ ./configure --prefix=/usr/local
$ make all doc
$ sudo make install install-doc install-html

버전 확인 !

$ git --version


GIT 자동완성을 지원하기 위해서는...

우리 모두 Git으로 행복한 형상관리를...
반응형

Windows 환경에서 Subversion 서버 환경을 구축하는 방법 중 하나로 BitNami 패키지를 활용하는 방법을 살펴보았었다.

   - Subversion 설치 (Windows, BitNami) : http://whatwant.tistory.com/609


상당히 편리하기는 하지만,
솔직히 필자의 취향과는 너무도 다른 방식이기에 공식 배포판을 가지고 환경을 구축하는 방법을 살펴보고자 한다.


리눅스(Ubuntu) 환경에서는 필자가 좋아하는 방식인 SourceCode로 설치하는 방법을 살펴보았었다.

   - Subversion 설치 (Ubuntu, SourceCode) : http://whatwant.tistory.com/566


Windows에서도 SourceCode를 빌드할 수 있겠지만,
솔직히 최근 하루에 30분 짬내기도 힘든 상황에서 좋아하지도 않는 Windows 환경에 시간 투자하기는.... ^^



공식적으로 Windows 환경을 위한 Binary는 다음과 같이 제공이 되고 있다.

   - http://subversion.apache.org/packages.html#windows




1. Download

서버를 구성하기 위해서 최근에 유행(?)하는 것은 VisualSVN이다.

   - http://www.visualsvn.com/


Windows 환경에서 대부분 그렇듯이 Client와 Server 두 가지로 구분되어서 제공되고 있다.

   - http://www.visualsvn.com/downloads/

위 경로로 접속하면 다운로드는 3가지로 구분이 되어서 배포되고 있다.



   - http://www.visualsvn.com/server/download/

System Requirements 등을 확인하면서 다운로드를 받기 위해 위 경로로 접속해보자.


대부분의 Windows 운영체제를 지원해주고 있고 상당히 낮은 CPU와 RAM, HDD 를 요구하고 있다.
즉, 어지간한 환경이라면 다 가능하다라는 아름다운 조건이다~!!!

잡소리가 길었다. [ download now ]를 눌러서 다운로드 받고 실행하자.



2. Install

사실 대부분의 상황에서도 그렇지만, 특히나 서버 프로그램은 경로를 포함해서 되도록이면 Default 설정을 따르는 것이 좋다.
선택의 상황들에 대해서 잘 읽어보고 되도록이면 기본 설정으로 가자.


위 설정을 바꿔야 하는 상황이라면 이미 expert일테니.... ^^


VisualSVN은 상용 Enterprise Edition도 제공을 하고 있다.
좋은 소프트웨어라 판단된다면, 또는 회사 업무용으로 사용한다면 구매해서 사용하는 것을 권장한다.
특히, 인증이나 로그 관련한 부분만으로도 충분히 가치가 있다고 생각한다.


공부를 위해 또는 테스트 용도로 사용한다면, "Standard Edition"으로 선택해서 설치를 계속 진행하자.


설치 경로는 별다른 사유가 없다면 그대로 설정을 하고,
저장소 경로는 각자의 상황에 따라 적절히 변경을 하면 될 것 같다.

그리고, 서버로 사용할 포트를 설정하는데 기본값은 보안을 위해 [ https ]를 사용하는 것을 권장하고 있다.


테스트 용도로 사용하거나 방화벽 등의 이슈가 있는 상황에서는 그냥 일반 http 포트인 80번 포트를 사용하자.


설치 과정이 진행이 되면 위와 같이 마무리가 된다.


서버 프로그램다운(?) Management 화면이 나온다.



repository 생성하고, 계정 관리하고 하는 부분에 대해서는 따로 포스팅하도록 하겠다.

반응형

'SCM > Subversion' 카테고리의 다른 글

Subversion 설치 (Windows, BitNami)  (0) 2013.09.09
Subversion 프로토콜 - 1. SVN (Ubuntu)  (0) 2013.09.09
Subversion 설치 (Ubuntu, SourceCode)  (0) 2013.09.05

개인적으로 별로 좋아하지 않는 Windows 환경, 그리고 별도로 구성된 패키지 방식...
그러나, 어느 해외연구소 담당자가 리눅스 서버와 소스 빌드 설치 등에 익숙하지 않은 관계로...


1. BitNami Stack Download

   - BitNami에서 제공하는 "Version Control"은 몇 가지 없다.
   - 일단, 여기에서 Subversion을 선택하고 다운로드 받자.



2. Install

   - 다운로드 받은 파일을 실행함으로써 설치를 진행하자.


   - 그런데, 이 때 하나 주의해야할 점은 기존에 다른 Server를 운영하는 상황에서는 포트 충돌로 조금 곤란할 수가 있다.
   - 되도록이면 하나의 서버에는 하나의 서버 어플리케이션만 운영하기 바란다.


   - 설치를 하고나면 위와 같은 화면이 뜨고. 왼쪽 위 Subversion Icon을 클릭하면 된다.




그런데, 이렇게 설치를 해보니... 사용법(?) 알아내기도 난감하고, 굳이 이렇게 설치를 해서 뭐가 좋은지 모르겠다.

이렇게 패키지로 설치를 하는 경우 주어진 방법대로 사용하지 않고,
막 쓰게 되면 꼬이게 되어 나중에 상당히 곤란하게 되는 경우가 많았기 때문이다.

반응형

Subversion을 설치했다는 것은 형상관리를 하고자 한다는 말이고,
형상관리를 하겠다라는 것은 일반적으로 여러명과 공동 작업을 하겠다라는 말일 것이다.

여러 명이 접속하는 서버를 구성하기 위해서 가장 중요한 것은 어떤 프로토콜을 사용할 것인가 하는 점이다.

그러면, Subversion에서는 어떤 프로토콜을 사용할 수 있을까?

   - FileSystem
   - HTTP
   - SSH
   - SVN
   - SVN+SSH


1. Protocol - SVN

   - Subversion은 [ svnserve ]를 통해서 고유의 프로토콜을 사용할 수 있게 해준다.
   - 기본으로 사용하는 포트는 [ 3690 ] 이다.

   - 당연한 말이지만, Apache를 통해서 제공하는 HTTP 프로토콜 보다는 훨씬 빠르다.
   - SSH 프로토콜보다 빠른지는 한 번 테스트해봐야 알 수 있을 것 같다.

   - SVN 프로토콜을 사용하기 위해서는 [ svnserve ] 데몬을 실행해야하고, 그 방법은 정말 쉽다.

$ sudo svnserve -d -r /srv/repository/

   - 이것으로 끝이다. Subversion Server가 실행된 것이다.

$ cd /srv/workspace

$ svn checkout svn://127.0.0.1/svnrepo svnrepo

체크아웃된 리비전 0.

$ ls -al
합계 12
drwxr-xr-x 3 chani chani 4096  9월  7 00:20 .
drwxr-xr-x 5 root  root  4096  9월  6 23:55 ..
drwxrwxr-x 3 chani chani 4096  9월  7 00:20 svnrepo

   - SVN  프로토콜을 통해 repository를 받아올 수 있게 되었다.
   - 그런데, 방금 우리는 계정 정보 없이 그냥 막 받아왔다. 우리가 원하는 것은 계정을 통한 권한제어인데...

$ cd /srv/repository/

$ cd svnrepo/

$ ls -al
합계 32
drwxrwxr-x 6   chani chani 4096  9월  5 22:56  ./
drwxr-xr-x 3    chani chani 4096  9월  5 22:56  ../
-rw-rw-r-- 1    chani chani  246  9월  5 22:56  README.txt
drwxrwxr-x 2   chani chani 4096  9월  5 22:56  conf/
drwxrwsr-x 6   chani chani 4096  9월  5 22:56  db/
-r--r--r-- 1      chani chani     2  9월  5 22:56  format
drwxrwxr-x 2   chani chani 4096  9월  5 22:56  hooks/
drwxrwxr-x 2   chani chani 4096  9월  5 22:56  locks/

   - 서버에 생성한 repository를 살펴보자. 위치하고 있는 디렉토리를 주의깊게 살펴봐야 한다.

$ cd conf/

$ ls -al
합계 24
drwxrwxr-x 2  chani chani 4096  9월  5 22:56 .
drwxrwxr-x 6  chani chani 4096  9월  5 22:56 ..
-rw-rw-r-- 1   chani chani 1080  9월  5 22:56   authz
-rw-rw-r-- 1   chani chani  885  9월  5 22:56    hooks-env.tmpl
-rw-rw-r-- 1   chani chani  309  9월  5 22:56    passwd
-rw-rw-r-- 1   chani chani 4002  9월  5 22:56   svnserve.conf

   - 특히 우리가 관심을 가져야 할 곳은 conf/ 디렉토리이다.
   - 우선, 우리는 계정을 사용하겠다라는 설정부터 하자.

$ nano ./svnserve.conf

[general]
anon-access = none
auth-access = write
password-db = passwd

   - anonymous 접근은 막고, 인증받은 계정으로 읽기/쓰기를 하겠으며, 계정 정보는 passwd 파일로 하겠다라는 설정이다.

$ nano ./passwd

[users]
whatwant = 1234

   - 기본적으로 passwd 파일에서 설정은 [ 사용자계정 = 비밀번호 ] 형식이고, 암호화하지 않는다.

$ svn --username whatwant checkout svn://127.0.0.1/svnrepo svnrepo

인증 영역(realm): <svn://127.0.0.1:3690> b4595488-89ba-479b-b681-c8e86660c71c
'whatwant'의 암호: ****

'(null)'의 GNOME 키 링 암호: ****

체크아웃된 리비전 0.

   - ID / Passwd 방식으로 접근이 이루어지는 것을 볼 수 있다.

   - 중간에 보면 [ '(null)'의 GNOME 키 링 암호: **** ] 부분이 걸리적거리는데...

$ nano ~/.subversion/config

[auth]
password-stores =
store-passwords = yes

$ nano ~/.subversion/servers

[groups]
store-plaintext-passwords = no

   - 이제 기본적인 상황은 모두 점검을 했다.
   - 이제 필요한 것은 부팅할 때 자동으로 구동이 되도록 셋팅만 해주면 된다.

   - https://help.ubuntu.com/community/Subversion
   - 필자가 테스트하고 있는 환경이 우분투이기에 우분투 환경에서 사용할 수 있는 방법을 찾아보았다.

   - initd script for svnserve
   - http://odyniec.net/articles/ubuntu-subversion-server/svnserve

$ cd /etc/init.d/
$ sudo wget http://odyniec.net/articles/ubuntu-subversion-server/svnserve
$ sudo chmod +x ./svnserve
$ sudo nano ./svnserve

DAEMON=/usr/local/bin/$NAME
DAEMON_ARGS="-d -r /srv/repository"

$ sudo /etc/init.d/svnserve start

   - 이제 svnserve를 예쁘게 사용하자.


반응형

'SCM > Subversion' 카테고리의 다른 글

Subversion 설치 (Windows, Binary : VisualSVN)  (1) 2013.09.14
Subversion 설치 (Windows, BitNami)  (0) 2013.09.09
Subversion 설치 (Ubuntu, SourceCode)  (0) 2013.09.05

+ Recent posts