Как скомпилировать rTorrent из SVN в Ubuntu 9.10 Karmic Koala / Debian 5 Lenny с поддержкой 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).
- Тем, кто готов собирать ПО из исходников и применять патчи.
Основные шаги (кратко)
- Удалить пакетный rtorrent.
- Установить зависимости.
- Скачать исходники из SVN.
- Скачть и применить патчи (magnet, цвет, tracker stats).
- Скомпилировать libtorrent и rtorrent.
- Обновить конфигурацию (~/.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 ~/rtorrent4. Перейти в каталог 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.patch9. Перейти в каталог libtorrent
cd libtorrentТекущая директория: /home/USER/rtorrent/trunk/libtorrent
10. Запуск autogen.sh для libtorrent
./autogen.sh11. Конфигурация libtorrent
./configureЕсли требуется задать нестандартные пути (например, если OpenSSL или другие зависимости установлены в нетипичной локации), добавьте параметры конфигурации. По умолчанию ./configure должен подхватить стандартные системные пути.
12. Сборка libtorrent
make13. Установка libtorrent
sudo make installВ Debian выполните от root.
14. Добавить /usr/local/lib в конфигурацию ld.so
echo "include /usr/local/lib" | sudo tee -a /etc/ld.so.conf15. Обновление кэша динамических библиотек
sudo ldconfig16. Перейти в каталог rtorrent
cd ../rtorrentТекущая директория: /home/USER/rtorrent/trunk/rtorrent
17. Запуск autogen.sh для rtorrent
./autogen.sh18. Конфигурация rtorrent
./configure19. Сборка rtorrent
make20. Установка rtorrent
sudo make install21. Настройка 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, настройте цветовую схему при необходимости.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента