Собираем rTorrent из исходников 2
В версиях Ubuntu до 10.10 включительно при установке rTorrent из оригинальных репозиториев, мы получаем весьма старую версию библиотек и саму программу, собранную без поддержки некоторых важных функций. Для корректной работы WebGUI, таких как ruTorrent, wTorrent и пр. необходимо обновить эти библиотеки и пересобрать rTorrent с поддержкой функций этой библиотеки.
Статья ориентирована на пользователей Ubuntu до версии 10.10 включительно.
Ничего особенно сложного в этом нет. План прост – собрать свежую версию библиотеки xmlrpc-c. Не ниже 1.11.0, на момент написания статьи – 1.16.38. А так же пересобрать libtorrent/rtorrent с поддержкой этой самой xmlrpc-c. Соберем deb-пакеты с помощью checkinstall. Это позволит нам в дальнейшем легко удалить их с помощью apt или aptitude.
Если в системе уже установлены старые версии – удаляем их:
sudo apt-get --purge remove libxmlrpc-core-c3 libxmlrpc-core-c3-dev libxmlrpc-c3 libxmlrpc-c3-dev libtorrent11 libtorrent11-dev rtorrent
Теперь устанавливаем необходимые для сборки пакеты:
sudo apt-get install build-essential checkinstall libcurl4-openssl-dev libncurses5-dev libncursesw5-dev libsigc++-2.0-dev libtool
Зависимости потянут за собой еще несколько связанных пакетов. Замечу что категорически рекомендуется помимо libncurses5-dev
ставить библиотеку libncursesw5-dev
, чтобы в rtorrent могли корректно отображаться пути, содержащие русские буквы.
Если планируется собирать из svn, то нужно доустановить еще несколько пакетов:
sudo apt-get install subversion autoconf automake
В системах контроля версий, в нашем случае svn, можно всегда забрать последние свежие версии – но новое не означает лучшее. Я предпочитаю собирать программы из tarball’ов. Это упакованные tar’ом исходные тексты стабильных версий.
Подготовка закончена, можно начинать. Создаем отдельную папку, где мы будем производить все манипуляции:
mkdir ~/src
cd ~/src
Стабильные версии xmlrpc-c всегда доступны на Sourceforge здесь. Скачиваем архив с исходниками: xmlrpc-c-1.16.38.tgz и переносим в рабочую папку. Можно приступать, выполняем в консоли:
tar xvzf xmlrpc-c-1.16.38.tgz
cd xmlrpc-c-1.16.38
./configure --prefix=/usr
make
checkinstall
Думаю стоит немного пояснить команды. Первой мы распаковываем архив с исходниками в рабочую папку. Третья – команда конфигурирования, проверяет наличие необходимых для сборки файлов и создает Make-файлы (правила для компиляции). Опция --prefix=/usr
указывает куда следует устанавливать скомпилированные файлы. По умолчанию они установятся в каталоги '/usr/local/bin' и '/usr/local/lib', что позволяет иметь одновременно и программу, установленную из репозиториев, и собственноручно собранную. В данном случае скомпилированные бинарники и библиотеки установятся в '/usr/bin' и '/usr/lib' соответственно. Четвертая - команда компиляции и пятая - запускает процесс сборки deb-пакета.
При создании пакета вас попросят добавить описание пакета - тут уж все на ваш вкус. Единственное может появиться ошибка несоответствия версии стандарта deb и версии из исходных текстов. Просто скопируйте версию вида x.x.x из названия tarball’а. В остальном ничего править не обязательно, поэтому смело нажимайте Enter.
Если вы используете svn необходимо вызвать ./autogen.sh
перед ./configure
при сборке libtorrent и rtorrent.
Теперь приступим к сборке libtorrent:
cd ~/src
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.9.tar.gz
tar xvzf libtorrent-0.12.9.tar.gz
cd libtorrent-0.12.9
./configure --prefix=/usr --with-posix-fallocate
make
checkinstall
Опция --with-posix-fallocate
позволяет избежать фрагментации скачиваемых торрентов путем выделения места на диске сразу под весь объем файла(ов). Что бы включить эту функцию в самой программе добавьте строчку system.file_allocate.set = yes
в конфигурационный файл.
Собираем rtorrent:
cd ~/src
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.9.tar.gz
tar xvzf rtorrent-0.8.9.tar.gz
cd rtorrent-0.8.9
./configure --prefix=/usr --with-xmlrpc-c
make
checkinstall
Все готово, теперь настраивать сам клиент кликаем
Статья предоставлена DelphiN91
, тема на ruTracker.org.
По любым проблемам и вопросам милости просим в комментарии.