我正在尝试在 Ubuntu 18.04 机器上安装 R,但遇到了“未满足的依赖关系”问题。但是,我无法确定我可以去哪里或需要在系统上修复什么才能解决这个问题。任何帮助都将不胜感激。
我正在运行 Ubuntu 18.04.2 LTS(配备 16GB RAM 和 500GB 硬盘),仅使用标准bionic
存储库;我添加的唯一 PPA 是 libreoffice。要查看那里有什么,输出sudo apt update
为
Ign:1 http://dl.google.com/linux/chrome-remote-desktop/deb stable InRelease
Ign:2 http://dl.google.com/linux/chrome/deb stable InRelease
Hit:3 http://dl.google.com/linux/chrome-remote-desktop/deb stable Release
Hit:4 http://dl.google.com/linux/chrome/deb stable Release
Get:7 https://desktop-download.mendeley.com/download/apt stable InRelease [2,456 B]
Get:8 https://typora.io/linux ./ InRelease [758 B]
Hit:9 http://repository.spotify.com stable InRelease
Hit:10 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ InRelease
Hit:11 http://ppa.launchpad.net/libreoffice/ppa/ubuntu bionic InRelease
Hit:12 http://sg.archive.ubuntu.com/ubuntu bionic InRelease
Hit:13 http://sg.archive.ubuntu.com/ubuntu bionic-backports InRelease
Get:14 http://sg.archive.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Fetched 91.9 kB in 3s (26.5 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
(我尝试尽可能保持同步,sudo apt update && sudo apt upgrade
每两天至少运行一次。)
当我尝试安装 R 的第一个组件r-base
(通过sudo apt install r-base
)时,我得到以下未满足的依赖关系:
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
r-base : Depends: r-base-core (>= 3.4.4-1ubuntu1) but it is not going to be installed
Depends: r-recommended (= 3.4.4-1ubuntu1) but it is not going to be installed
Recommends: r-base-html but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
运行software-properties-gtk
,我看到所有存储库都已启用。运行sudo apt-get clean
并sudo apt-get autoclean
继续完成,没有任何错误消息。当我执行
$ sudo apt-get -f install
$ sudo dpkg --configure -a
$ sudo apt-get -f install
输出是
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
因此,我的系统上似乎没有被扣留、有冲突或损坏的软件包。我也执行了sudo apt --fix-broken install
,但同样,如上所述,我的系统似乎没有被扣留或损坏的软件包。
正在播放的sudo apt-get dist-upgrade
节目
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
我很乐意尝试别人可能建议的任何其他方法来查看故障是否仍然存在于我的系统上。
接下来我添加
deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/
到我的/etc/apt/sources.list
并运行
$ sudo apt update
$ sudo apt install r-base
仍然没有喜悦;输出现在是(省略上面的重复)
The following packages have unmet dependencies:
r-base : Depends: r-base-core (>= 3.6.0-2bionic) but it is not going to be installed
Depends: r-recommended (= 3.6.0-2bionic) but it is not going to be installed
Recommends: r-base-html but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
(但至少我已经从 移动3.4.4-1ubuntu1
到3.6.0-2bionic
。)重复sudo apt-get -f install ; sudo dpkg --configure -a; sudo apt-get -f install
上述顺序继续显示
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
因此再次看来,似乎不存在任何被持有或冲突的包裹。
输出apt-cache policy r-base
为:
Installed: (none)
Candidate: 3.6.0-2bionic
Version table:
3.6.0-2bionic 500
500 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ Packages
3.6.0-1bionic 500
500 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ Packages
3.5.3-1bionic 500
500 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ Packages
3.5.2-1bionic 500
500 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ Packages
3.5.1-2bionic 500
500 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ Packages
3.5.1-1bionic 500
500 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ Packages
3.5.0-1bionic 500
500 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ Packages
3.4.4-1ubuntu1 500
500 http://sg.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
500 http://sg.archive.ubuntu.com/ubuntu bionic/universe i386 Packages
但是,我不确定要去哪里进一步挖掘或根据此输出调整哪些文件。
我需要在我的 中添加哪些位置/etc/apt/sources.list
来放置r-base-core
和的依赖项r-recommended
?我还需要去哪里获取它们?Linux 安装页面
https://cran.ma.imperial.ac.uk/bin/linux/ubuntu/README.html
没有向我建议进一步添加任何/etc/apt/sources.list
内容。Google 返回了一大堆其他内容,包括的 PPA,我尝试将它们添加到我的源中,但没有一个允许我完成安装。[是的,当我删除它们时,我确保每次都marutter
运行clean
和,如上所述。]autoclean
需要说明的是,我并不执着于拥有绝对最新版本的 R/ 我对稍微过时的版本也感到满意,但我没有在 R 的 Linux 安装页面上看到任何关于我可以调整什么的提示。
(在我的其他机器 GalliumOS 2.1 和 GalliumOS 3.0 上,我安装了 R 和 RStudio,没有问题。)
任何帮助将不胜感激。
(该问题现已按照如下所述得到解决;我有两个版本略有不一致的软件包。我最终删除了两者并重新安装了一个。)
答案1
在跟踪了多条路径上的一系列失败之后,我确信——正如@user535733 所建议的“进入兔子洞”——不知何故,两个不同的来源似乎潜入了我的系统,每个来源都单独提供了一套一致的完整软件包,但两者之间却互不兼容。其中一个例子是发现gcc-8-base
同时引用8.3.0-6ubuntu1~18.04
和8-20180414-1ubuntu2
,但还有其他问题,最终发现太多了,无法一次解决一个。
因此我删除并恢复了默认存储库,例如,如何恢复默认存储库?通过移动/etc/apt/sources.list
到某个安全的临时位置 [在一切正常后丢弃],touch
创建一个新的空版本,然后using software-properties-gtk
提供一组新的 Ubuntu 软件源和更新(security
和updates
频道)。关闭它以便系统更新,然后在终端中运行
$ sudo apt update && sudo apt upgrade
$ sudo apt install r-base # Works cleanly!
(非常感谢所有提供帮助的人,尤其是@user535733)