linux - 在 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 新手,所以任何方向都必须相当清楚——谢谢。)
解决方案
虽然可以更新 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
并重试,直到你有一个二进制包,它将在上面的目录中。
推荐阅读
- sql - 查找每个账户的最新合约
- python - 为什么 Requests 在 __version__.py 中有蛋糕?
- java - File.listFiles 抛出 NullPointer
- php - PHP preg_match 应该返回 true 但返回 false
- typescript - Typescript 枚举、接口和映射
- javascript - 在 Angular 4/5 component.ts 文件中使用“new Function()”方法
- css - 如何在css中绘制一个带有小圆头的扇区?
- vba - 删除两列 VBA 之间的重复项
- php - PHP base64 解码返回垃圾字符
- c++ - 派生类中的 constexpression,clang 与 rest