02 - Open Babel 설치

업데이트: Link

Open Babel은 Windows, Linux 및 MacOSX에서 실행됩니다. 바이너리 패키지 설치 (가장 쉬운 옵션) 또는 Open Babel 컴파일 (쉽지만 훨씬 더 괴짜들의 신용이 있습니다).

바이너리 패키지 설치

Windows

Open Babel은 Windows 용 바이너리 설치로 제공됩니다. 여기에는 그래픽 사용자 인터페이스 (GUI)뿐만 아니라 여러 명령 줄 도구가 포함됩니다.

고급 사용자는 Open Babel을 직접 컴파일하는 데 관심이있을 수 있습니다 (Open Babel 컴파일 참조).

Linux

Open Babel 바이너리 패키지는 Ubuntu, OpenSUSE 및 Fedora를 포함한 많은 Linux 배포판에서 사용할 수 있습니다.

일반적으로 최신 버전의 Open Babel (현재 2.3.1)을 사용하는 것이 좋습니다. Linux 배포판에서 사용할 수없는 경우 Open Babel 컴파일.

Open Babel 컴파일

Open Babel은 C로 작성되었습니다. 컴파일은 이 C를 컴퓨터 프로세서가 이해할 수있는 명령어인 기계 코드로 바꾸는 과정입니다.

사전 컴파일 된 (또는 “바이너리”) 패키지는 여러 플랫폼에서 사용할 수 있지만 Open Babel을 직접 컴파일해야하는 몇 가지 이유가 있습니다.

  • 현재 플랫폼에서 Open Babel의 현재 릴리스 (2.3.1)를 사용할 수 없습니다. 항상 최신 릴리스를 사용하는 것이 좋습니다.
  • 사용 가능한 기능을보다 세밀하게 제어하려고합니다. 예를 들어, 파이썬 바인딩을 원하지만 배포본에 포함되지 않았습니다.
  • 최신 개발 코드를 사용하려고합니다.
  • 새로운 기능을 추가하려고합니다. 플러그인 아키텍처가 있으므로 Open Babel에 새 형식이나 작업을 쉽게 추가 할 수 있습니다 (플러그인 추가 참조). 아직번역안됨
  • 당신이 직접 컴파일하고 싶은 것을 우리는 이해합니다.

Open Babel은 Linux, MacOSX, BSD 및 기타 유닉스와 Windows (Cygwin, MinGW 또는 MSVC)에서 컴파일 할 수 있습니다.

요구사항

Open Babel을 빌드 하려면, 다음을 따라야 합니다:

  • 최신 Babel 릴리스의 소스 코드
  • C 컴파일러

    Open Babel은 표준 규격 C로 작성되었습니다. 가장 잘 지원되는 컴파일러는 GCC 4 및 MSVC 2008이지만 Clang 및 Intel Compiler 11 과도 컴파일됩니다.

  • CMake 2.4 이상

    Open Babel은 CMake를 빌드 시스템으로 사용합니다. CMake는 KitWare의 오픈 소스 크로스 플랫폼 빌드 시스템입니다.

    CMake 2.4 이상을 설치해야합니다. KitWare 웹 사이트에서 바이너리 패키지로 제공됩니다. 또는 패키지 관리자 (Linux의 경우)를 통해 사용할 수 있습니다. 필요한 경우 소스 코드에서 직접 컴파일 할 수도 있습니다.

GUI (Graphical User Interface)를 빌드하려면 다음 사항을 추가해야합니다.

  • wxWidgets 2.8 이상

    바이너리 패키지는 패키지 관리자 (우분투의 wx-common, wx2.8-headerslibwxbase2.8-dev) 또는 http://www.wxwidgets.org/downloads/. 그렇지 않으면 소스 코드에서 직접 컴파일 해 볼 수 있습니다.

다음은 Open Babel을 컴파일 할 때 선택 사항이지만 사용할 수없는 경우 일부 기능이 누락됩니다.

  • CML 파일 및 기타 XML 형식 (Ubuntu의 libxml2-dev 패키지)을 읽고 쓰려면 libxml2 개발 헤더가 필요합니다.
  • zlib 개발 라이브러리는 gzip 파일 읽기 (Ubuntu의 zlib1g-dev 패키지)를 지원해야합니다.
  • 릴리스에서 언어 바인딩을 사용하는 경우 Eigen 버전 2가 필수입니다. 또한 존재하지 않으면 일부 API 클래스 (OBAlign, OBConformerSearch) 및 플러그인 (QEq and QTPIE charge models, conformer operation)을 사용할 수 없습니다.

    Eigen은 패키지 관리자 (우분투의 libeigen2-dev 패키지)를 통해 사용할 수 있습니다. 또는 Eigen은 http://eigen.tuxfamily.org에서 구할 수 있습니다. 컴파일하거나 설치할 필요가 없습니다. -DEIGEN2_INCLUDE_DIR = whereever를 사용하여 cmake (아래 참조)를 구성 할 때 압축을 풀고 위치를 지정하십시오. Cairo 개발 라이브러리는 PNG 묘사 (우분투의 libcairo2-dev 패키지)를 지원해야합니다.

  • GCC 3.x를 사용하여 컴파일하고 GCC 4.x가 아닌 경우 특정 형식 (CML, Chemkin, Chemdraw CDX, MDL RXN 및 RSMI)에 Boost 헤더가 필요합니다.

지원되는 언어 바인딩 중 하나를 사용하여 Open Babel을 사용하려는 경우 다음 참고 사항이 적용될 수 있습니다.

  • 파이썬 바인딩을 컴파일하려면 파이썬 개발 라이브러리가 필요합니다 (우분투의 패키지 python-dev)
  • Perl 바인딩을 컴파일하려면 Perl 개발 라이브러리가 필요합니다 (우분투의 패키지 libperl-dev)

기본 빌드 절차

기본 빌드 절차는 모든 플랫폼에서 동일하며 먼저 설명합니다. 그런 다음 특정 플랫폼의 변형을 살펴 보겠습니다.

  1. 권장하는 Open Babel을 빌드하는 방법은 별도의 소스 및 빌드 디렉토리를 사용하는 것입니다. 예를 들어 openbabel-2.3.1build 입니다. 첫 번째 단계는 다음 디렉토리를 작성하는 것입니다.

     tar zxf openbabel-2.3.1.tar.gz   # (this creates openbabel-2.3.1)
     mkdir build
    
  2. 이제 cmake를 실행하여 빌드를 구성해야합니다. 다음은 모든 기본 옵션을 사용하도록 빌드를 구성합니다.:

     cd build
     cmake ../openbabel-2.3.1
    
  3. 특정 옵션을 지정해야하는 경우 -D 스위치를 사용하여 cmake로 설정하십시오. 예를 들어 다음 행은 CMAKE_INSTALL_PREFIX 및 CMAKE_BUILD_TYPE의 값을 설정합니다.

     cmake ../openbabel-2.3.1 -DCMAKE_INSTALL_PREFIX=~/Tools -DCMAKE_BUILD_TYPE=DEBUG
    

    우리는 나중에 다양하게 가능한 옵션에 대해 논의 할 것입니다.

  4. 이 시점에서 Open Babel을 컴파일하는 것이 좋습니다:

     make
    

    마법이 일어나는 동안 커피를 마시십시오. 다중 프로세서 시스템을 가지고 있고 고속을 선호하는 경우 대신 병렬 빌드를 시도하십시오.:

     make -j4    # parallel build across 4 processors
    
  5. 마지막으로 루트 (또는 sudo 사용)로 설치해야합니다:

     # make install
    

로컬 빌드

엄마, 설치 안함!

올바른 환경 변수 매직 (아래 참조)을 사용하면 실제로 빌드 폴더에서 바로 Open Babel을 사용할 수 있습니다. 그러나 시스템 전체 또는 로컬 어딘가에 설치하면 인생이 조금 더 쉽습니다.

기본적으로 Open Babel은 유닉스 계열 시스템의/usr/local/에 설치됩니다. 루트 액세스 (또는sudo)가 필요합니다. 루트 액세스 권한이 있어도 기존 설치를 덮어 쓰지 않거나 패키지 관리자가 설치 한 Open Babel 버전과의 충돌을 피할 수 있습니다.

이러한 모든 문제에 대한 해결책은 홈 폴더의 디렉토리에 로컬 설치를 수행하는 것입니다. 로컬 설치의 또 다른 장점은 설치를 제거하려는 경우 설치 디렉토리를 삭제하기 만하면됩니다. 전역 설치에서 파일을 제거하는 것이 더 많은 작업입니다.

  1. 예를 들어~/Tools/openbabel-install에 설치하도록 cmake를 구성하려면 다음을 수행하십시오:

     cmake ../openbabel-2.3.1 -DCMAKE_INSTALL_PREFIX=~/Tools/openbabel-install
    
  2. 그런 다음 루트 액세스없이 makemake install을 실행할 수 있습니다:

     make && make install
    

GUI 컴파일

GUI는 wxWidgets 툴킷을 사용하여 빌드됩니다. 이미 이것을 설치했다고 가정하면 (위의 요구사항 참조) 다음과 같이 cmake를 구성하면됩니다.

cmake ../openbabel-2.3.1 -DBUILD_GUI=ON

makemake install을 실행하면 GUI가 기본 Open Babel 라이브러리 및 도구와 함께 자동으로 빌드 및 설치됩니다.

언어 바인딩 컴파일

Eigen2 필수

릴리스에 제공된 언어 바인딩을 컴파일하려면 Eigen2가 필요합니다 (위의 요구사항 참조).

  1. CMake를 구성 할 때 빌드하려는 바인딩에 대한-DPYTHON_BINDINGS = ON -DRUBY_BINDINGS = ON과 같은 옵션을 포함하십시오 (유효한 이름은PYTHON,CSHARP,PERL,JAVA 또는RUBY입니다). 바인딩은 나머지 Open Babel과 함께 빌드되고 설치됩니다. CMake 출력에 경고 메시지가 표시되어야합니다.
  2. CMake가 Java를 찾을 수 없으면 환경 변수JAVA_HOME의 값을 Javabinlib 디렉토리를 포함하는 디렉토리로 설정해야합니다. 예를 들어, Sun에서 JDK를 다운로드하고 자동 압축 풀기 .bin 파일을 실행하면jdk1.6.0_21 (또는 유사한) 디렉토리가 작성됩니다. JAVA_HOME을이 디렉토리의 전체 경로로 설정해야합니다.
  3. CMake가 Perl 라이브러리를 찾을 수없는 경우 (놀랍게도 Ubuntu 9.10에서 발생)-DPERL_LIBRARY=/usr/lib/libperl.so -DPERL_INCLUDE_PATH=/usr/lib/perl/5.10.0/CORE와 같은 형식으로 CMake를 구성해야합니다.
  4. CSharp 바인딩을 컴파일하는 경우-DCSHARP_EXECUTABLE=C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe와 같이 사용할 CSharp 컴파일러를 지정해야합니다.
  5. Java 및 CSharp를 사용하면 바인딩은 기본적으로 Open Babel 라이브러리와 동일한 위치에 설치됩니다.
  6. Ruby, Python 및 Perl의 경우 라이브러리 파일은 Open Babel 라이브러리가 설치된 곳의 하위 디렉토리 Python의 경우 python2.6/site-packages/ 또는 dist-packages, Perl은 perl/5.8.7에, 그리고 루비는 site_ruby/1.8/linux-i486에 설치됩니다. 바인딩을 다른 곳에 설치하려면 Python의 경우option -DPYTHON_PREFIX=whereever 또는 비슷하게 Perl 은 (OBPERL_PREFIX) 또는 Ruby는 (RUBY_PREFIX)를 사용하여 CMake를 구성하십시오.
  7. 파이썬에게 바인딩을 어디에서 찾을 수 있는지 알려주려면, openbabel.py를 포함하는 디렉토리를 PYTHONPATH 환경 변수 앞에 추가하십시오 (아직없는 경우). 마찬가지로 perl 서브 디렉토리 (바인딩이 설치된 위치)를 PERL5LIB 변수 앞에 추가하십시오. 루비에서는openbabel.so를 포함하는 디렉토리를 RUBYLIB에 추가하십시오; Java의 경우, ‘openbabel.jar’의 위치를 CLASSPATH에 추가하십시오.

예를 들어 Python의 경우:

$ cmake ../openbabel-2.3.1 -DPYTHON_BINDINGS=ON
$ make
# make install
$ export PYTHONPATH=/usr/local/lib/python2.6/site-packages:$PYTHONPATH

Cygwin

위의 기본 빌드 지침은 기본 Windows 설치가 아닌 Cygwin에서 제공하는 CMake를 사용하는 한 제대로 작동합니다.

‘_xmlFreeTextReader’에 대한 정의되지 않은 참조에 대한 오류가 발생하면-DLIBXML2_LIBRARIES 옵션을 사용하여 XML 라이브러리의 위치를 지정해야합니다.

cmake ../openbabel-2.3.1 -DLIBXML2_LIBRARIES=/usr/lib/libxml2.dll.a

Cygwin에서는 언어 바인딩이 작동하지 않는 것 같습니다. 그것들이 작동하게 할 수 있다면 알려주십시오. Cygwin을 사용하는 것은 MinGW 또는 MSVC를 사용하는 기본 빌드보다 느리게 실행되므로 속도에 문제가있는 경우 MinGW 또는 MSVC로 컴파일하는 것이 좋습니다.

MinGW

Open Babel은 MinGW와 함께 즉시 사용 가능합니다. 설정하기 어색한 시스템이므로 다음은 단계별 지침입니다 … TODO

Windows (MSVC)

Open Babel에서 사용하는 기본 Windows 빌드는 Microsoft Visual C 컴파일러 (MSVC)를 사용합니다.

  1. 다음 환경 변수를 설정:
    1. CMakebin 디렉토리를 PATH에 추가하십시오.
    2. (선택 사항, 위의 요구사항을 보세요) EIGEN2_INCLUDE_DIR을 최상위 Eigen 디렉토리 (설치된 경우)의 위치로 설정하십시오.
    3. (옵션, GUI에 필요) WXWIN을 wxWidget의 최상위 디렉토리 (설치된 경우)로 설정하십시오.
  2. Microsoft Visual C 2008 이상 컴파일러를 설치하십시오. Visual C 2008 (9.0) Express Edition (무료로 제공)을 사용합니다. MSVC 2010을 사용하는 경우 텍스트 편집기에서 windows-vc2008/default_build.bat를 열고Visual Studio 9 2008Visual Studio 10으로 변경하십시오.
  3. 명령 프롬프트를 열고 디렉토리를 windows-vc2008 서브 디렉토리로 변경하십시오. cmake를 구성하고 VC 프로젝트 파일을 생성하려면 default_build.bat를 실행하십시오.
  4. windows-vc2008/build/openbabel.sln을 더블 클릭하여 MSVC를 시작하십시오. 메뉴 막대 바로 아래에있는 창의 맨 위에있는 드롭 다운 상자에서 release를 선택하십시오.
  5. 왼쪽에서 ALL_BUILD 대상을 마우스 오른쪽 버튼으로 클릭하고 Build 를 선택하십시오.

빌드 문제 해결

CMake는 실행마다 일부 변수를 캐시합니다. 처음부터 시작하기 위해 캐시를 지우려면 어떻게해야합니까?

빌드 디렉토리에서 CMakeCache.txt를 삭제하십시오. 또한 문제가있는 경우 살펴볼 수있는 매우 유용한 파일입니다.

XML 라이브러리의 위치를 어떻게 지정합니까

CMake는 시스템 전체에 설치되어 있으면이를 자동으로 찾아야합니다. 지정해야하는 경우 CMake와 함께 -DLIBXML2_LIBRARIES = whereever 옵션을 사용하여 DLL 또는 SO 파일의 위치를 지정하고 -DLIBXML2_INCLUDE_DIR=wherever를 사용하여 헤더 파일의 위치를 지정하십시오.

ZLIB 라이브러리의 위치를 어떻게 지정합니까

CMake는 시스템 전체에 설치되어 있으면이를 자동으로 찾아야합니다. 지정해야하는 경우 CMake와 함께 -DZLIB_LIBRARY=wherever 옵션을 사용하여 DLL 또는 SO 파일의 위치를 지정하고 -DZLIB_INCLUDE_DIR=wherever를 사용하여 헤더 파일의 위치를 지정하십시오.

Open Babel이 형식, 플러그인 및 라이브러리를 찾는 방법에 영향을 미치는 환경 변수는 무엇입니까

LD_LIBRARY_PATH

libopenbabel.so 파일의 위치를 찾는 데 사용됩니다.

libopenbabel.so를 찾을 수 없다는 오류 메시지가 나타나면이를 설정해야합니다.

BABEL_LIBDIR

파일 형식과 같은 플러그인을 찾는 데 사용.

obabel -L 형식에 파일 형식이 없으면이 환경 변수를 파일 형식이 설치된 디렉토리 (일반적으로 /usr/local/lib/openbabel/)로 설정해야합니다.

BABEL_DATADIR

fingerprints, forcefields 등에 사용되는 데이터 파일의 위치를 찾는 데 사용됩니다.

일부 .txt 파일을 찾을 수 없다는 오류가 발생하면patterns.txtMACCS.txt와 같은 파일이 들어있는 폴더 이름으로 설정해야합니다. 이들은 일반적으로 /usr/local/share/openbabel에 설치됩니다.

고급 빌드 옵션

테스트가 빌드되는지 여부를 어떻게 제어합니까

CMake 옵션 -DENABLE_TESTS=ON 또는 OFF가 이를 관여합니다. 실제로 테스트를 실행하려면 make tests를 사용하십시오.

디버그 빌드는 어떻게합니까

-DCMAKE_BUILD_TYPE=Debug는 디버그 빌드 (gcc -g)를 수행합니다. 일반 빌드로 되돌리려면 -DCMAKE_BUILD_TYPE=Release를 사용하십시오.

cmake가 빌드하는 데 사용하는 명령을 어떻게 알 수 있습니까

다음과 같이 Make를 실행하십시오:

VERBOSE=1 make

하나의 특정 대상을 어떻게 구성합니까

Make를 실행할 때 대상을 지정하십시오. 다음은 Python 바인딩을 빌드합니다.

make _openbabel

작업 속도를 높이기 위해 Make에게 종속성을 무시하도록 요청할 수 있습니다.

make _openbabel/fast

SWIG 바인딩을 작성하는 방법

CMake와 함께 -DRUN_SWIG=ON 옵션을 사용하십시오. 이를 위해서는 SWIG 2.0 이상이 필요합니다. SWIG 실행 파일이 PATH에 없으면 -DSWIG_EXECUTABLE=whereever로 위치를 지정해야합니다.

Doxygen 설명서는 어떻게 작성합니까

CMake와 함께 -DBUILD_DOCS=ON 옵션을 사용하십시오. Doxygen 실행 파일이 PATH에 없으면 -DDOXYGEN_EXECUTABLE=whereever로 위치를 지정해야 합니다.

댓글남기기