Recently I ran into a problem while setting up an application on my local machine with composer install. The problem ?
composer installLoading composer repositories with package informationInstalling dependencies (including require-dev) from lock fileYour requirements could not be resolved to an installable set of packages.
Problem 1 - Installation request for php-amqplib/php-amqplib v2.7.2 -> satisfiable by php-amqplib/php-amqplib[v2.7.2]. - php-amqplib/php-amqplib v2.7.2 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system. Problem 2 - php-amqplib/php-amqplib v2.7.2 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system. - php-amqplib/rabbitmq-bundle v1.14.2 requires php-amqplib/php-amqplib ^2.6 -> satisfiable by php-amqplib/php-amqplib[v2.7.2]. - Installation request for php-amqplib/rabbitmq-bundle v1.14.2 -> satisfiable by php-amqplib/rabbitmq-bundle[v1.14.2].
To enable extensions, verify that they are enabled in your .ini files: - /etc/php/7.2/cli/php.ini...This was a fairly common problem recently, I faced this while running composer, so finally I decided to figure out what exactly was the issue. I am running php7.2 on Ubuntu 19.10 and I actually downgrade it from php7.3 because of some apps i have been working on were not really doing well with 7.3 and It was not my choice to upgrade them, open source things may take sweet time to move. Anyhow, I decided to check what was the issue and first instinct was to install it simply using install command.
sudo apt-get install php7.2-bcmathand crash.. what i got was something weird..
sudo apt install php7.2-bcmathReading package lists... DoneBuilding dependency treeReading state information... DoneE: Unable to locate package php7.2-bcmathE: Couldn't find any package by glob 'php7.2-bcmath'E: Couldn't find any package by regex 'php7.2-bcmath'My next move to see if the extension exists in the apt cache and perhaps i can see which version so I ran following command with result:
apt-cache search php | grep bcmathphp-bcmath - Bcmath module for PHP [default]php7.3-bcmath - Bcmath module for PHPSo, it exists but not for 7.2 so what do I do ?
I googled and came across several posts telling me to run apt for 7.2 but what do I do if it doesn’t exists with that version. So here is how i solved it. I decided to add repository for php 7.2 and then try again. And as you can see the result below:
sudo apt-get install software-properties-commonsudo add-apt-repository ppa:ondrej/phpsudo apt-get updatesudo apt-get install php7.2-bcmathReading package lists... DoneBuilding dependency treeReading state information... DoneThe following additional packages will be installed: libapache2-mod-php7.2 libpcre3 php7.2-bz2 php7.2-cli php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-mysql php7.2-opcache php7.2-readline php7.2-xml php7.2-zipThe following NEW packages will be installed: php7.2-bcmathThe following packages will be upgraded: libapache2-mod-php7.2 libpcre3 php7.2-bz2 php7.2-cli php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-mysql php7.2-opcache php7.2-readline php7.2-xml php7.2-zip14 upgraded, 1 newly installed, 0 to remove and 102 not upgraded.Need to get 5,004 kB of archives.After this operation, 109 kB of additional disk space will be used.Do you want to continue? [Y/n] ySo I just wanted to share the result because there were lot of repetitive answers all over stack overflow and google but I had to compile a common result for myself after trying out everything. I am putting it out there in hope that it will help someone.