Приведу пример обновления 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