-
Notifications
You must be signed in to change notification settings - Fork 1
Installation Guide (Korean)
vagrant는 포터블 가상화 소프트웨어 개발 환경의 생성 및 유지보수를 위한 오픈 소스 소프트웨어 제품의 하나입니다. 큐브리드를 처음 접하는 개발자가 빌드해볼 때 여러가지 다른 라이브러리가 이미 설치되어 있는 환경보다 OS만 설치된 상태에서 필요한 모든 라이브러리를 설치하는 Vagrantfile 스크립트를 참고하면 쉽게 설치 환경을 이해 할 수 있습니다.
이 환경에서 설치하는 라이브러리는 크게 다음과 같습니다.
- 개발 환경 구축에 도움을 주는 유틸리티 e.g.) wget, git...
- 개발 환경을 위한 유틸리티 e.g.) vim, git, gdb, gdb-gdbserver, ctags, astyle...
- 빌드 환경을 위한 라이브러리 e.g.) cmake, gcc, g++, jdk ...
https://www.vagrantup.com/downloads.html에서 Windows, Linux, MacOS 환경에 상관없이 쉽게 설치파일을 이용해서 설치 할 수 있습니다.
git clone https://github.com/hgryoo/cubrid-vagrant-dev cub_env
cd cub_env
git이 설치되어 있다면 위와 같이 입력하여 가져올 수 있습니다. git이 설치되어 있지 않더라도 https://github.com/hgryoo/cubrid-vagrant-dev에서 소스를 직접 다운받을 수 있습니다.
사용 방법은 간단합니다. Vagrantfile이 있는 해당 환경의 폴더에서 다음을 입력하면 됩니다.
// centos라면 $cd centos7 입력
// ubuntu라면 $cd ubuntu-xenial 입력
vagrant up
콘솔 화면에서 모든 설치 과정을 볼 수 있고, 설치 과정이 완료되면 다음을 입력하면 ssh로 접속이 가능합니다.
vagrant ssh
또한 Vagrantfile 내의 config.vm.network "private_network" 속성의 ip를 이용해서 putty와 같은 ssh 접속 프로그램을 사용하여 연결 할 수 있습니다. **기본 username은 vagrant 입니다. 그리고 ssh client에서 .vagrant/machines/default/virtualbox 내의 private_key를 이용해야합니다. ** Vagrantfile에서 아래와 같은 내부 아이피 주소를 찾아 해당 주소로 연결하면 됩니다.
// example in Vagrantfile
config.vm.network "private_network", ip: "192.168.33.10"
cd hgryoo_cubrid
// centos7이라면 scl enable devtoolset-8 bash 입력
./build.sh -m debug -z shell
- chocolatey: Windows용 Package Manager
- Oralce JDK8
- Visual Studio 2017 (including dependent modules to install CUBRID)
chocolatey에서 설치되는 항목들
- jdk8
- cmake
- winflexbison
- wixtoolset (msi 설치)
사용 방법은 Linux 환경과 마찬가지로 간단합니다. Vagrantfile이 있는 해당 환경의 폴더에서 다음의 커맨드를 입력합니다.
cd windows
vagrant up
모든 설치과정이 완료된 후 다음을 입력하면 원격데스크톱으로 접속이 가능합니다.
//id, password 모두 vagrant
vagrant rdp
빌드를 수행하기 전에 CUBRID 소스 폴더 내의 VERSION을 수정해야 합니다.
CUBRID 소스 폴더 내에서
git rev-list --count HEAD
을 입력한 후 출력되는 결과를 VERSION 파일의 끝에 적어줍니다.
//예시
10.2.0-8356
CUBRID 소스 폴더에서 powershell을 실행하여 다음의 빌드 커맨드를 입력하면 빌드 과정이 시작됩니다.
win/build.bat /out ${OUTPUT_DIR} dist