Illumian is the successor to the open source Nexenta Core Platform. It’s an operating system that combines the power of OpenSolaris with the ease of Debian/Ubuntu’s Avanced Packaging Tool (apt).
I used to use NCP, but hadn’t messed with it in a long time. I’m trying out Illumian, and one of the things I need is a torrent client. The excellent rTorrent client is perfect for a bare-bones server. It took several hours to figure out how to get rTorrent built and running on Illumian. Now, I present the instructions to the web at large in hopes that others can make use of them.
This guide is divided into the following steps.
- Install Dependencies
- Download Files/Patches
- Install libsigc++
- Install CPPUnit
- Prepare Environment
- Install libTorrent
- Install rTorrent
Note on formatting: Due to the blog’s style, some of the lines in the preformatted text blocks are chopped off. In order to get these lines, you can just triple click to highlight the entire line. Then just copy + paste it.
We need a number of programs and dependencies from the Illumian apt repositories. Note the \ at the end of each line, indicating that this is a single line to be pasted into bash.
sudo apt-get install system-header developer-build-autoconf text-gnu-patch \ developer-build-make developer-build-gnu-make \ developer-build-automake-110 developer-build-libtool \ developer-build-autoconf text-gnu-patch \ developer-gcc-44 system-library-math-header-math
Note: We must use GCC 4.4, as 4.5 and 4.6 seem to be missing bootstrap libraries (ctr1.o, etc).
Several dependencies will be coming from OpenCSW’s pkgutil because the Illumian repositories are either missing these dependencies, or they don’t work correctly. We need to install pkgutil and download some more dependencies.
# pkgadd -d http://get.opencsw.org/now # pkgutil -y -i pkgconfig openssl xmlrpc_c libcurl_dev libncurses_dev
The path must be set properly as well:
Now, to download all of the files. We have to download some final dependencies, as well as libTorrent and rTorrent themselves.
Note: This article is written with specific versions of rTorrent, libTorrent, and their dependencies in mind. To get more up-to-date versions of the above files, visit the following sites:
- libsigc++: http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.2/
- cppunit: http://sourceforge.net/projects/cppunit/files/cppunit/
- libTorrent & rTorrent: http://libtorrent.rakshasa.no/downloads/
We will also need the Solaris-specific patches for these dependencies. They are available as a download. They can also be downloaded individually (see Sources at the bottom). The patches will need to be extracted.
tar xvf rtorrent-solaris-patches.tar
First, libsigc++ must be installed. This is a dependency required by rTorrent. OpenCSW has the current version of this library, but rTorrent does not seem to like it.
tar xjvf libsigc++-2.2.10 cd libsigc++-2.2.10/ ./configure --prefix=/opt/csw make sudo make install
CPPUnit is a unit testing framework that is apparently required to build libTorrent (and probably rTorrent). To install it, follow these steps.
tar zxvf cppunit-1.12.1 cd cppunit-1.12.1/ cp ../rtorrent-solaris-patches/cppunit.patch . patch -p1 < cppunit.patch ./configure --prefix=/opt/csw make sudo make install
Set Up Environment
We must prepare the shell environment for building libTorrent and rTorrent. This will force the build process to use the OpenCSW and locally-installed dependencies, as well as the GNU linker, which are all required for building.
export ACLOCAL_FLAGS="-I /usr/local/share/aclocal" export PKG_CONFIG_PATH=/opt/csw/lib/pkgconfig/:/usr/local/lib/pkgconfig/:/usr/lib/pkgconfig/ export LD_LIBRARY_PATH=/opt/csw/lib:/usr/local/lib/:/usr/lib/ export LD_ALTEXEC=/opt/csw/bin/gld
Next, we build and install libTorrent.
export CFLAGS="-std=c99" tar zxvf libtorrent-0.12.9.tar.gz cd libtorrent-0.12.9/ cp ../rtorrent-solaris-patches/libtorrent.patch . patch -p1 < libtorrent.patch ./configure --prefix=/opt/csw make sudo make install
Finally, we can install rTorrent.
tar zxvf rtorrent-0.8.9.tar.gz cd rtorrent-0.8.9/ export CPPFLAGS="-march=i686 -I /opt/csw/include -I /opt/csw/include/ncurses -I /usr/local/include" export LDFLAGS="-lncurses" cp ../rtorrent-solaris-patches/rtorrent.patch . patch -p1 < rtorrent.patch ./configure --prefix=/opt/csw --with-xmlrpc-c=/opt/csw/bin/xmlrpc-c-config make sudo make install
After building and installing rTorrent, it will be located at
/usr/local/bin/rtorrent. A sample config file (rtorrent.rc) will be located in the doc/ of the downloaded soure code. Consult the user guide and the Arch Wiki for information on creating a good .rtorrent.rc file.
This guide was compiled from a lot of my own trial and error, as well as help from these sources. The patches as well as a bit of extra helpful information came from these places.