Ubuntu 20.04 上缺少 libreadline.so.7,不再工作

R is missing libreadline.so.7 on Ubuntu 20.04, doesn't work anymore

因为我安装了最新版本的 Ubuntu (20.04), R (4.02) 只是行不通。如果我尝试从终端启动 R,我会收到以下消息:

R-4.0.2/bin/exec/R: error while loading shared libraries: libreadline.so.7: cannot open shared object file: No such file or directory

在网上查了一下,我发现我有 Libreadline6 和 8,但没有 7,所以我手动安装了它。

apt policy libreadline7
libreadline7:i386:
  Installé : 7.0-3
  Candidat : 7.0-3
 Table de version :
 *** 7.0-3 100
        100 /var/lib/dpkg/status

所以现在我确实有 R 需要的版本,但是当我尝试 运行 它时,我得到了完全相同的错误消息。 我什至不知道在哪个方向寻找解决方案,我认为这不是 R 的问题,而是 Ubuntu... 知道可能是什么问题吗? 谢谢!

第一件事:你从哪里得到你的 R 包?

我是 运行 CRAN 的“官方”Ubuntu“向后移植”,这要归功于 Michael Rutter 基于我维护的 Debian 软件包构建的内容。那里没有问题,对我和我成千上万的其他人来说都不是。让我们检查一下:

$ dpkg -s r-base-core | grep Version
Version: 4.0.2-1.2004.0
$
$ dpkg -s r-base-core | grep readline
Depends: zip, unzip, [...edited...] , libreadline8 (>= 6.0), [...ditto...]
$ 

所以那个版本是针对 libreadline8 而不是 7 构建的。那么为什么/怎么会有 7?

也许对您来说最简单的方法就是升级到我这里的二进制文件?有关更多信息,请参阅 the usual README at CRAN

其次,即使您使用较旧的 R(比如 20.04 附带的那个),libreadline 作为另一个包的依赖项也不会卸载。

所以也许你自己编译了这个包?在这种情况下 apt 不知道 /usr/local/bin 中的二进制文件具有依赖关系 因为您在包管理系统之外!同样,最容易使用 pre-made 二进制文件。