Application RPM Install Error: libc.so.6 is needed by .... - glibc

I have an application rpm which when installed is failing to get installed with error
error: Failed dependencies:
libc.so.6 is needed by testSam-4.7.x86_64
libc.so.6(GLIBC_2.0) is needed by testSam-4.7.x86_64
libc.so.6(GLIBC_2.1) is needed by testSam-4.7.x86_64
The system has RHEL 7.3 with glibc 2.17.
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.3 (Maipo)
# rpm -qf /lib64/libc.so.6
glibc-2.17-157.el7.x86_64
So the application built using older glibc(it needs glibc between 2.0 and 2.1) is failing to run on a system having newer glibc 2.17.
How to get rid of this issue and run the application on systems having newer glibc?
I guess there are some glibc backward compatibility packs which will help us run such applications on systems having newer glibc.
From where can I download such compatibility packs?

Despite the package name of testSam-4.7.x86_64 , there are probably some binaries in that rpm that are NOT 64 bit, but built as 32 bit. You might need to install the glibc.i686 package first
If there is a 32 bit executable or library in the package it will add a dependency on libc.so.6 , while 64 bit executables adds a dependency on libc.so.6(64bit)

Related

Install older version of gcc cross compiler for arm on Ubuntu

I need to use gcc-arm-linux-gnueabi version 6.5, along with a version of libc that came out around the same period (I believe is libc-2.26). My host system is Ubuntu 18.04.
If I go with just a simple
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi binutils-arm-linux-gnueabi
I'll get v7 for the gcc cross compiler and v2.30 for binutills, which does not work for me, since I'll end up with errors similar to the one described here.
If I try to download the deb packages, I get unmet dependencies.
I have also tried to force apt-get to install specific versions, using something like described here but I get error messages that the version I'm looking for cannot be found.
Is there a way to force ubuntu to install specific (older) version of gcc, libc, etc.?
I know that gcc v 6 is obsolete, but I cannot do otherwise.
You could give a try to the Linaro release of gcc 6.5, available here, which comes with glibc version 2.23.

Issues with installation LTTNG for fedora22

using: 4.2.8-200.fc22.x86_64
I have a lot of issues with installing latest package of fedora's lttng.
I have installed the latest version available for fedora as for 29/6/16.
Available Packages
Name : lttng-tools
...
Version : 2.6.0
whereas the latest available for other distributions is 2.8.0
http://git.lttng.org/?p=lttng-modules.git;a=shortlog;h=refs/heads/stable-2.8
as for fedora lttng-modules need to be installed manually.
none or the 2.5 through 2.6.1 are compiling.
error: implicit declaration of function ‘__get_cpu_var’
and 2.6.3 report
Can't read private key
for each module and reports
depmod: WARNING: /lib/modules/4.2.8-200.fc22.x86_64/extra/probes/lttng-probe-x86-exceptions.ko needs unknown symbol lttng_pid_tracker_lookup
none of the modules are available at insmod.
trying 2.8.0 modules result
reports
Error: Kernel tracer ABI version (2.1) is not compatible with expected ABI major version (1.*)
second attempt result with the following.
lttng (create, enable, start, stop, view) result with no results.
Is there any plans you guys know of for further support for fedora beyond 2.6?
any Ideas for how can I make lttng works for my 22 fedora.
(not upgrading to fedora 24 due to performance degradation )
Regards,
Nir.
I have recently taken over the maintenance of the lttng packages in Fedora, F25 will ship with the latest lttng 2.8 packages. As for F22, you best option would be to try to rebuild the F25 sources packages on F22. For the kernel modules you can use this source package intended for RHEL7 : http://packages.efficios.com/rhel/7/SRPMS/latest/lttng-modules/lttng-modules-2.8.0-1.el7.src.rpm
Hope it helps, cheers.

Build GCC 4.8.1 or higher on CentOS 6.5

I want to use GCC 4.8.1 or higher on a HPC machine with CentOS 6.5 which has a very old GCC. I do not have admin rights so everything has to be local. Do I have to really compile everything from source? Isn't there any rpm package that I can only install GCC with its dependencies? I found GCC rpms for CentOS 7 but not 6.5.
Without admin rights, building from source is
likely most reliable means to use gcc-4.8.1.
You can try installing (or extracting) gcc-4.8.1
from the redhat developer tool kit 2.0 described here
https://superuser.com/questions/381160/how-to-install-gcc-4-7-x-4-8-x-on-centos
CentOS 7 RPM's are unlikely to work in general on CentOS 6.x.
The developer 2.0 toolkit was built on CentOS6

Exe's compilation on Solaris 11 env using gcc

I am on Solaris 11 environment and gcc-3.4.6 is installed on it. The problem is that I am not able to compile exe's there, The error is
-sh: gcc: gcc: cannot execute [Invalid argument]
even if I write gcc only it gives the same error. Kindly help.
Unlike in Solaris 10, on Solaris 11 the GCC is not installed by default.
Fear not.
By far the easiest is to use IPS to install it using the commands below (while being root or other superuser):
pkg install pkg://solaris/developer/build/gnu-make
pkg install pkg://solaris/developer/build/make
pkg install pkg://solaris/developer/gcc-45
pkg install pkg://solaris/system/header
pkg install pkg://solaris/developer/build/autoconf
pkg install pkg://solaris/developer/build/automake-110
This will give you all the tools you typically need to build various open source software packages.
Note that some of the packages have a version number in the package name itself, e.g. gcc-45. You may be able to find even later versions in the package repository, for example for Solaris 11.2 Beta you'll find you have a choice of GCC 4.5, 4.7 or 4.8. The same applies to automake which is now also available in v1.11.
(recipe from my posting here)

Installing gcc 4.8 on Debian

I want to start playing around with some of the newer C++11 features and it appears that the best support for this is with gcc 4.8, and Squeeze ships with 4.4.5.
However, I don't want to cause any "damage" to my current setup. What's the best way to get both versions of gcc running side-by-side? I'm concerned mostly at the large number of dependencies and that taking them all in to my current system may render it unstable.
Has anyone managed to do this, and what are the steps involved?
Failing that, I'll probably just create a VM and run an "unstable" Debian under that but it's a less-than-ideal solution.
If you install GCC from source just make sure you don't install it to /usr and it won't mess anything up. If you install it as your own user, not root, then there is zero chance of messing up the system.
See http://gcc.gnu.org/wiki/InstallingGCC for the almost-idiot-proof minimal configuration.
I have various versions built as my user and installed in ~/gcc/4.X for various X.
The only thing to be aware of using that set up is that the shared libraries for the new version aren't in the dynamic linker's default search path, so you need to use LD_LIBRARY_PATH or some other solution to ensure executables find the libs from 4.8, see the libstdc++ FAQ and the page it links to in the manual
I use a wrapper script call g++11 which simply calls the new version of GCC with -std=gnu++11 and passes a flag to the linker telling it to set the path to the 4.8 libs in the executable:
$HOME/gcc/4.8/bin/g++ -Wl,-rpath,$HOME/gcc/4.8/lib64 -std=gnu++11 -Wall -Wextra -g "$#"
I had the same problem, and didn't want to fully upgrade to testing.
Jessie (testing) now contains g++-4.8 which is compliant with C++11.
I used apt-pinning in the following way:
A source to jessie was added to /etc/apt/sources.list:
deb http://ftp.uk.debian.org/debian/ jessie main non-free contrib
/etc/apt/preferences was edited as such:
Package: *
Pin: release n=wheezy
Pin-Priority: 900
Package: gcc*
Pin: release n=jessie
Pin-Priority: 910
Then,
$ sudo aptitude update
$ sudo aptitude install gcc/jessie
At which point I selected the second presented option to resolve dependencies fully.
Debian has the package under the name gcc-4.8 (or for the c++ compiler, g++-4.8). Installing those packages will not mess up your OS, as long as you do not rename it to g++. The package is listed as experimental though.
Information on the package is here.
Update: g++-4.8 is now in testing, but an updated package is in unstable
Quick ones:
Just upgrade to testing, it is rock-solid and offers you several concurrent gcc versions. Similar for Ubuntu, on 12.10 I have gcc/g++ 4.4, 4.5, 4.6 and 4.7 in parallel.
Try the Debian backports archive, it may have a port of gcc 4.8.
Use virtualization: I prefer libvirt / kvm which is incredibly lightweight on Linux as it is kernel based. My amd64 server has two other 32 bit installations for that very reason.
Not really a SO question...
Have you tried chroot to install a newer Debian flavor?
you can play around without fear to break you working system.
install a Debian flavor that support you gcc version desired.
install a gcc version manually without affecting you working system.
http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Linux/Chroot

Resources