Updating glibc on linux mint for sbcl install - linux

I'm trying to properly install SBCL sbcl-2.0.0-x86-64-linux. Extraction and installation complete without any problems.
However, when typing 'sbcl' at the $ prompt to start SBCL running, there is an error message:
sbcl: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by sbcl).
My platform is Linux Mint 19.3 with all updates as shown here:
$ hostnamectl
Static hostname: Lumpy
Icon name: computer-desktop
Chassis: desktop
Machine ID: f3d85c83fd6e458aba76dbf56f683032
Boot ID: e7a1a123ce29458c90ebca9f77ea3888
Operating System: Linux Mint 19.3
Kernel: Linux 5.0.0-37-generic
Architecture: x86-64
Also, the libc6 version seems to be older than the required 2.28:
$ apt-cache policy libc6
libc6:
Installed: 2.27-3ubuntu1
Candidate: 2.27-3ubuntu1
Version table:
*** 2.27-3ubuntu1 500
500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
100 /var/lib/dpkg/status
Is there a simple way to update to ver 2.28 of libc6? Or, perhaps have to go back to a previous SBCL?
(ps: I'm new to linux, so any directions will have to be fairly clear—thanks.)

While it is possible to update glibc, you don't really want to do that. Building glibc is highly complex and distros apply lots of patches to make things work. If you replaced it, things would probably break in exciting ways.
You'd be better off building SBCL or finding a different package. For example, you could download the Debian source package and build it yourself. If you wanted to do that, you could download the three source files from the right hand side of the packages.debian.org page and put them in a directory. Then run:
apt install build-essential fakeroot
dpkg-source -x *.dsc
cd sbcl*
dpkg-buildpackage -us -uc -rfakeroot
It will likely complain about one or more missing packages; install them with apt install PACKAGE and try again until you have a binary package, which will be in the directory above.

Related

Linux Installation libX11-devel

I am trying to build QT4 (porting from Redhat 5 to 7 with an upgraded gcc compiler) in RedHat 7 and I was getting an error saying X11/Xlib.h can't be found. Anyways, after doing some research most people said to install libX11-devel to get those x11 libraries. Since I am using an offline machine I can't do "apt-get" type commands and have to manually install RPMs. So, I went to my RH-7 installation DVD and got "libX11-devel-1.6.3-3.el7.x86-64" (I have 64 bit OS) and tried to install using "yum install libX11-devel-1.6.3-3.el7.x86_64" and I am getting dependencies errors. It's saying
...Requires: pkgconfig(kbproto)
...Required: pkgconfig(xcb)
...Requires: pkgconfig(xproto)
...Requires: pkgconfig(xcb) >= 1.1.92
So, here are my questions.
1) when it says "pkgconfig(kbproto)", is it saying find the "kbproto....RPM" and do a "yum install". In my dvd I only have "xorg-x11-proto-devel-7.7.13.el7.noarch.rpm". Do I have to somehow find "xorg-x11-proto......x86_64.rpm" since it's a 64 bit machine?
2) Is there a difference between "yum install" and pkgconfig "install"? Are there any other installation variants in Linux?
3)For an offline machine, Is there anyway I can get all the dependencies and install everything at once ?
4) Why is it saying "xcb" requires twice. If I just get a xcb...rpm version above 1.1.92 can I just install it once?
Before actually answering the questions, I am going to suggest to see if you can get the latest version of the packages. The packages on the installation DVD may be really out of date and contain known vulernabilities, and other bugs. Can you use yumdownloader - in an online environment - to download the latest version onto a separate DVD and use that as the installation source? See https://access.redhat.com/solutions/10154 for more information.
To answer the questions themselves:
Requires: foo can refer to a package foo or a "feature" foo. pkgconfig(kbproto) is a "feature" (or virtual requires). You can use yum/rpm to see what provides this. On my Fedora box, for example, rpm -q --provides xorg-x11-proto-devel shows that this package indeed provides pkgconfig(kbproto).
As for x86_64 vs noarch, it doesn't matter. noarch packages work everywhere. Other packages are restricted to the platform. So x86_64 only works on intel/amd x86 64-bit machines. Installing noarch should be fine in your case. If you only had a i686 package, though, that wouldn't be sufficient. You would have to find a x86_64 or noarch package.
Yes, there's a big difference between yum and pkg-config. They do completely different things. One is a system tool for installing RPM packages. The other is a tool for developers for using the right headers and compiler flags. If your concern is finding/installing RPMs, do not use pkg-config directly.
Do you have access to an online machine that can access the RHEL 7 yum repositories? On that machine, do something like this:
mkdir rhel7-packages
cd rhel7-packages
yum provides '*/X11/Xlib.h' # make a note of the package that provides this file. it's libX11-devel on Fedora here
yumdownloader --resolve libX11-devel # download libX11-devel and all dependencies not installed on the system
Then copy/install the RPMs on the machine without internet access.
It's probably printing out xcb twice because it's two different requirements. The unversioned requirement will be satisfied if you install any verison of xcb. The versioned requirement will only be satisfied if you install 1.1.92. If you install 1.1.92, it will satisified both the requirements.
1.
You have to resolve the dependency on the system where you are building your package. This means you need to have those dependencies installed, inclusing libX11-devel. To do that, download the RPMs manually from EL7 repos to local disk and run this:
$ mkdir -p /tmp/libX11_dep_rpms && cd /tmp/libX11_dep_rpms
# Download all dependencies from here. All your packages should be available here:
# http://mirror.centos.org/centos-7/7/os/x86_64/Packages/
# Then install
$ yum localinstall *.rpm
# After this you should be able to build your qt4 package, provided all dependencies are resolved. Otherwise, repeat the procedure for all dependencies
# If you can't download packages, then you need to create a FULL DVD ISO that will contain all packages.
2.
pkgconfig ensures that a requirement is coming from a particular build that provides a particular version of the library. Here are some detail.
3.
Get the Everything ISO from EL7.
4.
This has to do with the pkgconfig and library versions.

Ubuntu: install latest version of package

I'm working with Ubuntu 14.04 and I need to use stress-ng.
If I type: apt-cache policy stress-ng
I obtain:
stress-ng:
Installed: 0.03.15-1~ubuntu14.04.1
Candidate: 0.03.15-1~ubuntu14.04.1
Version table:
*** 0.03.15-1~ubuntu14.04.1 0
100 http://mirror.switch.ch/ftp/mirror/ubuntu/ trusty-backports/universe amd64 Packages
100 /var/lib/dpkg/status
So if I run apt-get install stress-ng, it downloads version 0.03.15.
Unfortunately, this version does not allow me to do some things which are present in the last one, 0.07.16, supported by Ubuntu 17.04.
How can I do to use this latest version on 14.04?
You can add the repositories of the newer release to sources.list,and use apt-pinning,this is an advanced feature to install packages from a newer version of Ubuntu.
Check out Pinning.
Pinning is a process that allows you to remain on a stable release of
Ubuntu (or any other debian system) while grabbing packages from a
more recent version.
Note however that the processes described below will only work if
things like libc6 versions match, so you should probably not do this
on an Ubuntu system. I strongly recommend you look at UbuntuBackports
before doing this.
Also you can just download the package and make install.
Hope this helps.

Ubuntu is not booting to GUI apt-get: /usr/local/lib/libstdc++.so.6: version `GLIBCXX_3.4.15` not found

All of a sudden today my ubuntu system is not booting to GUI, I guess some system problem occured.
When I do:
sudo apt-get upgrade
from a console, I get the following error:
apt-get: /usr/local/lib/libstdc++.so.6: version GLIBCXX_3.4.15 not found (required by apt-get)
apt-get: /usr/local/lib/libstdc++.so.6: version GLIBCXX_3.4.15 not found (required by /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12)
Can anyone help?
I don't wish to reflash my system.
Its running on 12.04.
You have a local version of your libstdc++, which conflicts with the newer libstdc++-version, which your newer apt-get wants.
I don't know, where is your libstdc++ in your /usr/local/lib is coming from, but it is surely not from your ubuntu distribution. If you don't know that, probably you can delete that.
If you won't do that, a simple hotfix were for this if you renamed /usr/local/lib to f.e. /usr/local/lib- for the running of the apt-get command.

System crash after oracle installation with yum

recently i tried to install oracle on my linux with apt (I never used yum before) using fast manual:
http://www.oracle.com/technetwork/articles/servers-storage-admin/ginnydbinstallonlinux-488779.html
And after command:
sudo yum install oracle-rdbms-server-11gR2-preinstall
I got error:
Failed: ca-certificates.noarch 0:2010.63-3.el6_1.5 chkconfig.x86_64 0:1.3.49.3-2.el6 file-libs.x86_64 0:5.04-15.el6 filesystem.x86_64 0:2.4.30-3.el6
initscripts.x86_64 0:9.03.38-1.0.1.el6_4.2
Complete!
And something gone wrong because command like: ps, top are crashing
login#Ass-K55VJ:/etc/yum/repos.d$ ps -e
ps: relocation error: ps: symbol procps_number_version, version _3_2_5 not defined in file libproc-3.2.8.so with link time reference
login#Ass-K55VJ:/etc/yum/repos.d$ top
Segmentation fault (core dumped)
then I tryied to uninstall oracle and dependencies but after command:
sudo yum remove oracle-rdbms-server-11gR2-preinstall
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
No module named yum
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.6.6 (r266:84292, Jul 10 2013, 06:42:56) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]
If you cannot solve this problem yourself, please go to the yum faq at: http://wiki.linux.duke.edu/YumFaq
So it seems like yum install in my system new libraries but didn't link it correctly? I dont know what do in this moment because it seems like armagedon on my ubuntu...
Does this mean you're on ubuntu and tried to install rpm packages using yum? The manual you used is for Oracle Linux 6, why would you try that on ubuntu?
rpm packages are not compatible with debian based systems like ubuntu, which use deb packages. So you've probably screwed your system big time, overwriting important system libraries with incompatible ones.
If apt-get is still working, then you can try to reinstall (apt-get --reinstall install) the equivalent libraries to the ones mentioned in the install manual you linked to - naming isn't always the same for rpm and deb packages. dpkg -l should help you see which the correct installed libraries are. I'd start with the C libraries (libc) etc.
But if apt-get is screwed also, then you'd need to download the packages manually from an ubuntu mirror and install them using dpkg, but I think a reinstall (or restore from backup if you have one) would be the best option.

How to force debian squeeze to use libqt4-dev from debian wheezy without upgrading all packages to debian wheezy?

I have a continuous integration server building some software that depends on a more recent version of libqt4-dev than the apt packages in debian squeeze provide. That version is available in debian wheezy. How can I tell apt to use libqt4-dev selectively from wheezy without upgrading all of the packages in my squeeze system to wheezy?
You can do this with apt's "preferences" functionality (man apt_preferences).
To add wheezy as a source of packages without installing anything from wheezy by default, add entries for wheezy to your sources.list, and add the following to /etc/apt/preferences (or to a file in preferences.d):
Package: *
Pin: release n=wheezy
Pin-Priority: 50
Once that is set up, you can install libqt4-dev with the following command:
apt-get install -t wheezy libqt4-dev
This will also install the dependencies of libqt4-dev, which may be numerous. Not being familiar with qt, I'm not sure whether the pinning solution here is the best way to get the newer version of qt onto a squeeze system. Another possibility is the backports repository, but I don't see qt4 in there. A third possibility is to build your own backported version using apt-get -b source.

Resources