In developer’s way

Артём Скорецкий / tonnzor about IT & Hi-Tech

Ubuntu HowTo: ставим aMuled (amule-daemon)

Всем хорош aMule — качает, ищет, клиентов фильтрует по IP, но вот проблема — он мало подходит для постоянного использования.

И вот почему:

  • Приходится вручную запускать при запуске системы — надоедает через 3 дня
  • Тратит слишком много ресурсов — тормозят программы, немного подвисает Gnome
  • Недостаточно стабильно работает — периодически подвисает, приходится перезапускать (вручную, разумеется)

К счастью, разработчики aMule обратили внимание на монстроидальность своего детища и решили разделить его на несколько компонентов:

  • amule — “монолитный” aMule — старый добрый aMule, включающий в себя как “движок” aMule, так и интерфейс управления им
  • amuled — сервер aMule (aMule daemon) — собственно “движок” aMule, без какого-либо интерфейса
  • amulecmd — текстовый клиент aMule — интерфейс управления сервером aMule через командную строку
  • amulegui — графический клиент aMule — интерфейс управления сервером aMule через графическую оболочку, почти идентичный “монолитному” aMule

Решение: вместо “монолита” нужно поставить сервер и клиент к нему. Постоянно будет запущен “лёгкий” сервер, а ресурсоёмкий клиент будет запускаться по необходимости. Стоит поставить оба клиента — графический заменит нам старый aMule, а текстовый поможет диагностировать ошибки.

Для начала убедимся, что репозиторий aMule прописан в списке репозитариев (/etc/apt/sources.list):

#### Amule cvs
deb http://www.vollstreckernet.de/debian/ stable amule

#### wxWidgets
deb http://apt.tt-solutions.com/ubuntu/ feisty main

Теперь можно ставить модули:

sudo aptitude install amule-daemon amule-cmd amule-remote-gui amule-i18n-ru

Запускаем демона с указанием пароля:

$ amuled --ec-config --even-if-lfroen-surreptitiously-removes-it-this-will-stay

amuled: OnInit - starting timer
Initialising aMule
Checking if there is an instance already running...
No other instances are running.

EC configuration
Enter password for mule connection: <вводим пароль>
Password set and external connections enabled.
HTTP download thread started
Loading temp files from /home/tonnzor/.aMule/Temp.
Loading PartFile 4 of 4
All PartFiles Loaded.
ListenSocket: Ok.

*** TCP socket (ECServer) listening on 0.0.0.0:4712
*** Server UDP socket (TCP+3) at 0.0.0.0:4665
*** TCP socket (TCP) listening on 0.0.0.0:4662
*** Client UDP socket (extended eMule) at 0.0.0.0:4672
<...>

Если вы видите эти строки — демон запустился нормально, можно переходить дальше.

Проверяем подключение — в отдельной консоли запускаем:

$ amulecmd -P <пароль>
This is amulecmd CVS Thu Aug 16 07:01:44 CEST 2007

Создается клиент...
Успешное подключение к aMule CVS

---------------------------------------
|          aMule text client          |
---------------------------------------

Введите 'Help' для получения списка команд

aMulecmd$ 

Поздравляю! Теперь вы в консоли aMule. Можете посмотреть текущий статус:

aMulecmd$ status

или список закачек:

aMulecmd$ show dl

или список всех доступных команд:

aMulecmd$ help

Теперь попробуем через GUI. Для этого запускаем Приложения -> Интернет -> aMuleGUI:

aMuleGUI

Вводим пароль — и оказываемся в консоли:

aMuleGUI

Как видим, всё как в привычном aMule.

Теперь нужно настроить aMule — указать пароль в конфиге и разрешить подключение консолей. Для этого находим соответствующие строки в ~/.aMule/amule.conf и меняем:

AcceptExternalConnections=1
ECPassword=5F4DCC3B5AA765D61D8327DEB882CF99

ECPassword — это MD5 хэш вашего пароля (в примере - “password”). Сгенерировать его проще простого — выполнить команду:

$ echo -n "<пароль>" | md5sum
f21ef21798b13f3da8165248510f3540  -

и в конце полученной строки обрезать пробелы и тире.

Для полного счастья осталось настроить автоматический запуск:

  • Читаем FAQ amuled
  • Делаем всё по инструкции — создаём скрипт, копируем, даём права, добавляем как сервис
  • Правим файл /etc/init.d/amuled — добавляем флаги --even-if-lfroen-surreptitiously-removes-it-this-will-stay — иначе запускаться не будет. Таким образом, нужно заменить обе строки:

    su "$USER" -c "$(printf "%q -f" "$DAEMON" )"
    

    на:

    su "$USER" -c "$(printf "%q -f --even-if-lfroen-surreptitiously-removes-it-this-will-stay" "$DAEMON" )"
    
  • Перезагружаемся — amuled должен быть запущен.

Результат: можно спокойно пользоваться:

  • Программа запускается самостоятельно
  • Система тормозит заметно меньше
  • Зависаний практически нет

Важно: версии клиента и сервера должны совпадать, поэтому при обновлении одного компонента обязательно обновляйте и другой. В противном случае работоспособность не гарантируется.

P.S. Если подключении к amuled возникла какая-то непонятная ошибка, попробуйте проверить пароль — возможно, ошибка в неправильно сгенерированом MD5 хэше или неправильно введёном пароле.

No comments yet. Be the first.

Leave a reply