Wednesday, January 19, 2011

C-BGP BGP Routing Solver Installation

C-BGP 網頁 http://cbgp.info.ucl.ac.be/

下載檔案,例如 cbgp-2.0.0-rc2.tar.gz。進行解壓縮、編譯和安裝。

$ tar zxfv cbgp-2.0.0-rc2.tar.gz
$ cd cbgp-2.0.0-rc2/

C-BGP 需要額外 library,包括 libGDS 和 PCRE,否則執行 .configure 時會出下以下錯誤訊息:

$ .configure
checking for LIBGDS... no
checking for LIBGDS... configure: error: libgds >= 2.0.0 is needed to compile cbgp
...
checking for pcre-config... false
ERROR: Could not find pcre-config in your path.
You need PCRE to compile C-BGP.
Source: http://www.pcre.org/
Use --with-pcre=DIR to mention another search path


Install libGDS

libGDS 網頁下載檔案,例如 libgds-2.0.0-rc1.tar.gz

$ tar zxfv src/libgds-2.0.0-rc1.tar.gz
$ cd libgds-2.0.0-rc1
$ ./configure; make; sudo make install

預設將安裝於 /usr/local 目錄,包括安裝 library file 於 /usr/local/lib 目錄,安裝 library header 於 /usr/local/include/libgds 目錄。

或者使用 --prefix=PATH,指定安裝目錄,例如:
$ ./configure --prefix=$HOME/myproj

相關檔案將安裝於 $HOME/myporj/lib 目錄和 $HOME/myproj/include/libgds 目錄。

Install PCRE (Perl Compatible Regular Expressions)

PCRE 網頁下載檔案,例如 pcre-8.12.tar.gz,執行以下指令,依序解壓縮和安裝。

$ tar zxfv pcre-8.12.tar.gz
$ cd pcre-8.12
$ ./configure; make; sudo make install

預設將安裝 PCRE 於 /usr/local/{bin, include, lib, share} 目錄。

或者使用 --prefix=PATH,指定安裝目錄,例如:
$ ./configure --prefix=$HOME/myproj

將安裝 PCRE 於 $HOME/myproj/{bin, include, lib, share} 目錄。

Install Others

C-BGP 還需要安裝 libbz2 library。使用 apt 需安裝 libbz2-dev package,使用 yum 需安裝 bzip2-devel。

Install C-BGP again

繼續完成安裝 C-BGP。
$ ./configure; make; sudo make install

若是安裝 ligGDS 於其他目錄(非預設 /usr/local 目錄),需要先設定 PKG_CONFIG_PATH 環境變數,再執行 configure:
$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HOME/myproj/lib/pkgconfig

或者於執行 configure 時,使用 LIBGDS_CFLAGS 和 LIBGDS_LIBS 參數以設定 C-BGP:
$ ./configure LIBGDS_CFLAGS="-I$HOME/myproj/include" LIBGDS_LIBS="-L$HOME/myproj/lib -lgds"

若是安裝 PCRE 於其他目錄(非預設 /usr/local 目錄),使用 --with-pcre=DIR 參數以設定 C-BGP:
$ ./configure [OPTION] --with-pcre=$HOME/myproj

執行 configure 可以加上 --prefix=PATH,指定 C-BGP 的安裝目錄。
$ ./configure [OPTION] --prefix=$HOME/myproj

如果執行 make 時遇到一些編譯問題,嘗試改用其他 C compiler,例如使用 gcc-4.1:
$ ./configure ... CC=/usr/bin/gcc-4.1

Links



1 comment:

  1. Hi zjm (couldn't find what your name is)

    There is a tutorial available on c-bgp's web site. Have a look at http://c-bgp.sourceforge.net/tutorial.php

    Cheers,
    Bruno

    ReplyDelete