Centos 7 with PHP 7.2 Pthreads unable to load redis.so - linux

I recently setup a new Centos 7 system with php 7.2 and Redis. This is working fine. This was my yum install of the php packages.
yum install php72.x86_64 php72-php-cli.x86_64 php72-php-common.x86_64 php72-php-devel.x86_64 php72-php-fpm.x86_64 php72-php-gd.x86_64 php72-php-json.x86_64 php72-php-mbstring.x86_64 php72-php-mysqlnd.x86_64 php72-php-pdo.x86_64 php72-php-pecl-http.x86_64 php72-php-pecl-http-devel.x86_64 php72-php-pecl-igbinary.x86_64 php72-php-pecl-memcached.x86_64 php72-php-pecl-msgpack.x86_64 php72-php-pecl-propro.x86_64 php72-php-pecl-raphf.x86_64 php72-php-xml.x86_64 php72-php-xmlrpc.x86_64 php72-runtime.x86_64 php72-php-pecl-redis.x86_64 php php-devel
Then I installed pthreads as explained in these directions at: https://gist.github.com/petronetto/b31838efc4a854d06ba5d1d9f3b9fec5 but I skipped the yum package install of the php 72 in the instructions.
Now when I check zts-php -i | grep -i thread I get the error, but zts-php otherwise works fine.
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/redis.so' (tried: /usr/lib64/php/modules/redis.so (/usr/lib64/php/modules/redis.so: undefined symbol: compiler_globals), /usr/lib64/php-zts/modules//usr/lib64/php/modules/redis.so.so (/usr/lib64/php-zts/modules//usr/lib64/php/modules/redis.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
I read I needed to install php-igbinary which I did, but it didn't solve the issue.
How do I solve the undefined symbol: compiler_globals issue?
This is similar to this questions asked: phprediss extension don't work,unable to load 'redis.so'

Update redis from 4.2 to 4.3 with pecl
# pecl install redis

Related

Error /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found

firstly, I google'd a lot but nothing I found related to my case, I have an ELF executable file I'm trying to run it in my Ubuntu WSL, I've changed the permissions (chmod +x file), when I run it, this error shows up
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by myFile)
and when I use ld command this shows up to me
myFile(.eh_frame); no .eh_frame_hdr table will be created
and when I tried to upgrade GLIBC it says it's up-do-date
Reading package lists... Done
Building dependency tree
Reading state information... Done
libc6 is already the newest version (2.31-0ubuntu9.7).
libc6 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 215 not upgraded.
and then I tried manually installing the deb file from https://packages.ubuntu.com/impish/amd64/libc6/download but this shows up to me :
dpkg: regarding libc6_2.34-0ubuntu3.2_amd64.deb containing libc6:amd64:
libc6:amd64 breaks fakeroot (<< 1.25.3-1.1ubuntu2~)
fakeroot (version 1.24-1) is present and installed.
dpkg: error processing archive libc6_2.34-0ubuntu3.2_amd64.deb (--install):
installing libc6:amd64 would break fakeroot, and
deconfiguration is not permitted (--auto-deconfigure might help)
Errors were encountered while processing:
libc6_2.34-0ubuntu3.2_amd64.deb
DISCLAIMER: I am not a linux professional, just found a way for my own problem with glibc not found error msg:
maybe you cannot use the binary since it was compiled with gcc-11 and your gcc version of your linux distribution and version only is gcc-9 and therefore only provides glibc_2.31 (I guess).
you can try to compile the program yourself from source. I had to do this with the new stockfish version 15, which also uses updated glibc_2.32/2.33/2.34 and my linux-mint does not provide that.
But compiling from source worked like a charm. Maybe this is an option for you.
I have some similar situation,
I copyed my executed file from a centos VM1 to another centos VM2,then I got the same question,I just copy the source code to VM2,and recompile it,then the question is solved.
I got a makefile and a shell script to compile it,so the compilation process is simple,update glibc may cause other problem and is more complicated,and i am a caiji,hope to help u
I've got this error with buildroot-2022.11 when executing make.
Ubuntu 20.04 - added this repo as described in the link
sudo apt update
sudo apt install libc6
It automatically installed 2.35 for me.

CentOS yum fails with libcurl.so.4 error saying 'undefined symbol: libssh2_agent_disconnect'

I am using CentOS 7 and tried to use yum but it failed.
Earlier, I installed curl and other things, but it looks like the libcurl is making an error.
Whenever I try:
# yum
The result is:
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
/lib64/libcurl.so.4: undefined symbol: libssh2_agent_disconnect
Please install a package which provides this module, or
verify that the module is installed correctly.
It's possible that the above module doesn't match the
current version of Python, which is:
2.7.5 (default, Apr 9 2019, 14:30:50)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
If you cannot solve this problem yourself, please go to
the yum faq at:
http://yum.baseurl.org/wiki/Faq
I tried removing the library, but it does not help.
Can anyone find the solution please?
The problem was a symbolic link issue.
The following commands solved it.
ldd -r /usr/lib64/libcurl.so.4
rm /usr/local/lib/libssh2.so.1
I looked if there is any broken symbolic link with the libcurl and I found one and removed it.

Shared libraries installing gnuplot5.2

I am trying installing gnuplot 5.2 on a Xubuntu 16.04 LTS amd64 machine.
Yesterday I successfully completed the task on another machine.
Today I followed the same protocol: installing some libraries for cairo, pango and libgd.
I then typed:
./configure --with-cairo --with-gd
make
make check
sudo make install
The installation failed. First make check did not provide the set of checking images and gnuplot command exit with the following error:
gnuplot: error while loading shared libraries: libwx_gtk2u_core-2.8.so.0: cannot open shared object file: No such file or directory
It tried installing libwx_gtk2u but the repositories install 3.0 version and the error still persists.
However ldd /usr/bin/gnuplot output the following line
libwx_gtk2u_core-3.0.so.0 => /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0
ldd do not output any line containing libwc_gtk2u_core-2.8
I am assuming some package (libwx2.8?) or some link is missed. Any hint?
Install libwxbase2.8-dev and libwxgtk2.8-dev.

Build mozilla JSS

I followed NSS build instructions and built NSS successfully.
Then I follow JSS build instructions and building fails with error:
In file included from CryptoManager.c:6:0:
../../../../dist/public/nss/secitem.h:15:21: fatal error: plarena.h: No such file or directory
compilation terminated.
This result is on Ubuntu 16.04 LTS.
On WIndows I get:
All directories (dist, jss, nspr and nss) are on the same level.
What am I doing wrong?
Check my post here. Basically it's due to missing packages. If not working, this file is somewhere under nspr. Copy it and place it beside the .c file which needs it.
EDIT:
To sum it up:
1. Install build-essential and gcc with g++.
2. Try to install zlib1g-dev and libc6-dev, if they are absent.
3. And, install zlib1g-dev.
4. cd into the nss directory, and run the build like this:
gmake nss_build_all NSS_SSL_ENABLE_ZLIB=
if you are under a x64 environment, add USE_64=1, too.
It should work.

BerkeleyDB version incompatible with BDB/HDB backends

I am using Ubuntu 14.4 LTS.
I am trying to install openldap 2.4.42.
I have succesfully installed the pre-requisite components :
Cyrus-sasl.2.1.24, krb5-1.13.2,openssl-0.9.8 and db-6.1.26
I was previously getting the following error when I was running ./configure :
configure: error: BDB/HDB: BerkeleyDB not available
I then ran the following command :
env CPPFLAGS="-I/usr/local/BerkeleyDB.6.1/include -I/usr/local/ssl/include/openssl" ./configure --with-tls --enable-slurpd --enable-crypt --enable-syslog --sysconfdir=/etc
Yet now I am getting :
configure: error: BerkeleyDB version incompatible with BDB/HDB backends
I am quite new and did a bit of research but I honestly don't understand the command I used nor what the error is actually pointing to.
Any assistance is welcome.
openldap-2.4.4 configure text file line 20387:
require 4.4 or later, but less than 6.0.20

Resources