I will give an example of updating the accel-ppp, the commands need to be executed as root user.
First, see the current version of accel-ppp:
accel-cmd -V
Make a copy of the dictionary, if you previously made your own changes to it:
cp /usr/local/share/accel-ppp/radius/dictionary /usr/local/share/accel-ppp/radius/dictionary_copy
Or we will indicate in the configuration the path to our dictionary and be sure to indicate the standard dictionary:
[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
dictionary=/etc/accel-ppp.dictionary
The file /etc/accel-ppp.conf after accel-ppp is usually left untouched, but just in case we make a backup copy:
cp /etc/accel-ppp.conf /etc/accel-ppp_`date +%Y-%m-%d`_backup.conf
Rename the old source directory accel-ppp (it may still come in handy):
mv /opt/accel-ppp-code /opt/accel-ppp-code_old
Download the new source code accel-ppp:
cd /opt/
git clone git://git.code.sf.net/p/accel-ppp/code accel-ppp-code
If we stop accel-ppp and use a watchdog, we comment it out or turn it off so that it does not start.
Stop accel-ppp:
telnet 127.0.0.1 2000
shutdown hard
I noticed in Ubuntu that systemd-resolved can slow down the termination of sessions, so let’s stop it:
top
systemctl stop systemd-resolved
We are waiting for the completion of the sessions.
In extreme cases, you can stop like this:
service accel-ppp stop
killall -9 accel-pppd
Unload modules:
modprobe -r ipoe
modprobe -r vlan_mon
Make sure that there are no ipoe interfaces left (when accel-ppp is turned off, even with kill, they should not be):
ip a | grep ipoe
ifconfig | grep ipoe
If accel-ppp will be installed in another directory, then delete the old files:
which accel-pppd
which accel-cmd
find / -name ipoe.ko
rm /dir/file
You can also perform the update while accel-ppp is running, and then restart everything.
Continue the installation as I described in this article – Accel-ppp installation
You can look at the date of some files to make sure that accel-ppp is installed:
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
After successful installation of the new version of accel-ppp, we will load the modules and return the dictionary:
mv /usr/local/share/accel-ppp/radius/dictionary_copy /usr/local/share/accel-ppp/radius/dictionary
Run accel-ppp:
modprobe ipoe
modprobe vlan_mon
sudo chmod +x /etc/init.d/accel-ppp
systemctl daemon-reload
systemctl start accel-ppp.service
Check the current version:
accel-cmd -V
Make sure the modules are compiled for the current kernel version:
uname -a
modinfo ipoe
modinfo vlan_mon
Is done.
I would like to note that new versions of acel-ppp use new versions of libraries, which, for example, are newer than those in Ubuntu 16, which can cause problems, so I recommend installing acel-ppp on new operating systems, on older systems, you can try from source (not a package).
See also my article:
How to reserve accel-ppp (balancing)