Собираем rTorrent из исходников
При установке rTorrent из репозитария мы получаем очень старую версию. И все бы ничего, но библиотека xmlrpc-c, тоже очень древняя и как в следствие мы получаем урезанное Gui управление. Например в моем любимом ruTorrent невозможно даже управлять скоростью закачки. Так же с rTorrent бывают проблемы на некоторых трекерах, хотя может все дело в конфиге , так что последняя сборка нам не помешает!
Появилась более свежая и полная статья!
Ничего военного в компиляции нету, но все же лучше потренироваться где нить на виртуальной машине
План прост как никогда, мы ставим xmlrpc-c. Потом libtorrent. Ну и на закуску нашего клиента с поддержкой xmlrpc . Исходники будем забирать по SVN. Это удобно и так будет легко следить за последними билдами.
Нам потребуется следуюшее, тут много чего но может не все. При сборке должно будет высветиться нужные еше пакеты.
sudo apt-get install checkinstall subversion build-essential make autoconf autotools-dev automake libtool libcurl4-openssl-dev libsigc++-2.0-dev pkg-config libncurses5-dev
Теперь нам надо удалить старые установленные пакеты, если они есть.
sudo apt-get remove rtorrent libtorrent11 libxmlrpc-c3 libxmlrpc-c3-dev libxmlrpc-core-c3 libxmlrpc-core-c3-dev
Небольшое отступление. Наверное все слышали про make install, но этот способ далек от идеала. Система не знает о программе, бинарники валяются где им хочется и главное их потом сложно удалить. Для этого придумали такую штуку как checkinstall. Она собирает нормальный deb пакет, привычный для системы. Я буду пользоваться этим способом. Но так же можно и старым.
В последних версиях svn твориться какая-то фигня, а ruTorrent 3.0 поддерживае rTorrent до 1148 билда (это ‘-r1148′ ключ к svn). Так что я приведу еше рабочие строчки для сборки из заархивированных пакетов с сайта. Проверено на Ubuntu Server 10.04 beta1.
svn co https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd xmlrpc-c
./configure--prefix=/usr
make
sudo checkinstall-D
cd ..
# svn co svn://rakshasa.no/libtorrent/trunk
# cd trunk
# cd libtorrent
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz
tar zxfv libtorrent-0.12.6.tar.gz
cd libtorrent-0.12.6
./autogen.sh
./configure--prefix=/usr
make
sudo checkinstall-D
# cd ../rtorrent
cd ..
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.6.tar.gz
tar zxfv rtorrent-0.8.6.tar.gz
cd rtorrent-0.8.6
./autogen.sh
./configure--with-xmlrpc-c--prefix=/usr
make
sudo checkinstall-D
Вот в общем и все, теперь настраивать сам клиент кликаем
Статья написана по мотивам темы на форуме и Этой статьи, спасибо ее Автору за сборку xmlrpc




svn co https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd xmlrpc-c
./configure —prefix=/usr
make
sudo checkinstall -D
заканчивается с ошибкой создания пакета по причине отсутствия версии. че делать?
Во первых, у prefix два тире. (или это опять бага с html текстом?)
А во вторых, Когда создается пакет, он предлагает вбить имя, описание, версию и др. Вы установили там версию пакета? Можно вбить например номер билда 1822
И скопируйте пожалуйста ошибку на англ.
при чекинстале,когда попросят нажми 3 и укажи версию,ошибко исчезнет:)
Например:
Этот пакет был создан с использованием данных значений:
0 — Maintainer: [ root@myhost-desktop ]
1 — Summary: [ Package created with checkinstall 1.6.1 ]
2 — Name: [ rtorrent ]
3 — Version: [ ]
4 — Release: [ 1 ]
5 — License: [ GPL ]
6 — Group: [ checkinstall ]
7 — Architecture: [ i386 ]
8 — Source location: [ rtorrent ]
9 — Alternate source location: [ ]
10 — Requires: [ ]
11 — Provides: [ rtorrent ]
с ./configure —prefix=/usr —with-xmlrpc-c пилиться будет. У вас похоже ошибка
Я извиняюсь, что будет? пилиться?!
Большое спасибо за инструкцию. Мне, как новичку, очень помогла сделать всё быстро и просто. Всё теперь в rTorrent нет проблем с размерами файлами и т.п.
Хотел бы только поделиться теми камнями, которые мне попались на пути:
1. Ошибка с неудовлетворёнными зависимостями при установке libcurl4-openssl-dev.
Достаточно просто удалить libcurl3:
apt-get remove libcurl3
2. Неизвестный макрос AM_PATH_CPPUNIT при сборке libtorrent.
Достаточно просто установить cppunit:
apt-get install libcppunit-dev
3. На libtorrent.rakshasa.no лежат более позднии версии пакетов, чем в статье — но они сырые и не совместимы с ruTorrent, потому могут падать при его использовании.
Надеюсь эта информация кому-нибудь поможет
Swo-pc:~/svn_rtorrent/trunk/libtorrent/libtorrent-0.12.7$ sudo checkinstall -D
checkinstall 1.6.2,
0 — Maintainer: [ root@Swo-pc ]
1 — Summary: [ libtor0127 ]
2 — Name: [ libtorrent ]
3 — Version: [ 0.12.7 ]
4 — Release: [ 1 ]
5 — License: [ GPL ]
6 — Group: [ checkinstall ]
7 — Architecture: [ amd64 ]
8 — Source location: [ libtorrent-0.12.7 ]
9 — Alternate source location: [ ]
10 — Requires: [ ]
11 — Provides: [ libtorrent ]
12 — Conflicts: [ ]
13 — Replaces: [ ]
Введите номер для изменения параметра или нажмите ВВОД для продолжения:
Installing with make install…
========================= Результаты установки ===========================
Making install in src
make[1]: Вход в каталог `/home/dmitry/svn_rtorrent/trunk/libtorrent/libtorrent-0.12.7/src’
Making install in torrent
make[2]: Вход в каталог `/home/dmitry/svn_rtorrent/trunk/libtorrent/libtorrent-0.12.7/src/torrent’
Making install in data
make[3]: Вход в каталог `/home/dmitry/svn_rtorrent/trunk/libtorrent/libtorrent-0.12.7/src/torrent/data’
make[4]: Вход в каталог `/home/dmitry/svn_rtorrent/trunk/libtorrent/libtorrent-0.12.7/src/torrent/data’
make[4]: Цель `install-exec-am’ не требует выполнения команд.
test -z «/usr/include/torrent/data» || /bin/mkdir -p «/usr/include/torrent/data»
/bin/mkdir: невозможно создать каталог «/usr/include/torrent»: Нет такого файла или каталога
make[4]: *** [install-libtorrentincludeHEADERS] Ошибка 1
make[4]: Выход из каталога `/home/dmitry/svn_rtorrent/trunk/libtorrent/libtorrent-0.12.7/src/torrent/data’
make[3]: *** [install-am] Ошибка 2
make[3]: Выход из каталога `/home/dmitry/svn_rtorrent/trunk/libtorrent/libtorrent-0.12.7/src/torrent/data’
make[2]: *** [install-recursive] Ошибка 1
make[2]: Выход из каталога `/home/dmitry/svn_rtorrent/trunk/libtorrent/libtorrent-0.12.7/src/torrent’
make[1]: *** [install-recursive] Ошибка 1
make[1]: Выход из каталога `/home/dmitry/svn_rtorrent/trunk/libtorrent/libtorrent-0.12.7/src’
make: *** [install-recursive] Ошибка 1
**** Установка неудачна. Отменяется создание пакета.
Очищается…OK
Удачи.
В чём может быть проблема
и верси 0,12,6 с такой же ошибкой вылетает
Ухх, не обязательно весь вывод копировать в коммент((
Какой у вас дистрибутив? SVN лучше не трогать.
@Admin
ubuntu 10.10 я инстулин не из свн а
качал
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.7.tar.gz
и распаковывал просто в папу svn_rtorrent
@Admin
зм странно написал sudo make install закомпилися
после sudo checkinstall -D сосбрал деб пакет и установился %)
@Dmitry
Вы не верите в магию ?! Тогда мы идем к вам
@Admin
не не верю, хоть и поставился и запускается, всё равно при доступе через веб интерфейс руторент падает с такими словама
Caught Segmentation fault, dumping stack:
0 rtorrent() [0x40e0f5]
1 rtorrent() [0x437437]
2 /lib/libc.so.6(+0x33c20) [0x7f46fb52ec20]
3 /lib/libpthread.so.0(pthread_kill+0) [0x7f46fb2eacd0]
4 rtorrent() [0x437615]
5 rtorrent() [0x4c2110]
6 rtorrent() [0x4c34cb]
7 /usr/lib/libtorrent.so.13(_ZN7torrent9PollEPoll7performEv+0xd9) [0x7f46fca9a299]
8 rtorrent() [0x437952]
9 /lib/libpthread.so.0(+0×7971) [0x7f46fb2e5971]
10 /lib/libc.so.6(clone+0x6d) [0x7f46fb5e192d]
Аварийный останов
он ещё вот такую штуку пишет когда запускаешь просто из консоли
14:46:48) Using ‘epoll’ based polling.
(14:46:48) Using ‘epoll’ based polling.
(14:46:48) XMLRPC initialized with 831 functions.
(14:46:48) The SCGI socket is bound to a specific network device yet may still p
ose a security risk, consider using ‘scgi_local’.
Вопрос что за Веб интерфейс, если ruTorrent, то какая связка с rtorrent используется? И неплохо бы увидеть .rtorrent.rc scgi_port параметр. Еше можете глянуть вот это http://forum.ubuntu.ru/index.php?topic=70377.msg529862#msg529862
@Admin
да в общем то вот весь конфиг
# Диапазон рабочих портов torrent клиента.
# Если вы за NAT не забываем «пробросить» порты
port_range = 32001-32049
port_random = no
check_hash = no
# Включаем DHT
dht = auto
# UDP порт для DHT
dht_port = 32000
# Обмен пирами
peer_exchange = yes
# Использовать ли UDP трекеры
use_udp_trackers = yes
# Директория в которую по-умолчанию будут загружаться файлы
directory = /home/dmitry/torrents
# Глобальные ограничения по скорости
upload_rate = 800
download_rate = 800
# Директория для записи сессий rTorrent
session = /home/dmitry/torrents/.rtsession
# Задаем настройки для rpc управления
scgi_port = 127.0.0.1:5000
#session_save = yes
encoding_list=UTF-8
# Max number of files to keep open simultaniously.
# max_open_files = 128
# schedule = watch_directory,10,10,load_start=/home/dmitry/torrents/watch/*.torrent
в /etc/apache2/httpd.conf
прописал
SCGIMount /RPC2 127.0.0.1:5000
удалил всё включая апачи и пхп и поставил заново, скомпили, всё заработало но компили уже не libtorrent-0.12.7.tar.gz rtorrent-0.8.7.tar.gz а libtorrent-0.12.6.tar.gz rtorrent-0.8.6.tar.gz
и всё завелось…
Ну тоже хорошо. Интересно что за билд в 0.12.7…
@Admin
а не подскажешь, можно ли как-то добаить торент на скачавание не через папку слежения?
а непремую что-то типо rtorrent my.torrnet ~/myFolder ??
Нет, нельзя. Самое простое решение, написать скрипт что бы закидывал в папку слежения.
Есть еше посложнее. Написать python скрипт добавления файла через XML-RPC, тогда еще можно и имя и директорию закачки указать.
Подскажите пож… При установке выдаёт
E: Sub-process /usr/bin/dpkg returned an error code (1)
что из репазитория что через терминал одно и тоже как поставить?
Некое решение проблемы ошибки описано тут, http://tuksik.ru/sub-process/ Только не забудьте свой пакет подставить.