"Error 'Ramsey\Uuid\Exception\UnsatisfiedDependencyException' occurs during FreePBX installation after entering database details"

Description: During the installation of FreePBX 17, an error occurs after entering the database credentials. The error message indicates that the class Ramsey\Uuid\Exception\UnsatisfiedDependencyException cannot be found. This issue arises consistently when attempting to install FreePBX on an ARM64 architecture system using Asterisk 20.

Steps to Reproduce:

  1. Clone the FreePBX 17 repository:

git clone https://github.com/FreePBX/framework.git -b release/17.0

    • Compile and install Asterisk 20 from source.
    • Begin the FreePBX installation:

./install

  1. Follow the installation prompts until asked to enter database details.
  2. After submitting the database information, the installation fails with the mentioned error.

Expected Behavior: The installation should proceed without errors, properly initializing the database and continuing with the FreePBX setup.

Actual Behavior: The installation fails immediately after entering the database details, with the following error:

In FreePBX.class.php line 19:
Class "Ramsey\Uuid\Exception\UnsatisfiedDependencyException" not found

System Information:

  • Operating System: [e.g., Debian 12 ARM64]
  • Asterisk Version: 20.9.2
  • FreePBX Version: 17.0 (release/17.0 branch)
  • PHP Version: 8.2.22
  • Composer Version: 2.5.5

Greetings
Niclas

Is there a reason you are doing all this manually? FreePBX has an installation script that will do all of this for you automatically on a Debian 12 clean install.

That’s the reason.
I know the installation script for FreePBX. However, it gets stuck in the repositories because the “arm64” and “armhf” architectures are not included. This script is therefore ineffective and cannot be used.

Before we start a discussion about the why and the purpose of using RaspBerry Pi, I have been using it successfully as a telephone system for 4 years. And it is also my goal, as it is a very good alternative to the purchased solutions offered by telephone providers (e.g. Speedports, Zyxel, Fritzbox …).

I did try to manage the dependencies such as the Ramsey UUID library with the help of
sudo -u asterisk composer install --no-dev
But the “composer.json” file is missing in the Freepbx installation directory.

I had to compile Asterisk manually from source because pre-built packages are not available. So I chose to install FreePBX manually.

Unfortunately, I encountered the problem that the installation aborts with a Ramsey\Uuid\Exception\UnsatisfiedDependencyException error after entering the database details. Any advice that is specific to this architecture and installation path would be very helpful.

I took a look at the FreePBX.class.php file, where the error occurs, at the line in question:

/**
* Backwards compatibility for FreePBX 12 non namespaced
*/
class_alias('FreePBX\BMO', 'BMO');
class_alias('FreePBX\FreePBX_Helpers', 'FreePBX_Helpers');
class_alias('FreePBX\Request_Helper', 'Request_Helper');
class_alias('FreePBX\DB_Helper', 'DB_Helper');
class_alias('FreePBX\Freepbx_conf', 'Freepbx_conf');

class_alias('Ramsey\Uuid\Uuid', 'Rhumsaa\Uuid\Uuid');

Well, I want to install FreePBX 17. Why do I need backwards compatibility with version 12, which I don’t have anyway?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.