======== How to install the IP/ROHC tunnel ======== This page is about the installation of the [[iprohc-overview|IP/ROHC tunnel]]. ===== Prerequisites ===== Check that your system satisfies to all the following prerequisites: * [[http://www.cmake.org/|Cmake]] as build tool **(for versions < 0.8)**, * autotools as build tool **(for versions >= 0.8)**, * [[http://www.gnu.org/software/make/|make]] as build tool, * pkg-config tool, * a C compiler such as [[http://gcc.gnu.org|GCC]] or [[http://clang.llvm.org/|Clang]], * libnetlink.h for configuration of IP addresses (provided by the package iproute-dev on Debian), * [[http://pyyaml.org/wiki/LibYAML|libyaml]] for configuration parsing, * [[http://www.gnutls.org/|GnuTLS]] for securing the control channel, * [[library-install|ROHC library]] for compressing packet headers **(version >= 1.6.0 required, dynamic library required)**. The installation of the above components is out of scope of the current tutorial. You may use the package manager provided with your system, or install them from sources at your convenience. Note that some of them could be already installed on your system. ===== Build on Unix-like systems ===== The instructions hereafter are for native build on Unix-like systems, such as [[wp>Linux|Linux]] or [[wp>FreeBSD]]. - Log in as normal user on the system on which you want to install the IP/ROHC application. - Download the sources: * Download the source archive of the lastest IP/ROHC release on the right of the [[https://launchpad.net/rohc/iprohc/|download page]]. - Extract the source code:<code> $ tar xvzf iprohc-X.Y.tar.gz</code> - Go inside the source directory:<code> $ cd iprohc-X.Y</code> - Configure the application:<code> $ cmake CMakeLists.txt -DCMAKE_INSTALL_PREFIX=/usr # for versions < 0.8 $ ./configure --prefix=/usr # for versions >= 0.8</code> - Build the code:<code> $ make all</code> - Install the library as root:<code> $ su # make install # ldconfig # for versions < 0.8 # exit</code> The IP/ROHC application is now installed on your system in subdirectories of ///usr//. In case you want to change the installation path, run at step 5:<code> $ cmake CMakeLists.txt -DCMAKE_INSTALL_PREFIX=/path/to/your/directory # for versions < 0.8 $ ./configure --prefix=/path/to/your/directory # for versions >= 0.8</code> Once the IP/ROHC application is installed, please follow the [[iprohc-run|instructions to run the IP/ROHC application]]. ===== Possible problems and solutions ===== ==== ROHC library not found ==== If //cmake// stops with the following error:<code> -- checking for module 'rohc' -- package 'rohc' not found CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:97 (MESSAGE): Could NOT find ROHC (missing: ROHC_LIBRARIES) Call Stack (most recent call first): /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:288 (_FPHSA_FAILURE_MESSAGE) common/FindROHC.cmake:35 (find_package_handle_standard_args) common/CMakeLists.txt:6 (find_package) -- Configuring incomplete, errors occurred!</code> Then the ROHC library is not installed at all or not installed in a standard location. Either install it, or specify the correct location with the //PKG_CONFIG_PATH// environment variable:<code> $ PKG_CONFIG_PATH=/path/to/your/directory/lib/pkgconfig/ cmake CMakeLists.txt</code> ==== ROHC library too old ==== If //cmake// stops with the following error:<code> -- Looking for rohc_compress2 in rohc_comp -- Looking for rohc_compress2 in rohc_comp - not found CMake Error at common/FindROHC.cmake:41 (message): rohc_compress2() not available in the ROHC library, please upgrade to 1.6.0 or greater Call Stack (most recent call first): common/CMakeLists.txt:6 (find_package) -- Configuring incomplete, errors occurred!</code> Then the installed ROHC library is too old. Please update it with a newer version. ==== Errors related to netlink ==== If you get errors related to netlink you need to install the development version of the iproute library. On [[wp>Fedora_(operating_system)|Fedora]], [[wp>Red_Hat_Enterprise_Linux|RedHat Entreprise Linux (RHEL)]], or any [[https://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux#Rebuilds|RHEL-based distributions]] please run:<code> # yum install iproute-devel </code> On [[wp>Debian]], please run:<code> # apt-get iproute-dev </code> ==== Missing yaml and GnuTLS headers ==== On some systems, it is not enough to install the ''yaml'' and ''libgnutls'' packages. You need the related development packages. They might be named ''yaml-dev'' and ''libgntls-dev''.