Search code examples
linuxcommon-lispglibclinux-mintsbcl

Updating glibc on linux mint for sbcl install


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.)


Solution

  • 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.