首页 > 解决方案 > 在 linux mint 上更新 glibc 以进行 sbcl 安装

问题描述

我正在尝试正确安装 SBCL sbcl-2.0.0-x86-64-linux。提取和安装完成,没有任何问题。

但是,当在 $ 提示符下键入 'sbcl' 以启动 SBCL 运行时,会出现错误消息:

sbcl:/lib/x86_64-linux-gnu/libc.so.6:找不到版本“GLIBC_2.28”(sbcl 需要)。

我的平台是 Linux Mint 19.3,所有更新如下所示:

$ 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

此外,libc6 版本似乎比所需的 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

有没有一种简单的方法可以更新到 libc6 的 2.28 版?或者,也许必须回到以前的 SBCL?

(ps:我是 linux 新手,所以任何方向都必须相当清楚——谢谢。)

标签: linuxcommon-lispglibclinux-mintsbcl

解决方案


虽然可以更新 glibc,但您并不想这样做。构建 glibc 非常复杂,发行版应用了许多补丁来使事情正常进行。如果您更换它,事情可能会以令人兴奋的方式发生。

您最好构建 SBCL 或找到不同的包。例如,您可以下载 Debian 源代码包并自己构建它。如果您想这样做,您可以从packages.debian.org页面的右侧下载三个源文件并将它们放在一个目录中。然后运行:

apt install build-essential fakeroot
dpkg-source -x *.dsc
cd sbcl*
dpkg-buildpackage -us -uc -rfakeroot

它可能会抱怨一个或多个丢失的包裹;安装它们apt install PACKAGE并重试,直到你有一个二进制包,它将在上面的目录中。


推荐阅读