Как обновить accel-ppp

Приведу пример обновления accel-ppp, команды нужно выполнять от root пользователя.

Сначала посмотрим текущую версию accel-ppp:

accel-cmd -V

Сделаем копию словаря, если ранее вносили в него свои изменения:

cp /usr/local/share/accel-ppp/radius/dictionary /usr/local/share/accel-ppp/radius/dictionary_copy

Либо укажем в конфигурации путь к своему словарю и обязательно укажем стандартный словарь:

[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
dictionary=/etc/accel-ppp.dictionary

Файл /etc/accel-ppp.conf после сборки accel-ppp обычно остается не тронутым, но на всякий случай сделаем резервную копию:

cp /etc/accel-ppp.conf /etc/accel-ppp_`date +%Y-%m-%d`_backup.conf

Переименуем директорию со старым исходным кодом accel-ppp (может еще пригодится):

mv /opt/accel-ppp-code /opt/accel-ppp-code_old

Скачаем новый исходный код accel-ppp:

cd /opt/
git clone git://git.code.sf.net/p/accel-ppp/code accel-ppp-code

Если будем останавливать accel-ppp и используется какой-нибудь watchdog, то закомментируем или отключим его чтоб он не выполнил запуск.

Остановим accel-ppp:

telnet 127.0.0.1 2000
shutdown hard

Замечал в Ubuntu, что systemd-resolved может тормозить завершение сессий, по этому остановим его:

top
systemctl stop systemd-resolved

Ждем завершения сессий.
В крайнем случае можно остановить так:

service accel-ppp stop
killall -9 accel-pppd

Выгрузим модули:

modprobe -r ipoe
modprobe -r vlan_mon

Убедимся что не остались ipoe интерфейсы (при выключении accel-ppp, даже при kill, их не должно быть):

ip a | grep ipoe
ifconfig | grep ipoe

Если accel-ppp будет устанавливаться в другую директорию, то удалим старые файлы:

which accel-pppd
which accel-cmd
find / -name ipoe.ko
rm /dir/file

Можно также выполнить обновление при работающем accel-ppp, а потом все перезагрузить.

Продолжим установку как я описывал в этой статье — Сборка и установка accel-ppp

Можно посмотреть дату некоторых файлов, чтобы убедится что accel-ppp установился:

ls -lah /usr/local/share/accel-ppp/radius/dictionary
ls -lah /usr/share/accel-ppp/radius/dictionary
ls -lah /usr/local/share/accel-ppp/radius/
ls -lah /usr/local/bin/accel-cmd
ls -lah /usr/local/sbin/accel-pppd
ls -lah /usr/local/lib64/accel-ppp/
ls -lah /lib/modules/`uname -r`/kernel/net/ipoe.ko
ls -lah /lib/modules/`uname -r`/kernel/net/vlan_mon.ko

После успешной установки новой версии accel-ppp загрузим модули и вернем словарь:

mv /usr/local/share/accel-ppp/radius/dictionary_copy /usr/local/share/accel-ppp/radius/dictionary

Запустим accel-ppp:

modprobe ipoe
modprobe vlan_mon
sudo chmod +x /etc/init.d/accel-ppp
systemctl daemon-reload
systemctl start accel-ppp.service

Проверим текущую версию:

accel-cmd -V

Убедимся что модули собраны под текущую версию ядра:

uname -a
modinfo ipoe
modinfo vlan_mon

Готово.

Хочу заметить что в новых версиях acel-ppp используются новые версии библиотек, которые например новее тех что в Ubuntu 16, из-за чего могут быть проблемы, поэтому рекомендую устанавливать acel-ppp на новых операционных системах, на старых системах можно попробовать из исходников (не пакетом).

Смотрите также мою статью:
Резервирование accel-ppp

Оставьте комментарий

Добавить комментарий