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:
1 | accel-cmd -V |
Make a copy of the dictionary, if you previously made your own changes to it:
1 | 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:
1 2 3 | [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:
1 | 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):
1 | mv /opt/accel-ppp-code /opt/accel-ppp-code_old |
Download the new source code accel-ppp:
1 2 | 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:
1 2 | 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:
1 2 | top systemctl stop systemd-resolved |
We are waiting for the completion of the sessions.
In extreme cases, you can stop like this:
1 2 | service accel-ppp stop killall -9 accel-pppd |
Unload modules:
1 2 | 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):
1 2 | ip a | grep ipoe ifconfig | grep ipoe |
If accel-ppp will be installed in another directory, then delete the old files:
1 2 3 4 | 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:
1 2 3 4 5 6 7 8 | 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:
1 | mv /usr/local/share/accel-ppp/radius/dictionary_copy /usr/local/share/accel-ppp/radius/dictionary |
Run accel-ppp:
1 2 3 4 5 | 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:
1 | accel-cmd -V |
Make sure the modules are compiled for the current kernel version:
1 2 3 | 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)