Explain How To Maintain A Compiled From Source Asterisk Instance ?

Home » Asterisk Users » Explain How To Maintain A Compiled From Source Asterisk Instance ?
Asterisk Users 2 Comments

Hello,

When compiling Asterisk from source, the classical ./configure, make and make install commands are issued.

If a vulnerabilty is found within Asterisk code, then Asterisk source code is patched and depending on what files were touched parts or all of above commands need to be re-issued.

What should be done for Asterisk runtime dependencies ?

Which of the following sentences is or are correct ?

1. All Asterisk runtime dependencies are delivered as .so files. Is this correct ?
2. I don’t need to re-configure, re-compile or even re-start asterisk when a such .so file is updated
3. Script install_prereq gives an approximate list of both build and runtime dependencies.

Best regards

2 thoughts on - Explain How To Maintain A Compiled From Source Asterisk Instance ?

  • Generally, yes but not delivered by the Asterisk team of course. There may be exceptions such as libsrtp. Some older distributions only provide an outdated version so we recommend that you compile and install it yourself from source.

    This really depends on the nature of the change. Generally you don’t need to re-configure or re-compile but if the dependent library changed some public API that clients like us rely on, asterisk may behave very badly if if the steps aren’t re-run. As for re-start, you do need to re-start. The operating system takes care of loading dependent libraries that aren’t actually asterisk modules and they are usually held in memory until the process using them ends. If they weren’t and you did a package update to replace a shared library, every process using it would crash.

    True.

  • In standard Linux distributions, yes.

    Hopefully, not reconfigure / recompile. Generally on properly-maintained distributions those libraries will change their name (SONAME) if they have non backward-compatible changes. In such a case you need to rebuild. This is why there’s a number after the .so .

    As mentioned before, you need to restart, because otherwise you still use the original version of the library.