Гид по технологиям

Как скомпилировать rTorrent из SVN в Ubuntu 9.10 Karmic Koala / Debian 5 Lenny с поддержкой Magnet-ссылок

• 7 min read • Руководство • Обновлено 23 Nov 2025
Компиляция rTorrent из SVN с поддержкой Magnet
Компиляция rTorrent из SVN с поддержкой Magnet

Автор: Stephan Jau
Ревизия: v1.2
Последнее изменение: 16 февраля 2010

Введение

rTorrent — лёгкий и мощный bittorrent-клиент для командной строки. В сочетании с SSH и программой screen он даёт полноценное управление торрентами без тяжёлого графического интерфейса. Недавно крупный трекер объявил, что будет поддерживать только magnet-ссылки; по умолчанию rtorrent таких ссылок не обрабатывает. Существуют экспериментальные патчи (автор патча — Josef), которые разбиты на несколько частей. Это руководство показывает, как скачать исходники из SVN, применить патчи (magnet, цвет, статистика трекера) и собрать rtorrent под Ubuntu 9.10 и Debian 5.

Важно: в этой инструкции предполагается, что вы работаете в каталоге ~/rtorrent (и далее в ~/rtorrent/trunk). В Debian команды с sudo выполняйте от root.

Кому пригодится эта инструкция

  • Системным администраторам и энтузиастам, желающим получить поддержку magnet-ссылок в rtorrent.
  • Тем, кто предпочитает минималистичный CLI-набор инструментов (SSH + screen).
  • Тем, кто готов собирать ПО из исходников и применять патчи.

Основные шаги (кратко)

  1. Удалить пакетный rtorrent.
  2. Установить зависимости.
  3. Скачать исходники из SVN.
  4. Скачть и применить патчи (magnet, цвет, tracker stats).
  5. Скомпилировать libtorrent и rtorrent.
  6. Обновить конфигурацию (~/.rtorrent.rc) и запустить.

Важно: перед началом сделайте резервную копию ~/.rtorrent.rc и остановите текущие инстансы rtorrent, если они запущены.

1. Удаление текущей установки rtorrent

Выполните:

sudo apt-get remove rtorrent libtorrent*

В Debian запустите аналогичную команду от root без sudo.

2. Установка необходимых пакетов

Установите инструменты сборки и зависимости:

sudo apt-get install subversion build-essential libtool automake openssl libsigc++-2.0-dev libncurses5-dev libcurl4-openssl-dev

В Debian — без sudo.

3. Создание каталога для исходников

mkdir ~/rtorrent

4. Перейти в каталог rtorrent

cd ~/rtorrent

Текущая директория: /home/USER/rtorrent

5. Получение исходников из SVN

svn co svn://rakshasa.no/libtorrent/trunk

Текущая версия rtorrent в примере: rev. 1105.

6. Перейти в trunk

cd trunk

Текущая директория: /home/USER/rtorrent/trunk

7. Скачивание патчей

Magnet-ссылки (патчи от Josef):

wget http://ovh.ttdpatch.net/~jdrexler/rt/experimental/dht-pex-static_map.diff
wget http://ovh.ttdpatch.net/~jdrexler/rt/experimental/magnet-uri.diff
wget http://ovh.ttdpatch.net/~jdrexler/rt/experimental/object-sstr.diff

Подробности разработки: http://libtorrent.rakshasa.no/ticket/1382

Цветовая поддержка для интерфейса rtorrent:

wget http://www.simplylinux.ch/rtorrent/canvas-color.patch

Если вы на rev. 1131, используйте обновлённый патч:

wget http://www.simplylinux.ch/rtorrent/canvas-color_1131.patch

Патч делает цветовую дифференциацию между завершёнными/незавершёнными и активными/неактивными торрентами. Источник патча указан в исходном тикете.

Статистика трекера (отображение seeders/leechers/completed в представлении трекера):

wget http://www.simplylinux.ch/rtorrent/trackerinfo.patch

Эти числа часто неточны, но полезны для быстрой оценки наличия пиров.

8. Применение патчей

Magnet-патчи:

patch -p0 < dht-pex-static_map.diff
patch -p0 < magnet-uri.diff
patch -p0 < object-sstr.diff

Если первый патч даёт ошибку вида:

patching file libtorrent/src/torrent/Makefile.am
Hunk #1 FAILED at 41.
Hunk #2 FAILED at 77.
2 out of 2 hunks FAILED -- saving rejects to file libtorrent/src/torrent/Makefile.am.rej

тогда скачайте и примените исправленный патч для ревизии 1117:

wget http://www.simplylinux.ch/rtorrent/dht-pex-static_map_rev1117.diff
patch -p0 < dht-pex-static_map_rev1117.diff

(Автор поясняет: Makefile.am был изменён, оригинальный патч Josefa не учитывал эти изменения.)

Цветовой патч:

patch -p0 < canvas-color.patch

Патч статистики трекера:

patch -p0 < trackerinfo.patch

9. Перейти в каталог libtorrent

cd libtorrent

Текущая директория: /home/USER/rtorrent/trunk/libtorrent

10. Запуск autogen.sh для libtorrent

./autogen.sh

11. Конфигурация libtorrent

./configure

Если требуется задать нестандартные пути (например, если OpenSSL или другие зависимости установлены в нетипичной локации), добавьте параметры конфигурации. По умолчанию ./configure должен подхватить стандартные системные пути.

12. Сборка libtorrent

make

13. Установка libtorrent

sudo make install

В Debian выполните от root.

14. Добавить /usr/local/lib в конфигурацию ld.so

echo "include /usr/local/lib" | sudo tee -a /etc/ld.so.conf

15. Обновление кэша динамических библиотек

sudo ldconfig

16. Перейти в каталог rtorrent

cd ../rtorrent

Текущая директория: /home/USER/rtorrent/trunk/rtorrent

17. Запуск autogen.sh для rtorrent

./autogen.sh

18. Конфигурация rtorrent

./configure

19. Сборка rtorrent

make

20. Установка rtorrent

sudo make install

21. Настройка rtorrent для поддержки Magnet и цветов

Поддержка magnet требует папки сессии. Если в ~/.rtorrent.rc нет параметра session или самого файла, добавьте его. Пример конфигурации можно взять здесь: http://libtorrent.rakshasa.no/browser/trunk/rtorrent/doc/rtorrent.rc#latest

Копирование дефолтной конфигурации из исходников:

cp ~/rtorrent/trunk/rtorrent/doc/rtorrent.rc ~/.rtorrent.rc

Для включения DHT (полезно для работы magnet) в ~/.rtorrent.rc установите опцию dht = on (или эквивалентную строку в конфиге).

Пример параметров для цветовой подсветки (canvas patch):

# Color / Canvas patch
done_fg_color = 2
#done_bg_color = 2
active_fg_color = 1
#active_bg_color = 4

Цвета: 0 = black; 1 = red; 2 = green; 3 = yellow; 4 = blue; 5 = magenta; 6 = cyan; 7 = white

22. Запуск rtorrent

rtorrent

Запустите в screen или tmux для долгих сессий и удалённого доступа.

Как использовать magnet-ссылки в rtorrent

В rtorrent нажмите Backspace или Enter и вставьте URL magnet. Разница: Backspace — автостарт торрента; Enter — только добавление в список без автоматического старта.

Автообработка magnet-ссылок из браузера: скрипт от Josef (сохраните как ~/rtorrent_magnet.sh и сделайте исполняемым):

#!/bin/bash
cd ~/watch    # set your watch directory here
[[ "$1" =~ xt=urn:btih:([^&/]+) ]] || exit;
echo "d10:magnet-uri${#1}:${1}e" > "meta-${BASH_REMATCH[1]}.torrent"

Настройте браузер, чтобы он открывал magnet-ссылки этим скриптом. Скрипт создаёт небольшой .torrent-файл в каталоге watch, который rtorrent может автоматически подхватить.

Когда это может не работать и возможные проблемы

  • Патчи несовместимы с текущей ревизией SVN — в таком случае появляются ошибки патча (FAILED hunks). Решение: поискать обновлённые патчи или откатиться к указанной ревизии.
  • Отсутствие нужных dev-пакетов ведёт к неуспешной конфигурации — проверьте вывод ./configure и установите недостающие lib*-dev-пакеты.
  • Проблемы с правами в ~/.rtorrent.rc или папке сессии; rtorrent не создаёт сессию — проверьте владельца и права.
  • Магнеты не качаются без включённой DHT — убедитесь, что DHT включён и сетевой доступ не блокируется firewall.

Альтернативные подходы

  • Использовать готовые бандлы/репозитории, если доступны, вместо компиляции. Это проще, но может не содержать патчей.
  • Переключиться на современный клиент с поддержкой magnet из коробки (qBittorrent, Transmission) — если GUI или дополнительные функции приемлемы.
  • Использовать контейнер (Docker) с заранее собранным rtorrent + libtorrent — удобно для изоляции и воспроизводимости.

Практическая модель принятия решения (heuristic)

  • Нужна поддержка magnet в CLI + низкая нагрузка на систему → компиляция с патчами.
  • Нужны графика и простота → выбрать GUI-клиент с native magnet.
  • Требуется повторяемость и лёгкий деплой → рассмотреть образ Docker.

Быстрый чек-лист (роль: админ)

  • Сделать резервные копии ~/.rtorrent.rc и текущих сессий.
  • Удалить пакетный rtorrent.
  • Установить зависимости.
  • Скачать исходники из SVN.
  • Скачть и применить патчи.
  • Скомпилировать и установить libtorrent, затем rtorrent.
  • Добавить /usr/local/lib в ld.so.conf и выполнить ldconfig.
  • Обновить ~/.rtorrent.rc (session, dht, цвета).
  • Запустить rtorrent в screen и проверить приём magnet-ссылок.

Критерии приёмки

  • rtorrent запускается без ошибок после make install.
  • При вставке magnet-ссылки torrent появляется в списке и начинает скачивание при использовании Backspace (если есть доступные пиры).
  • Цветовая схема применяется (если применён canvas patch).
  • libtorrent установлен и используется rtorrent (проверить ldd на бинарнике, при необходимости).

Факто-бокс

  • Целевая ОС: Ubuntu 9.10 Karmic Koala и Debian 5 Lenny.
  • Примерная ревизия исходников в тексте: rev. 1105; упоминается rev. 1117 и 1131 для совместимости патчей.
  • Патчи: magnet-uri.diff, dht-pex-static_map.diff, object-sstr.diff, canvas-color.patch, trackerinfo.patch.

Безопасность и приватность

  • Магнет-ссылки выявляют только информацию о торренте (info-hash); они не раскрывают содержимое.
  • Включение DHT может расширить круг пиров, что неплохо для доступности, но проверьте требования приватности вашего окружения.
  • Запуск rtorrent под непривилегированным пользователем с ограниченными правами и использование chroot/контейнера повышает безопасность.

Глоссарий (1 строка для каждого термина)

  • Magnet-ссылка: URL с info-hash, позволяющий найти .torrent через DHT/PEX без файла .torrent.
  • DHT: распределённый хеш-табличный механизм для поиска пиров.
  • PEX: peer exchange — обмен списками пиров между клиентами.
  • Patch: файл с изменениями кода, применяемый через patch.

Советы по отладке

  • Если ./configure не находит библиотеку, проверьте, установлен ли соответствующий -dev пакет.
  • При ошибках патча убедитесь в ревизии исходников или поищите исправления/альтернативные патчи в исходных обсуждениях.
  • Используйте strace/ldd для диагностики проблем с загрузкой библиотек.

Шаблон: минимальные строки для ~/.rtorrent.rc (начало)

# Пример минимальной конфигурации
session = ~/.rtorrent/session
directory = ~/downloads
port_range = 50000-50010
check_hash = yes
use_dht = yes
# Color / Canvas patch
done_fg_color = 2
active_fg_color = 1

Настройте пути и опции под свои нужды.

Заключение

С помощью этой инструкции вы сможете собрать rtorrent из SVN и добавить поддержку magnet-ссылок и цветового интерфейса. Если патчи устарели для вашей ревизии, ищите обновлённые версии в исходных репозиториях или используйте альтернативные подходы (готовые пакеты, Docker, современные клиенты). Сделайте резервные копии перед началом и тестируйте изменения в контролируемой среде.


Резюме:

  • Подготовьте систему, скачайте исходники и патчи.
  • Примените патчи и соберите libtorrent, затем rtorrent.
  • Обновите конфигурацию, включите DHT и session, настройте цветовую схему при необходимости.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро