Installing extra modules in PHP 7.3 in Codebuild

0

We are attempting to install an extra module into PHP however getting an error when we enable amazon linux extras:

From the build log:

Running command /usr/bin/amazon-linux-extras enable php7.3 
/usr/local/bin/python: No module named amazon_linux_extras

Relevent section of Buildspec (in the install phase):

    commands:
      - php -v
      - yum -y install amazon-linux-extras yum-utils python-boto
      - /usr/bin/amazon-linux-extras enable php7.3
      - yum install -y php-mcrypt 

What are we missing????

jorgr
asked 5 years ago1053 views
3 Answers
0

Hi jorgr,

We do not add amazon-linux-extras as a module for Python 3. You can copy this module from
Python 2 to Python 3 by using the following command:

cp -r /lib/python2.7/site-packages/amazon_linux_extras /usr/local/lib/python3.7/site-packages

Best,
Zhen

AWS
Zhen Li
answered 5 years ago
0

Correct command to copy the module would be:

cp -r /usr/lib/python2.7/site-packages/amazon_linux_extras /usr/local/python37/lib/python3.7/site-packages
answered 4 years ago
0

As noted in another reply, amazon-linux-extras is only available under python 2. Python 2 is officially sunsetted. Now that python defaults to python3 in Amazon Linux 2, this has broken amazon-linux-extras and AWS should address the issue.

After inspecting the script amazon-linux-extras, I saw that if the variable PYTHON is not defined, it uses python by default. To work around, rather than copying any files, we can simply tell it to use python 2:

PYTHON=python2 amazon-linux-extras enable <package-name>
answered 4 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions