2015년 11월 26일 목요일

ABySS 1.9.0 버전 설치..

ABySS assembler 가 기존 1.5.1 버전에서 1.9.0 버전으로 업데이트 되었다. 업데이트 되면서 크게 바뀐 것 중에 하나가 라이센스 정책... 기존에는 GPL v3 라이센스 였지만 BCCCA 라이센스로 바뀌면서 Academy Only 로 바뀌었다. 나랑은 상관없는 이야기...

그 외에도 Boost, OpenMPI, sparsehash, SQLite 가 필요한데 SQLite 는 뭔데 새로 생겼다. 귀찮게..
자세한 것은 https://github.com/bcgsc/abyss#abyss 직접 보라.

먼저 Boost 설치부터 하자. http://www.boost.org/
현재 최신 버전은 1.59 이다.

파일을 다운 받아 압축을 풀면...
1. ./bootstrap.sh 하면 b2 와 bjam 파일이 생성 된다.
2. ./b2 --prefix=/.../PATH/usr/local/ threading=multi install
3. 기다려라.. 시간 좀 걸릴 거다.. ㅡ,.ㅡ


두번째 Open MPI 를 설치하자. http://www.open-mpi.org/
현재 최신 버전은 1.10.1 이다. 파일을 다운로드 받아 압축 해제하고 들어가자.

1. ./configure --prefix=/.../usr/openmpi
2. make all
3. make install

2번에서 multi core 를 이용해 더 빨리 설치할 수 있다. 'make j4 all' core 4개를 쓴다는 뜻. 그런데 실제론 해보니 그다지 빨라지는 듯 싶지 않다.
여기서 끝이 아니다.

~/.bashrc 에 다음 두 줄을 더하거나 삽입해야 된다.

export PATH=/.../PATH/usr/openmpi/bin
exoprt LD_LIBRARY_PATH=/.../PATH/usr/openmpi/lib

세번째 sparsehash 를 설치하자. https://github.com/sparsehash/sparsehash
기존 goolge code 가 없어지고 github 로 통합된 듯.. 왼쪽에 다운로드 버튼이 있다.
다운로드한 파일의 압축을 해제하고 디렉토리로 들어간다.
1. ./configure --prefix=/.../PATH/usr/local
2. make
3. make install

이쯤 되니 별거 없는 듯 느껴진다.

네번째. 마지막이다. SQLite 를 설치하자. 이건 처음 보는 거라 좀 긴장된다.
http://www.sqlite.org/ 현재 최신 버전은 3.9.2 이다.
사실, precompiled 가 있으니 그거 쓰는게 속 편하다. 그래도 한번 source code 로 해보자.

1. README 파일을 읽어보자. 뭔가 있다.
2. ./configure --prefix=/.../PATH/usr/local --enable-readline=yes --enable-threadsafe=yes --enable-dynamic-extensions=yes
3. make
4. make install
5. ~/.bashrc 에 export LD_LIBRARY_PATH=/.../PATH/usr/local/lib 추가하라는 글이 뜬다.
뭔가 있을 줄 알았어.. 그런데 아까 한거 같은데...

이제 목표였던 ABySS assembler 를 설치하러 가자. 위의 험난한 과정을 거치다보니 예전엔 몰랐던 옵션들의 의미를 대충 알게 되었고 ABySS 설치도 무척이나 쉽게 느껴진다.
위의 방법대로 해왔다면 밑의 명령어 줄로 하면 무난하게 설치가 된다.

1. http://www.bcgsc.ca/platform/bioinfo/software/abyss 에서 다운로드를 받는다.
2. 압축을 해제하고 디렉토리로 들어간다.
3.  ./configure --prefix=/.../PATH/abyss CC=gcc CXX=g++ --with-boost=/.../PATH/usr/local/include --with-mpi=/.../PATH/usr/openmpi CPPFLAGS=-I/.../PATH/usr/local/gcc-4.9.3/include --with-sqlite=/.../PATH/usr/local/ --with-sparsehash=/.../PATH/usr/local/include --enable-maxk=128
4. make
5. make install
6. /.../PATH/abyss/bin 디렉토리를 $PATH 에 포함시킨다.

컴파일 도중 warning 이 뜨고 그걸 무시하고 싶다면 make AM_CXXFLAGS=-Wall 를 실행하라고 나오는데 딱히 warning 이 없어서 그냥 진행했다.

2015년 11월 25일 수요일

gcc compiler 를 설치하기 위한 여정..

 서버가 아직도 우분투 10.10 인 관계로 gcc ,g++ 컴파일러가 4.4 버전이다. ABySS 어셈블러도 신버전이 나온 김에 재설치를 하기 위하여 gcc, g++ 컴파일러를 4.9.3 버전으로 업데이트를 해보려고 한다.
 그런데, 이 서버는 예전에 좀비 서버가 된 적이 있어서 학교 전산팀에서 외부로 나가는 트래픽을 막아놓았다. 게다가 나에겐 비록 root 계정이 있기는 하지만 하는 김에 root 계정 없이 설치를 해보고자 했더니 아주 험난한 과정이 기다리고 있었다. 하지만 한번 해보고자 한다.

gcc 컴파일러 설치를 위해서는 선행해서 필요한 것들이 기다리고 있다.
GNU M4 (http://ftp.gnu.org/gnu/m4/)
autoconfigure (ftp://ftp.gnu.org/gnu/autoconf/)
automake (ftp://ftp.gnu.org/gnu/automake/)

꼭 순서대로 설치해야 된다.

본래대로라면 default 설치 위치가 /usr 로 설정되어 있지만 나는 root 계정이 아닌 관계로 개인 디렉토리에 설치할 거다.

각 압축 파일을 풀어서 새로 생성된 디렉토리로 들어간 다음
1. ./configure --prefix=/.../My_path
2. make
3. make install

순서대로 하면 /.../My_path/bin 디렉토리가 생겨 있고 여기에 컴파일된 파일이 생성되어 있을 것이다. 저 디렉토리를 $PATH 에 걸어놓으면 나머지는 순조롭게 설치가 된다.

그리고 gcc 홈페이지 (https://gcc.gnu.org/) 에 가보면 여러가지 필요한 것들이 나열 되어 있다. 그 중에서..
1. GNU Multiple Precision Library (GMP https://gmplib.org/)
2. MPFR Library (http://www.mpfr.org/  http://www.mpfr.org/mpfr-current/#download),
3. MPC Library (http://www.multiprecision.org/  http://www.multiprecision.org/index.php?prog=mpc&page=download)
4. ISL Library (ftp://gcc.gnu.org/pub/gcc/infrastructure/) version 0.15, 0.14, 0.13, or 0.12.2

왠만한 것들은 우분투에도 있지만 저 4가지는 없거나 $PATH 에 안 잡혀 있다. 그래서 일단 저 4가지를 설치해보자.

먼저 GMP 압축 파일을 받아서 압축을 해제하고 디렉토리로 들어간다.
1. ./configure --prefix=/.../My-path/usr/local
2. make
3. make check
4. make install

두번째로 MPFR 을 설치하자.
마찬가지로 압축 파일을 받아 압축 해제 후 디렉토리로 들어가서..
1. ./configure --prefix=/../My_path/usr/local --with-gmp=/.../My_path/usr/local
2. make
3. make install

 세번째 MPC 설치하자.
1. ./configure --prefix=/.../My_path/usr/local --with-gmp=/.../My_path/usr/local --with-mpfr=/.../My_path/usr/local
2. make
3. make install

 네번째 ISL 을 설치하자.
1. ./configure --prefix=/.../My_path/usr/local --with-gmp-prefix=/.../My_path/usr/local
2. make
3. make install

** gcc 설치하다가 알았는데 ISL 0.15 버전은 gcc 4.9.3 버전에서 지원하지 않는 것 같다. 0.14 버전으로 재설치했다.


마지막으로 대망의 gcc... 이것을 위해 여기까지 왔다.. ㅜ_ㅜ

** gcc 를 설치하기 전 LD_LIBRARY_PATH 라는 환경변수에 isl 등을 설치했던 lib 디렉토리를 추가해줘야 한다.
export LD_LIBRARY_PATH=/.../My_path/usr/local/lib/:$LD_LIBRARY_PATH:

1. gcc 압축 파일을 받아 압축을 해제하고 해당 디렉토리에 들어간 다음
./configure --prefix=/.../My_path/usr/local/gcc-4.9.3/ --enable-stage1-languages=all --with-mpc=/.../My_path/usr/local/ --with-mpfr=/.../My_path/usr/local/ --with-gmp=/.../My_path/usr/local/ --with-isl-include=/.../My_path/usr/local/include/ --with-isl-lib=/.../My_path/usr/local/lib/ --disable-multilib

본래 --with-isl=PATH 옵션이 있어서 해봤는데 계속 되는 에러로 --with-isl-include, --with-isl-lib 두 옵션으로 바꿔버렸더니 됐다. 또한 현재 시스템엔 32 bit 와 64 bit 중에 64 bit 시스템 밖에 없으므로 --enable-multilib 와 --disable-multilib 둘 중에 하나 고르라는 에러가 떠서 64 bit 만 쓸 것이므로 --disable-multilib 옵션을 골랐다.

2. make
3. make install