How to install perl module on RHEL? - perl

I need to install perl-Expect, so, I executed:
# yum install -y perl-Expect
Error: Package: perl-Expect-1.21-14.el7.noarch (epel)
Requires: perl(IO::Pty) >= 1.03
Error: Package: perl-Expect-1.21-14.el7.noarch (epel)
Requires: perl(IO::Tty)
Okay, I need to install perl(IO::Pty)
I launched
# yum install -y "perl(IO::Pty)"
No package perl(IO::Pty) available.
Error: Nothing to do
So, how to install all required perl modules to the RHEL?

The perl-IO-Tty package is provided by the rhel-7-server-optional-rpms
repository. It looks like the Optional repository is not enabled on your system. This Stack Overflow answer explains how to do so:
subscription-manager repos --enable rhel-7-server-optional-rpms

You could try searching for the each piece of the package with: sudo yum search perl | grep IO | grep Pty
return: perl-IO-Pty-Easy.noarch : Easy interface to IO::Pty
But, I used your code, minus -y in CentOS 7, and found the following:
$ sudo yum install "perl(IO::Pty)"
Loaded plugins: fastestmirror, versionlock
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package perl-IO-Tty.x86_64 0:1.10-11.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================================================
Installing:
perl-IO-Tty x86_64 1.10-11.el7 CentOS-Cache 42 k
Transaction Summary
==============================================================================================================================================================================================
Install 1 Package
Total download size: 42 k
Installed size: 76 k
Is this ok [y/d/N]:
Make sure you have access to the default repositories and they are enabled...
Hope this helps,
Peter

Related

Where can i find gtkglextmm package for CentOS 8?

I'm looking for gtkglextmm, the gtk/gl C++ wrapper, for CentOS 8. On Ubuntu system, I know you can get it with sudo apt-get install libgtkglextmm-x11-1.2-dev but I can't find an equivalent package for yum.
I've tried grabbing the source and compiling that with ./configure then with make; make install, but I get an error saying
/usr/lib/libGL.so: could not read symbols: file in wrong format
I've always been weak with understanding compiler errors and how to fix them...
So, can someone either direct me to a precompiled rpm for gtkglextmm, or tell me what I need to do to compile the source?
Thanks!
/usr/lib/libGL.so: could not read symbols: file in wrong format
/usr/lib/libGL.so is a 32bit file: i686. (64bit libraries are in /usr/lib64/). Find package providing libGL.so: # dnf provides */libGL.so → # dnf install libglvnd-devel-1:1.3.2-1.el8.x86_64
Build example, gtkglextmm:
RHEL 8 is based on Fedora 28: Get the source package https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/source/tree/Packages/g/gtkglextmm-1.2.0-28.fc28.src.rpm .... to check what else "BuildRequires" is missing: # dnf builddep gtkglextmm-1.2.0-28.fc28.src.rpm.
Missing files from Fedora 28 https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/Packages/ : pangox-compat.x86_64, pangox-compat-devel.x86_64, etc.
# dnf install ./pangox-compat-*
# dnf install ./gtkglext-libs-1.2.0-32.fc28.x86_64.rpm
# dnf install ./gtkglext-devel-1.2.0-32.fc28.x86_64.rpm
Get other 'BuildRequires'
# dnf builddep gtkglextmm-1.2.0-28.fc28.src.rpm : Total package count installed for gtkglextmm, including the four "fc28" and their dependencies was 62 packages!
Install the SRPM to /home/name/rpmbuild/: $ rpm -Uvh gtkglextmm-1.2.0-28.fc28.src.rpm
Build gtkglextmm packages:
$ cd rpmbuild/SPECS/
$ rpmbuild -bb gtkglextmm.spec
.
Wrote: /home/knudfl/rpmbuild/RPMS/x86_64/gtkglextmm-1.2.0-28.el8.x86_64.rpm
Wrote: /home/knudfl/rpmbuild/RPMS/x86_64/gtkglextmm-devel-1.2.0-28.el8.x86_64.rpm
Wrote: /home/knudfl/rpmbuild/RPMS/x86_64/gtkglextmm-debugsource-1.2.0-28.el8.x86_64.rpm
Wrote: /home/knudfl/rpmbuild/RPMS/x86_64/gtkglextmm-debuginfo-1.2.0-28.el8.x86_64.rpm
... So then you can either install the new el8 packages, or the Fedora 28 packages gtkglextmm.x86_64, gtkglextmm-devel.x86.64 from
https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/Packages/g/

How to determine which version of a yum library is compatible with a specific version of a dependency that is already installed?

I am attempting to install the libcap-devel library via yum, and it looks like my company's yum repo only has libcap-devel-2.22-8.el7.x86_64, which requires glibc-common-2.17-105.el7.
Unfortunately, the glibc-common installed on my VM is glibc-common-2.17-222.el7.x86_64, and the installation fails.
I want to figure out how to determine which version of libcap-devel is compatible with glibc-common-2.17-222.el7.x86_64, and then ask the sysadmins to add this verion of libcap-devel to the yum repo (which I am not authorized to do) so that I can install it successfully. How do I do this?
Here is the output of yum install libcap-devel
Resolving Dependencies
--> Running transaction check
---> Package libcap-devel.x86_64 0:2.22-8.el7 will be installed
--> Processing Dependency: libcap = 2.22-8.el7 for package: libcap-devel-2.22-8.el7.x86_64
--> Running transaction check
---> Package libcap.i686 0:2.22-8.el7 will be installed
--> Processing Dependency: libattr.so.1 for package: libcap-2.22-8.el7.i686
--> Processing Dependency: libattr.so.1(ATTR_1.0) for package: libcap-2.22-8.el7.i686
--> Processing Dependency: libc.so.6(GLIBC_2.8) for package: libcap-2.22-8.el7.i686
--> Running transaction check
---> Package glibc.i686 0:2.17-105.el7 will be installed
--> Processing Dependency: glibc-common = 2.17-105.el7 for package: glibc-2.17-105.el7.i686
--> Processing Dependency: libfreebl3.so for package: glibc-2.17-105.el7.i686
--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.17-105.el7.i686
---> Package libattr.i686 0:2.4.46-12.el7 will be installed
--> Running transaction check
---> Package glibc.i686 0:2.17-105.el7 will be installed
--> Processing Dependency: glibc-common = 2.17-105.el7 for package: glibc-2.17-105.el7.i686
---> Package nss-softokn-freebl.i686 0:3.16.2.3-13.el7_1 will be installed
--> Finished Dependency Resolution
You could try using --skip-broken to work around the problem
Error: Package: glibc-2.17-105.el7.i686 (redhat_base)
Requires: glibc-common = 2.17-105.el7
Installed: glibc-common-2.17-222.el7.x86_64 (#anaconda/7.5)
glibc-common = 2.17-222.el7
Available: glibc-common-2.17-105.el7.x86_64 (redhat_base)
glibc-common = 2.17-105.el7
Here is the output of yum --showduplicates list libcap-devel, which shows that the yum repo only has one version available:
========================== N/S matched: libcap-devel ===========================
libcap-devel-2.22-8.el7.i686 : Development files for libcap
libcap-devel-2.22-8.el7.x86_64 : Development files for libcap
The output of yum --showduplicates list libcap shows:
Installed Packages
libcap.x86_64 2.22-9.el7 #anaconda/7.5
Available Packages
libcap.i686 2.22-8.el7 redhat_base
libcap.x86_64 2.22-8.el7 redhat_base
The output of yum install -y libcap-2.22-8.el7.x86_64 shows:
Package matching libcap-2.22-8.el7.x86_64 already installed. Checking for update.
Nothing to do
After this, running yum install -y libcap-devel-2.22-8.el7.x86_64 still attempts to download the 32 bit version:
...
--> Processing Dependency: libcap = 2.22-8.el7 for package: libcap-devel-2.22-8.el7.x86_64
--> Running transaction check
---> Package libcap.i686 0:2.22-8.el7 will be installed
...
The output of yum --showduplicates list glibc shows glibc.i686 0:2.17-222.el7 is not available, only 2.17-105.e17 is.
Installed Packages
glibc.x86_64 2.17-222.el7 #anaconda/7.5
Available Packages
glibc.i686 2.17-105.el7 redhat_base
glibc.x86_64 2.17-105.el7 redhat_base
Any variation of this fails:
yum downgrade -y glibc-2.17-105.el7
yum downgrade -y glibc-2.17-105.el7 glibc-common-2.17-105.el7
yum downgrade -y glibc-2.17-105.el7 glibc-common-2.17-105.el7 glibc-devel-2.17-105.el7
yum downgrade -y glibc-headers-2.17-105.el7 glibc-2.17-105.el7 glibc-common-2.17-105.el7 glibc-devel-2.17-105.el7
For example the first command complains about glibc-common and glibc-devel, adding these in results in a complaint about glibc-headers, and the fourth line actually segfaults.
welcome to the jungle of library/rpm dependencies :)
It takes some time and patience to read, and then some skill to read the yum output. Sometimes you'll even have to run some intermediate commands to get the exact answer, but let's see what we can already see here:
Processing Dependency: libcap = 2.22-8.el7 for package: libcap-devel-2.22-8.el7.x86_64
You try to install libcap-devel. yum says he will also need to install libcap with the exact same version number. No surprises so far.
Package libcap.i686 0:2.22-8.el7 will be installed
This is probably already something you do not want. You seem to be on a 64 bit system; do you really want the i686 version of this library installed? The fact is libcap-devel does not say it requires the x86_64 version; it requires any of the two. Preferably yum will install the x86_64 version, but if that is impossible the i686 version will do.
In this case I would suggest you to first try installing libcap-2.22-8.el7.x86_64 and see why yum won't install that one.
But in any case let's just read on, this will give you also information on how to solve this problem for the x86_64 package.
--> Processing Dependency: libc.so.6(GLIBC_2.8) for package: libcap-2.22-8.el7.i686
--> Running transaction check
---> Package glibc.i686 0:2.17-105.el7 will be installed
so here yum chose to install glibc.i686 0:2.17-105.el7 , probably to satisfy the libc.so.6(GLIBC_2.8)
now this is where the conflict occurs: glibc.i686 0:2.17-105.el7 requires glibc-common with the exact same version number, but you already have a more recent version of glibc-common on your machine.
Possible solutions
There are multiple solutions here, a non-exhaustive list in order of my preference:
investigate why libcap-2.22-8.el7.x86_64 can't be installed.
make sure glibc.i686 0:2.17-222.el7 is available in your yum repositories (or installed on your system)
downgrade you glibc-common (and probably also glibc x86_64 version) to version 0:2.17-105.el7

unable to install CPAN using Yum on CentOS 7.3

while trying to install "CPAN" using Yum command [CentOS 7.3(64-bit)] I am getting below error:
---> Package glibc.i686 0:2.17-157.el7 will be installed
--> Processing Dependency: glibc-common = 2.17-157.el7 for package: glibc-2.17-157.el7.i686
---> Package kernel-headers.x86_64 0:3.10.0-514.el7 will be installed
---> Package nss-softokn-freebl.i686 0:3.16.2.3-14.4.el7 will be installed
--> Finished Dependency Resolution
Error: Package: glibc-2.17-157.el7.i686 (cent-7_1-os)
Requires: glibc-common = 2.17-157.el7
Installed: glibc-common-2.17-157.el7_3.4.x86_64 (#updates_latest)
glibc-common = 2.17-157.el7_3.4
Available: glibc-common-2.17-157.el7.x86_64 (cent-7_1-os)
glibc-common = 2.17-157.el7
Now on other hand when in run:
yum install glibc-2.17-157.el7.i686
It shows since I have already updated package:
Package matching glibc-2.17-157.el7.x86_64 already installed. Checking for update
how to work around this? for many of the Perl Modules is throws same error and requires glibc-2.17-157.el7.i686.
Below are list of some modules which throws the error (though there are many other packages which are throwing same error):
yum install perl-ExtUtils-Embed
yum install perl-ExtUtils-ParseXS
yum install perl-ExtUtils-Install
I have also tries to install using source packages, but no success :(
Please guide me if I am asking at wrong platform (No down votes plz)
It worked after changing the yum repo. I have edited the repository:
vim /etc/yum.repos.d/CentOS-Base.repo
And added below lines:
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Previously it was :
[cent-7_1-os]
name=CentOS-7_1 - os
#baseurl=http://mhxrpmsrv001sas.dsone.3ds.com/rpms/cent/7_1/$basearch/os/latest/
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=1
I think your glibc-common installed is of higher version than required.
first check if there is a version to downgrade to, by
yum list --showduplicates glibc
downgrade the glibc* by
yum downgrade glibc glibc-common glibc-devel glibc-headers
install gcc again
yum install gcc

yum install php-bcmath Requires: php-common(x86-64) = 5.3.3-22.el6

Im running centos 6, and I tried to:
yum install php-bcmath, i got this error:
yum install php-bcmath
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.checkdomain.de
* epel: mirror.de.leaseweb.net
* extras: mirror.checkdomain.de
* rpmforge: mirror.de.leaseweb.net
* updates: mirror.checkdomain.de
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-bcmath.x86_64 0:5.3.3-22.el6 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.3-22.el6 for package: php-bcmath-5.3.3-22.el6.x86_64
--> Finished Dependency Resolution
Error: Package: php-bcmath-5.3.3-22.el6.x86_64 (base)
Requires: php-common(x86-64) = 5.3.3-22.el6
Installed: php-common-5.4.9-1.el6.remi.x86_64 (#remi-test)
php-common(x86-64) = 5.4.9-1.el6.remi
Available: php-common-5.3.3-22.el6.x86_64 (base)
php-common(x86-64) = 5.3.3-22.el6
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
Please help,
Thanks
I found out problem comes from the new PHP version (5.4, 5.4), which installed in a separate repo.
So, we just need to install php-bcmath in the main repo (version 5.3) using command:
yum install php-bcmath --enablerepo=remi
With "remi" is the main repo, you can see it by go to /etc/yum.repos.d then using ll
My Server was running PHP 5.6 and the below command solved my issue
sudo yum -y install php56-bcmath
sudo service httpd restart
It may sound stupid, but it made me lost few hours (yeah, i know..) but do not forget:
sudo service httpd graceful
after:
yum install php-bcmath
You can try (for Centos 6.4)
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
yum install php54w
yum install yum-plugin-replace
yum replace php-common --replace-with=php54w-common
yum install php54w-bcmath
(source: http://www.webtatic.com/packages/php54/)
But it may cause another problem about versions.
The simple way is uninstall php 5.4 (or 5.5),
install php 5.3, install php-bcmatch then update to php5.4 (or newer)

problem installing memcached on centos 5.4 64 bit

I'm trying to install memcached on Centos 5.4 with:
# yum install memcached
What I get is:
[root#domU-12-31-39-02-75-A8 ~]# yum -y install memcached
Failed to set locale, defaulting to C
rightscale-epel | 951 B 00:00
rpmforge | 1.1 kB 00:00
rpmforge/primary | 3.9 MB 00:01
rpmforge 10767/10767
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package memcached.x86_64 0:1.4.5-1.el5 set to be updated
--> Processing Dependency: libevent-1.4.so.2()(64bit) for package: memcached
--> Finished Dependency Resolution
memcached-1.4.5-1.el5.x86_64 from epel has depsolving problems
--> Missing Dependency: libevent-1.4.so.2()(64bit) is needed by package memcached-1.4.5-1.el5.x86_64 (epel)
Error: Missing Dependency: libevent-1.4.so.2()(64bit) is needed by package memcached-1.4.5-1.el5.x86_64 (epel)
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
How can I install memcached?
Thanks, Alex A.
You need to install it manually or change your yum repo:
wget ftp://rpmfind.net/linux/dag/redhat/el5/en/x86_64/testing/RPMS/libevent-1.3b-1.el5.test.x86_64.rpm
wget http://pkgs.repoforge.org/memcached/memcached-1.2.6-1.el3.rf.x86_64.rpm
rpm -ivh libevent-1.3b-1.el5.test.x86_64.rpm
rpm -ivh memcached-1.2.6-1.el3.rf.x86_64.rpm
Note, that this is an older version of memcached