在Ubuntu上修复损坏的GDAL和PROJ.4吗?


13

我解决了库问题,但仍然存在,仅与未加载的PROJ.4库有关。我问了这些问题后续问题

我的GDAL软件包和PROJ.4库已损坏,这在尝试重新投影文件时会导致错误(请参见下面的旧问题)。我不知道在我错误地安装了另一个GDAL实例之前还是之前,这个问题是否开始;但是,我已经将其卸载并重新安装了QGIS,问题仍然存在。

每次重新安装后,QGIS都具有与以前相同的插件,因此导致错误的部分在安装/卸载过程中保持不变。

我尝试了什么:

  • sudo apt-get remove build-essential python-all-devsudo apt-get remove gdal-bin清除手动安装的GDAL
  • 通过Ubuntu软件中心安装(un)安装QGIS
  • sudo apt-get --purge autoremove
  • dpkg -l | grep '^rc' | awk '{print $2}' | sudo xargs dpkg --purgedpkg --list | grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge清除配置文件

仍然没有运气。我发现了一些似乎相关的东西,但这是针对Windows的,而不是针对我的Ubuntu 14.04的。在下一次安装QGIS之前,还应该清除什么(以及如何清除)?


原始问题:

我尝试使用ogr2​​ogr重新投影一些shapefile。但是,我总是收到以下错误:

ERROR 6: Unable to load PROJ.4 library (libproj.so), creation of
OGRCoordinateTransformation failed.
Failed to create coordinate transformation between the
following coordinate systems.  This may be because they
are not transformable, or because projection services
(PROJ.4 DLL/.so) could not be loaded.

我通过各种转换对它进行了测试,包括从WGS84(EPSG:4326)到UTM(EPSG:3857)的基本组合,并且此错误始终存在。

尽管我的QGIS(2.10)中装有GDAL,但我又一次错误地安装了它(从源头开始,按照此答案的建议进行了安装),这可能是造成此问题的原因。

几次遇到此问题后,我尝试卸载新的GDAL实例(sudo apt-get remove build-essential python-all-dev并且sudo apt-get remove gdal-bin-不知道是否将其彻底删除)。

/USR/LIB/libproj.so.0libproj.so.0.7.0,没有libproj.so。即使显示了隐藏文件,我也看不到它。但是,当我尝试ln -s libproj.so.0.7.0 libproj.so(或与sudo)相同时,它抱怨libproj.so已经存在。


也可能会帮助删除并重新安装qgis。
AndreJ

@AndreJ:重新安装,没有任何改变。但是,关联的文件似乎未受影响(我的插件与重新安装QGIS之前的插件相同),因此,我现在尝试将其完全删除。
Pavel V.

我认为您应该编辑标题和标签。您的问题是安装问题,您可能想问一下如何纠正损坏的安装。
user30184

@ user30184:按照您的建议进行编辑。
Pavel V.

2
该错误消息似乎确实表明未加载libproj。尽管这些软件包应该已经完成​​了,但是您运行了sudo ldconfig吗?另外,ldd ogrinfo(您可能必须提供ogrinfo的完整路径)的输出是否显示libproj.so,它是否在您期望的目录(/ usr / lib)中?
Evil Genius

Answers:


12

/gis/158457/gdal2tiles-how-to-make-filenames-of-tiles-to-represent-xyz-coordinates中,有人提到这样做:

sudo ln -s /usr/lib/libproj.so.0 /usr/lib/libproj.so

这绝对为我修复了相同的错误(错误6:无法加载PROJ.4库(libproj.so))。


在x86_64架构上,您可能需要使用以下变体:

sudo ln -s /usr/lib64/libproj.so.0 /usr/lib/libproj.so

1
这为我解决了这个问题,而我正努力尝试通过错误中的文件名查找它,而该文件名为libproj.so.0
ekerner

1
我需要同时链接libproj和链接gdal不同的数字,即,ln -s /usr/lib/libproj.so.15 /usr/lib/libproj.so; ln -s /usr/lib/libgdal.so.20 /usr/lib/libgdal.so但是现在为我工作,谢谢指导!
anotherdave '19

8

经过几种错误的方式,包括多次重新安装libproj0软件包,甚至从与Ubuntu Software Center默认设置不同的来源(我认为这来自官方QGIS存储库- http://qgis.org/debian trusty main)安装QGIS之后,我了解了如何通过@EvilGenius应用建议:ldd ogrinfo没有显示libproj否无论我使用了多少次sudo ldconfig,直到输入:

export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib

从那时起,将正常读取该库。


7

尝试:

sudo apt-get install libproj-dev

当使用gdal_translate从hdf图像中提取频段时,它为我解决了相同的错误。


0

编译gdal库时使用--with-static-proj


1
在回答中包含一些解释会很有用
Midavalo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.