2009-09-03

rTorrent побеждён?

Долго мучался с rtorrent.

Красивая (но несколько неудобная) вебмордочка ruTorrent (нагло взятая из uTorrent),
замучала своим 32-битным лимитом - отрицательными размерами файлов и прогнозами - и другими радостями.

Перспектива перехода на amd64 меня пока не устраивает. Хотя видимо когда-то придётся..
Но дело не в этом. Все проблемы с числами - от xmlrpc-c (libxmlrpc-c3).

Во все дистрибутивы упорно пихают клоны 1.06 (libxmlrpc-c3_1.06.21-1_i386.deb).
А поддержка 64-битных целых появилась только в 1.07.
Типы данных I8 вместо I4 - а rtorrent при сборке проверяет наличие макроса HAVE_I8 - и собирается или нет с его поддержкой.

Самостоятельно собрать эту библиотеку из их cvs не получалось. Уж и не помню почему.

Но вот тут недавно наткнулся на готовые пакеты в дебиане - и они поставились без проблем.
Были сборки для версии 1.16.07-1 (библиотека + dev).

Поставилось-обновилось всё на Ubuntu 8.04 без проблем :)
Осталось собрать apt-get -b source libtorrent rtorrent
Но не тут то было. Хоть и собирались (даже из jj 9.04) но глючили не по детски.
Штатная из 8.04 кривые названия файлов рисовала в консольном интерфейсе.
Та что из 9.04 не выходила по ctrl-q, высыпалась в segfault и имела проблемы с подключениями и анонсами с трекерами.

Те же проблемы и с deb взятыми из дебиана + ещё зависимости
от новых libc которые я удовлетворять не собирался.

Радикальное решение - сносим нафиг и пересобираем всё руками (заодно и ipv6 прикрутим).

# сносим
sudo apt-get remove rtorrent libtorrent libtorrent-dev
# получаем последнюю версию rторрента
svn co svn://rakshasa.no/libtorrent/trunk rtorrent
# собираем библиотеку
cd rtorrent/libtorrent
./autogen.sh
./configure --prefix=/usr --enable-ipv6
make
sudo make install
# собираем бинарник
cd ../rtorrent
./autogen.sh
./configure --prefix=/usr --enable-xmlrpc-c --enable-ipv6
make
sudo make install

Вот в общем то и всё.

Дальше лезем и "чистим" rtorrent-based сидбокс (bridge)
Естественно сносим libtorrent, rtorrent
Обновляем libxmlrpc-c3.
Возвращаемся в консольку yakuake где собирали rtorrent и засылаем плоды труда на сидбокс:
rsync -avze ssh /usr/lib/libtorrent* root@bridge:/usr/lib/
rsync -avze ssh /usr/bin/rtorrent root@bridge:/usr/bin/


Запускаем rtorrent на сидбоксе.
Радуемся отданным десяткам гигабайт видимых через веб.
Радуемся русским именам в консольном интерфейсе.
Радуемся работающим трекерам и ctrl-q.
Думаем как теперь проверить работоспособность ipv6 :)
И как теперь дыры искать..

PS:

Проблема ctrl-q оказывается давно описана.
Надо перед всплытием screen -r дать команду stty stop undef
Тогда всё работает. А трекеры вроде нормально живут..

PPS:

Для 10.04 всё те же проблемы с rtorrent и xmlrpc-c..

1 комментарий:

taz комментирует...

очень легко проверить, по нетстату. netstat -nlp

там сразу видно слушает ли или нет.

я ша пытаюсь заставить его работать на генте с ипв6. не хочет, суко :(