nodejs-16 dependency issue with libuv - amazon-linux-2

This is what I'm getting on my Amazon Linux 2 instance while trying to run yum update.
Do you suggest I use --skip-broken or wait until AWS rolls out a fix?
--> Processing Dependency: libuv >= 1:1.42.0 for package: 1:nodejs-16.13.2-8.el7.x86_64
--> Finished Dependency Resolution
Error: Package: 1:nodejs-16.13.2-8.el7.x86_64 (epel-testing)
Requires: libuv >= 1:1.42.0
Installed: 1:libuv-1.39.0-1.amzn2.x86_64 (#amzn2-core)
libuv = 1:1.39.0-1.amzn2
Available: 1:libuv-1.23.2-1.amzn2.0.2.i686 (amzn2-core)
libuv = 1:1.23.2-1.amzn2.0.2
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

Version libuv-1.44.xx is available In amzon linux2 AMI 2022.
For those instances launched before Feb 2022, yum update might be disabled by priorities plugin.
You might see message like 285 packages excluded due to repository priority protections. In this case, you may disable priority plugin and install latest version of libuv. Below commands should help to resolve such case.
yum remove libuv -y
yum install libuv --disableplugin=priorities

Please install libuv from RPM using the below steps:-
yum remove libuv -y
wget https://rpmfind.net/linux/epel/7/x86_64/Packages/l/libuv-1.44.2-1.el7.x86_64.rpm
rpm -i libuv-1.44.2-1.el7.x86_64.rpm
Smooth install of nodejs 16 after that.

Yeah, plus 1 to this issue. OP, the --skip-broken flag will only temporarily fix your currently running servers though. If you're baking any new AMIs or spinning up any new EC2s with Terraform, CDK, etc, that --skip-broken flag won't work as its not available as part of the aws cloud.init script. This will cause any new AMI or EC2 creations to timeout and fail.
One potential work around is to try compiling libuv directly from source as > 1.39 sadly isn't currently available from any linux distro.

I believe the issue is because you are using just multiple yum repos and there is a version mismatch for the latest version of the libuv package (epel-testing and amzn2-core).
What worked for me was to temporarily disable the epel repo, or disable temporarily all yum plugins (set plugins=0 on /etc/yum.conf) and perform the yum upgrade.

The workaround I used for this was to update to a newer version of the base Amazon Linux AMI. The one released on 3/15/2022 has a libuv version of 1.42.0-2 per this doc:
https://docs.aws.amazon.com/linux/al2022/release-notes/all-packages-al2022-20220308.html

Related

centos yum fails installing anything or updating system

I am trying to install a package on CentOS, but it throws error when I run the "yum" command. The internet connection is working fine.
I try to yum clean all but problem persist.
Error:
[root#dcos-master3 ~]# yum install ntp
Loaded plugins: fastestmirror
One of the configured repositories failed (Unknown),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo=<repoid> ...
4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable <repoid>
or
subscription-manager repos --disable=<repoid>
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
Cannot find a valid baseurl for repo: base/$releasever/x86_64
My yum repolist is the next:
[root#dcos-master3 ~]# yum repolist list
Loaded plugins: fastestmirror
https://yum.dockerproject.org/repo/main/centos/%24releasever/repodata/repomd.xml: [Errno 14] HTTPS Error 403 - Forbidden
Trying other mirror.
To address this issue please refer to the below knowledge base article
https://access.redhat.com/solutions/69319
If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/
repolist: 0
If I list the repolist:
[root#dcos-master3 ~]# yum repolist
Loaded plugins: fastestmirror
https://yum.dockerproject.org/repo/main/centos/%24releasever/repodata/repomd.xml: [Errno 14] HTTPS Error 403 - Forbidden
Trying other mirror.
To address this issue please refer to the below knowledge base article
https://access.redhat.com/solutions/69319
If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/
repo id repo name status
base/$releasever/x86_64 CentOS-$releasever - Base 0
dockerrepo/$releasever Docker Repository 0
extras/$releasever/x86_64 CentOS-$releasever - Extras 0
updates/$releasever/x86_64 CentOS-$releasever - Updates 0
repolist: 0
BEFORE TRYING ANY OF THIS, HAVE A BACKUP OF YOUR MACHINE, YOU COULD DAMAGE YOUR OS MORE/COMPLETELY
It seems that your yum variable $releasever is somehow corrupt,
it usually is caused by missing centos-release package on the machine for some obscure reasons.
You can check if you have the package by:
rpm -qi centos-release
You will probably see:
"package centos-release is not installed"
First find out the exact centos version that you have by executing as root:
cat /etc/redhat-release
You will see something like this:
CentOS Linux release 7.3.1611 (Core)
You can fetch the centos-release package from repo by:
wget http://vault.centos.org/centos/7.3.1611/updates/x86_64/Packages/centos-release-7-3.1611.el7.centos.2.5.x86_64.rpm
Now run reinstall centos-release package via rpm:
sudo rpm -Uvh --replacepkgs centos-release-7-3.1611.el7.centos.2.5.x86_64.rpm
As next you can try to install something with yum and you might get:
[root#dcos-master3 ikerlan]# sudo yum install wget
error: db5 error(-30969) from dbenv->open: BDB0091 DB_VERSION_MISMATCH: Database environment version mismatch
error: cannot open Packages index using db5 - (-30969)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
Now you can try to reboot the machine or try to use the following command to rebuild the rpm db:
rpm --rebuilddb
I came across the same issue while downloading some packages in centos 7. After days of search, I found the solution:
Go to the yum repo directory.
cd /etc/yum.repos.d.
Make a copy of the CentOS-Base.repo file.
cp CentOS-Base.repo CentOS-Base.repo.old
Edit the CentOS-Base.repo file. Comment mirrorlist and uncomment baseurl.
vi CentOS-Base.repo
[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
Now when you use yum, do the following.
sudo yum --disablerepo=* --enablerepo=base install httpd
Likewise for yum update.
sudo yum --disablerepo=* --enablerepo=base install httpd
It should work now.
I ran into this problem when attempting to install MariaDB on CentOS 7. I was super frustrated and after much searching found the answer at this link.
Here is what fixed this problem for me. Run as root.
# yum --disablerepo "*" --enablerepo epel install [package]
# yum clean all
"epel" can be whatever repo you like, but this one worked for me. Place [package] in the command just as written, not what package you are trying to install.
After you run the above, exit root and run whatever install you were attempting before encountering the error.
I noticed that in the failing url, your $releasever is %24releasever, but it should be 7 or 7.14.xx. Please check your yum config file at /etc/yum/var, or search in every .repo file, to see what is its value. It may be corrupted.
See Red Hat documentation for more information about how to set these variables.
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/sec-using_yum_variables
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
yum -y install yum-utils
yum-config-manager --enable remi-php74
Then proceed to your installation/updates/etc
Always make sure NAT is active on your centos7. Specially when there is a VMnet2 for host. Because sometimes VMNet2 can be active instead of NAT and because of that you will not be able to connect to the internet through centos7. This is just a one reason for getting that error.

How to fix installation error of missing dependencies (libmysqlclient_16) for Sphinx search 2.2.10 on RedHat/Centos 6.7 in cPanel/WHM

On my VPS mediatemple server with cPanel/whm, I've tried every which way installing Sphinx with yum as well as doing rpm -Uvc with a local download.
And it always returns these errors:
Error: Package: sphinx-2.2.10-1.rhel6.i386 (/sphinx-2.2.10-1.rhel6.i386)
Requires: libmysqlclient.so.16(libmysqlclient_16)
Error: Package: sphinx-2.2.10-1.rhel6.i386 (/sphinx-2.2.10-1.rhel6.i386)
Requires: libmysqlclient.so.16
I can see that I have these files are located at /usr/lib64/libmysqlclient.so.16, but it keeps throwing this error. I read that I was missing MySQL-community-libs-compat files, I tried but MySQL installation is handled through cpanel and got conflicting notices.
I had previously installed Sphinx 2.2.9 wiht no issues, and went ahead and removed it to upgrade. Now I can't install anything. No Bueno!
Can anyone help??
Did you try ?
yum install mysql mysql-devel mysql-lib
Always install local packages using yum , e.g. yum local install LocalPackage.rpm. Yum can handle package dependencies.
Remove sphinx and reinstall using yum localinstall .

how to upgrade libvirt?

I'm trying to install openstack on RHEL 6.2. Following installation guide from openstack.org, I'm using the command:
yum install openstack-nova openstack-glance
After resolved many dependencies, I got the final error:
Error: Package: openstack-nova-compute-2012.2.2-1.el6.noarch (epel)
Requires: libvirt >= 0.9.6
Installed: libvirt-0.9.4-23.el6.x86_64 (#anaconda-RedHatEnterpriseLinux-201111171049.x86_64/6.2)
libvirt = 0.9.4-23.el6
I installed libvirt 0.9.4 from the RHEL 6.2 DVD, but it seems I have to upgrade libvirt 0.9.6. How to do the upgrade? Or where can I download libvirt 0.9.6 rpm? Or can I use yum to upgrade libvirt?
You could try searching for the RHEL6 or CentOS 6 rpms from
http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=1&dl=40&search=libvirt&dist[]=74&dist[]=79&dist[]=0&field[]=1&field[]=2
Also, it looks like libvirt has got a lot of dependencies, so after downloading the appropriate libvirt-0.9.xxx.rpm, you could try
yum localinstall libvirt-0.9.xxx.rpm
if even after that you have some dependencies missing, you might want to download them manually like the libvirt rpm itself, managing which can soon start to become a nightmare!

Yum won't update because of newer libstdc++ library. How do I fix this?

Whenever I try to update my system via "sudo yum update", I get this error:
Transaction Check Error:
package libstdc++-4.3.2-7.i386 (which is newer than libstdc++-4.1.2-51.el5.x86_64) is already installed
I'm not sure how I got in this state, but I'm pretty sure that whatever I've done has been through yum.
Here's what "yum list" gives me for that library:
libstdc++.x86_64 4.1.2-50.el5 installed
libstdc++.i386 4.3.2-7 installed
libstdc++-devel.x86_64 4.1.2-50.el5 installed
Notice how the i386 version is different than the .x86_64 version. That's really strange.
I'm running CentOS 5.6 64 bit.
What should I do?
You can use the lazy man's method. For now use --skip-broken so other stuff will update. And eventually your repo version of libstdc++ will catchup to what's on your box.

Installing php-devel-5.1.6-27.el5_5.3.x86_64

I'm working on a 64 bit centos 5.5 (Final) server
When I try to install pear it gives a dependency error
php-devel-5.1.6-27.el5_5.3.x86_64 from base has depsolving problems
--> Missing Dependency: php = 5.1.6-27.el5_5.3 is needed by package php-devel-5.1.6-27.el5_5.3.x86_64 (base)
So I try "yum install php-common-5.1.6-27.el5_5.3" it says that this package is already installed
Package matching php-common-5.1.6-27.el5_5.3.x86_64 already installed. Checking for update.
Nothing to do
I don't know what to do anymore
Can anyone give me a tip?
It's driving me crazy
when I try yum remove php-common-5.1.6-27.el5_5.3.x86_64 it gives me the following
Package(s) php-common-5.1.6-27.el5_5.3.x86_64 available, but not installed.
I don't understand what's wrong with yum
Try removing PHP and Pear, then try this from scratch as if your OS was new. It may help. Pear's a pain sometimes...
# yum install php
# yum install php-pear
# pear channel-update pear.php.net
# pear upgrade-all
Good luck!!
to refresh your system, you might try
yum reinstall php-common; yum install php-devel