如何在 Ubuntu 12.10 上安装 rgdal?

rad*_*dek 16 r

我正在努力rgdal在 Ubuntu 12.10 上安装库。

从 R 中安装会导致错误:

错误:找不到 gdal-config 找不到与 GDAL 一起分发的 gdal-config 脚本。如果您还没有安装 GDAL 库,您可以从http://www.gdal.org/下载源代码 如果您已经安装了 GDAL 库,请确保 gdal-config 在您的路径中。尝试在 shell 提示符下键入 gdal-config 并查看它是否运行。如果没有,请使用:--configure-args='--with-gdal-config=/usr/local/bin/gdal-config' 并为您的安装提供适当的值。

错误:包“rgdal”的配置失败 * 删除“/home/rdk/R/x86_64-pc-linux-gnu-library/2.15/rgdal” install.packages 中的警告:包“rgdal”的安装有非零退出地位

R-sig-Geo 两个SE 问题和其他网站向我指出了libgdal1-dev.

但是当我尝试

须藤 apt-get 安装 libgdal1-dev

我最终得到另一条错误消息

无法安装某些软件包。这可能意味着您请求了一个不可能的情况,或者如果您使用的是不稳定的发行版,一些必需的包尚未创建或已从 Incoming 中移出。以下信息可能有助于解决这种情况:

以下软件包具有未满足的依赖项: libgdal1-dev :依赖项:libgdal-dev 但不会安装 E:无法纠正问题,您持有损坏的软件包。

再次 - 当我尝试安装libgdal-dev另一个依赖项时出现错误

以下软件包具有未满足的依赖项: libgdal-dev :依赖项:libgeos-dev 但不会安装依赖项:libspatialite-dev 但不会安装

再次尝试 libgeos-dev给出消息:

Depends: libgeos-c1 (= 3.3.3-1.1) but 3.3.3-2~precise2 is to be installed
E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)

libspatialite-dev

Depends: libspatialite3 (= 3.1.0~rc2-1ubuntu1) but
3.1.0~rc2-2~precise1 is to be installed
Run Code Online (Sandbox Code Playgroud)

有没有办法驯服这些依赖项并rgdal在 Ubuntu 中运行?

我的 sessionInfo()

R 版本 2.15.1 (2012-06-22) 平台:x86_64-pc-linux-gnu(64 位)

Rob*_*ace 24

可以在此处找到更新的答案:http : //robinlovelace.net/r/2013/11/26/installing-rgdal-on-ubuntu.html

本质上,以下三行代码应该对其进行排序:

sudo apt-get install aptitude # install aptitude as an alternative to apt-get
sudo aptitude install libgdal-dev # install the package (you may have to respond to queries here)
sudo aptitude install libproj-dev # install the proj.4 projection library
Run Code Online (Sandbox Code Playgroud)

在这个问题上花了很长时间,所以希望这个更新的答案对其他人有用。如果是这样,请告诉我!


Ruc*_*t88 13

尝试一起运行它们并指定版本,如下所示:

sudo apt-get install libgdal1-dev libgdal-dev libgeos-c1=3.3.3-1.1 libspatialite3=3.1.0~rc2-1ubuntu1
Run Code Online (Sandbox Code Playgroud)

apt-get 不喜欢降级软件包,但如果您指定它,它会降级。

  • 它们可能会导致升级问题,是的。为了防止一个包被升级,对每个包运行这个:`echo packagename hold | 须藤 dpkg --set-selections` (2认同)