损坏的软件包和未满足的依赖关系安装QGIS,PostgreSQL和Postgis Ubuntu 14.04


15

我知道这可能是重复的主题,但我已经努力了几天。我将QGIS从2.8升级到2.18,然后一切都坏了。我无法在pgadmin3上使用PostGIS扩展。

我发现与libgdal1h:发生冲突:如果已安装,它将删除PostGIS使用的其他库,反之亦然。

我尝试了一些有关如何安装QGIS的教程,例如:

如何在Ubuntu中获取并安装最新版本的QGIS?

在Ubuntu 16.04 Xenial上安装QGIS 2.14 Essen

我尝试了在线报告的每个建议,例如:

/ubuntu/351899/qgis-quantum-gis-install-fails-unmet-dependencies

/ubuntu/621406/dist-upgrade-in-ubuntu-14-04-uninstalled-qgis-and-results-in-unmet-dependencies

在哪里可以找到与libgeos-3.5.0兼容的libgeos-c1版本?

在Ubuntu 14.04上安装QGIS失败

通常,的回复sudo apt-get install qgis python-qgis是:

The following packages have unmet dependencies:


python-qgis : Depends: python-qt4-sql but it is not installable
               Depends: python-qgis-common (= 1:2.14.8+20trusty-ubuntugis) but it is not going to be installed
               Depends: python-psycopg2 but it is not installable
               Depends: python-qscintilla2 but it is not installable
               Depends: python-jinja2 but it is not installable
               Depends: python-markupsafe but it is not installable
               Depends: python-pygments but it is not installable
               Depends: python-yaml but it is not installable
               Depends: python-pyspatialite but it is not installable
               Depends: libqgispython2.14.8 but it is not going to be installed
               Depends: libqgis-analysis2.14.8 but it is not going to be installed
               Depends: libqgis-core2.14.8 but it is not going to be installed
               Depends: libqgis-gui2.14.8 but it is not going to be installed
               Depends: libqgis-networkanalysis2.14.8 but it is not going to be installed
               Depends: libqgis-server2.14.8 but it is not going to be installed
               Recommends: liblwgeom-dev but it is not installable
 qgis : Depends: gdal-abi-2-1-0 but it is not installable
        Depends: libgdal20 (>= 2.0.1) but it is not installable
        Depends: libgeos-c1v5 (>= 3.4.2) but it is not installable
        Depends: libqgis-analysis2.14.8 but it is not going to be installed
        Depends: libqgis-app2.14.8 but it is not going to be installed
        Depends: libqgis-core2.14.8 but it is not going to be installed
        Depends: libqgis-gui2.14.8 but it is not going to be installed
        Depends: libqgis-networkanalysis2.14.8 but it is not going to be installed
        Depends: qgis-providers (= 1:2.14.8+20trusty-ubuntugis) but it is not going to be installed
        Depends: qgis-common (= 1:2.14.8+20trusty-ubuntugis) but it is not going to be installed
        Recommends: qgis-plugin-globe but it is not going to be installed
        Recommends: qgis-plugin-grass but it is not going to be installed
        Recommends: qgis-provider-grass but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

我已经删除了所有软件包和库,因此我没有任何与Synaptic软件包管理器以及所有与命令有关的postgis,postgres和QGIS相关的库:

sudo apt-get purge qgis
sudo apt-get autoremove qgis
sudo apt-get --purge remove qgis
sudo apt-get update

但是问题还没有解决。

我试图删除文件上的ubuntugis和/或debian的回购协议/etc/apt/sources.list

没有。

而且我不明白为什么,使用此资源http://qgis.org/ubuntugis/,我仍然有关于悬赏的问题。

我该怎么办?

我打算格式化笔记本电脑,希望这对损坏的包装有帮助。.对于损坏的包装,我已经尝试过:

sudo apt-get update fix-missing
sudo apt-get install -f

但没有固定的。


您正在使用哪个版本的Ubuntu?
DPSSpatial

我信任的Ubuntu 14.04
Glori P.

不用格式化PC,而是尝试使用带有Ubuntu完整副本的虚拟机。为您节省了大量的转换工作,您可以随时退后。
AndreJ

Answers:


7

从QGIS 2.16更新到2.18时,我遇到了类似的问题。

尝试以下解决方法,最终对我有用:

在错误消息中,请注意行

Depends: ... but it is not installable

在安装qgis之前,您可能需要手动一一安装那些软件包。如果已安装,请重试安装QGIS,并解决部分或所有已损坏的依赖性。

坚持使用debian或ubuntugis仓库可能会有所帮助,但请避免同时安装两者的软件包。

以我为例,正是gdal阻止了QGIS的正确安装。


评论更新

似乎GDAL版本冲突避免了正确的安装。

根据http://postgis.net/install/,您可以在Ubuntu上使用Postgis的三个选择:

这为您提供了为Postgres 9.3编译的postgis 2.2。您可以从同一存储库中获取QGIS 2.14.3,也可以将http://qgis.org/ubuntugis用于QGIS 2.18.0或2.14.8。您将获得GDAL 2.1.0。这似乎是当前的最佳选择。

您使用的一种,但与ubuntugis的QGIS不兼容的。

他们提供Postgis 2.1.4、2.2.2和2.3.0。您也可以从那里获得QGIS LTR,或者使用http://qgis.org/debian for 2.18.0,针对GDAL 1.10编译可信任的,针对GDAL 1.11.3编译的xenial。

他们为Postgres 9,3提供了Postgis 2.1.2,并使用libgdal1h(GDAL 1.10.1)构建了可信赖的数据库。xenial软件包是针对libgdal1i(GDAL 1.11.3)编译的Postgis 2.2.1。如果从http://qgis.org/debianhttp://qgis.org/debian-ltr安装QGIS ,则将获得针对相同GDAL版本的QGIS 2.18.0或2.14.8,以进行可信任和xenial编译。

如果您尝试组合来自不同来源的软件包,则会得到破坏性的依赖关系,所以不要这样做


我在gdal上也遇到了问题:您使用哪个回购来安装此库?
Glori P.

我使用debian和ubuntugis不稳定的ppa并行运行Linux Mint和Ubuntu。您可以查看packages.debian.org/cgi-bin/…launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable了解当前软件包。
AndreJ

Linux Mint 18上的BTW debian repo运行GDAL 1.11.3,而Ubuntu 16.04上的ubuntugis ppa运行GDAL 2.1.0。两者都使用xenial dist回购。您可能会运行apt list --installed | grep gdal以查看计算机上安装了什么。
AndreJ

刚刚在Linux Mint 17.3上检查了QGIS LTR 2.14.5:Ubuntu存储库,可信任的发行版,其中ubuntugis不稳定的ppa运行GDAL 2.1.0。更新到2.14.8需要更新密钥,并sudo apt-get install qgissudo apt-get update和之后手动运行upgrade
AndreJ

因此,最好不要使用ppa,而只能使用qgis.org/en/site/forusers/alldownloads.html#debian-ubuntu上的稳定版本存储库?并且最好从终端而不是从Synaptic Package Manager安装qgis?
Glori P.

13

我在安装qgis时遇到了类似的问题。我终于使用aptitude软件包管理器安装了它。

首先尝试:

sudo apt-get update然后sudo apt-get -f install

如果这不起作用,请尝试更高级别的软件包管理器能力

sudo aptitude install qgis python-qgis qgis-plugin-grass

它提供了这样的多种解决方案,您可以选择一种。

Accept this solution? [Y/n/q/?] n
The following actions will resolve these dependencies:

      Downgrade the following packages:                                                                    
1)      libqt4-declarative [4:4.8.7+dfsg-7ubuntu1~xenialoverlay1~1 (now) -> 4:4.8.7+dfsg-5ubuntu2 (xenial)]
2)      libqt4-network [4:4.8.7+dfsg-7ubuntu1~xenialoverlay1~1 (now) -> 4:4.8.7+dfsg-5ubuntu2 (xenial)]    
3)      libqt4-opengl [4:4.8.7+dfsg-7ubuntu1~xenialoverlay1~1 (now) -> 4:4.8.7+dfsg-5ubuntu2 (xenial)]     
4)      libqt4-script [4:4.8.7+dfsg-7ubuntu1~xenialoverlay1~1 (now) -> 4:4.8.7+dfsg-5ubuntu2 (xenial)]     
5)      libqt4-sql [4:4.8.7+dfsg-7ubuntu1~xenialoverlay1~1 (now) -> 4:4.8.7+dfsg-5ubuntu2 (xenial)]        
6)      libqt4-sql-sqlite [4:4.8.7+dfsg-7ubuntu1~xenialoverlay1~1 (now) -> 4:4.8.7+dfsg-5ubuntu2 (xenial)] 
7)      libqt4-svg [4:4.8.7+dfsg-7ubuntu1~xenialoverlay1~1 (now) -> 4:4.8.7+dfsg-5ubuntu2 (xenial)]        
8)      libqt4-xml [4:4.8.7+dfsg-7ubuntu1~xenialoverlay1~1 (now) -> 4:4.8.7+dfsg-5ubuntu2 (xenial)]        
9)      libqt4-xmlpatterns [4:4.8.7+dfsg-7ubuntu1~xenialoverlay1~1 (now) -> 4:4.8.7+dfsg-5ubuntu2 (xenial)]
10)     libqtcore4 [4:4.8.7+dfsg-7ubuntu1~xenialoverlay1~1 (now) -> 4:4.8.7+dfsg-5ubuntu2 (xenial)]        
11)     libqtdbus4 [4:4.8.7+dfsg-7ubuntu1~xenialoverlay1~1 (now) -> 4:4.8.7+dfsg-5ubuntu2 (xenial)]        
12)     libqtgui4 [4:4.8.7+dfsg-7ubuntu1~xenialoverlay1~1 (now) -> 4:4.8.7+dfsg-5ubuntu2 (xenial)]         


Accept this solution? [Y/n/q/?] y
The following packages will be DOWNGRADED:
  libqt4-declarative libqt4-network libqt4-opengl libqt4-script libqt4-sql libqt4-sql-sqlite libqt4-svg libqt4-xml libqt4-xmlpatterns libqtcore4 libqtdbus4 libqtgui4 
The following NEW packages will be installed:
  libdrm-dev{a} libfcgi0ldbl{a} libgl1-mesa-dev{a} libglade2-0{a} libglu1-mesa-dev{a} libjs-jquery-ui{a} libjs-leaflet{a} liblwgeom-dev{a} libqca2{a} libqca2-plugin-ossl{a} libqca2-plugins{a} 
  libqgis-analysis2.18.3{a} libqgis-app2.18.3{a} libqgis-core2.18.3{a} libqgis-customwidgets{a} libqgis-gui2.18.3{a} libqgis-networkanalysis2.18.3{a} libqgis-server2.18.3{a} libqgisgrass7-2.18.3{a} 
  libqgispython2.18.3{a} libqjson0{a} libqt4-dbus{a} libqt4-designer{a} libqt4-dev{a} libqt4-dev-bin{a} libqt4-help{a} libqt4-opengl-dev{a} libqt4-qt3support{a} libqt4-scripttools{a} libqt4-test{a} 
  libqtassistantclient4{a} libqwt5-qt4{a} libspatialindex4v5{a} libx11-xcb-dev{a} libxcb-dri2-0-dev{a} libxcb-dri3-dev{a} libxcb-glx0-dev{a} libxcb-present-dev{a} libxcb-randr0-dev{a} libxcb-render0-dev{a} 
  libxcb-shape0-dev{a} libxcb-sync-dev{a} libxcb-xfixes0-dev{a} libxdamage-dev{a} libxext-dev{a} libxfixes-dev{a} libxshmfence-dev{a} libxxf86vm-dev{a} mesa-common-dev{a} python-cycler{a} python-dateutil{a} 
  python-future{a} python-gdal{a} python-glade2{a} python-httplib2{a} python-jinja2{a} python-markupsafe{a} python-matplotlib{a} python-matplotlib-data{a} python-pygments{a} python-pyparsing{a} 
  python-pyspatialite{a} python-qgis python-qgis-common{a} python-qscintilla2{a} python-qt4{a} python-qt4-sql{a} python-shapely{a} python-sip{a} python-tz{a} python-yaml{a} qdbus{a} qgis qgis-common{a} 
  qgis-plugin-grass qgis-plugin-grass-common{a} qgis-provider-grass{a} qgis-providers{a} qgis-providers-common{a} qt4-designer{a} qt4-linguist-tools{a} qt4-qmake{a} x11proto-damage-dev{a} 
  x11proto-dri2-dev{a} x11proto-fixes-dev{a} x11proto-gl-dev{a} x11proto-xext-dev{a} x11proto-xf86vidmode-dev{a} 
The following packages are RECOMMENDED but will NOT be installed:
  qt-at-spi 
0 packages upgraded, 88 newly installed, 12 downgraded, 0 to remove and 57 not upgraded.

3

以下内容适用于Ubuntu 16.04和QGIS 2.18:

sudo apt remove *qgis*
sudo apt purge *qgis*

然后:

sudo apt update
sudo apt install qgis python-qgis 

1

认为诀窍是两者兼有ubuntugisubuntugis-unstable添加到您的存储库列表中。

然后,我安装了gdal 2.1.0(我需要GeoPackage支持,所以我不知道这是否必要),从那时起,我可以很高兴地安装postgis-2.2.2和qgis 2.18。


1
为了澄清,您建议http://qgis.org/ubuntugishttp://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu。当前有一些将ubuntugis不稳定内容移动到ubuntugis稳定内容的工作,因此未来的用户可能会对此感到迷惑。
AndreJ '16

1

正如@AndreJ所建议的那样,我创建了一个完全干净的新虚拟机。我已经成功安装了QGIS 2.14和Postgresql 9.6。

所有步骤和评论均根据该要点进行报告:

https://gist.github.com/GloryPassarello/dc23d443434a5221f0f981813a622e0c

该问题似乎仅与PostGis有关:尝试安装以下软件包:

libgdal1h
libgeos-c1
liblwgeom-2.3-0

一站式的QGIS:libgdal1h和libgdal1似乎是一个问题(请参阅libgdal1和libgdal1h冲突),我记得这3个库使我陷入了qgis postgresql和postgis之间的最初冲突。

我找到了一个有趣的仓库:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839182

我该怎么做才能解决该问题?你有什么建议?


launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/…具有postgis 2.2可用。为什么要尝试2.3版本,从何而来?
AndreJ '16

是一个:deb ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu可信任的主程序吗?如果是的话,我用那个来取
Glori P.

不,请看下面的要点sudo apt-cache policy postgis。它取自http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg/main amd64 Packages
AndreJ '16

你说得对,我uncommet即回购和我所做的:sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstablesudo apt-get updatesudo apt-get install postgresql-9.3-postgis-2.2 。但是输出是The following packages have unmet dependencies: postgresql-9.3-postgis-2.2 : Depends: libgdal1h (>= 1.9.0) but it is not going to be installed Depends: libgeos-c1 (>= 3.4.2) but it is not going to be installed E: Unable to correct problems, you have held broken packages.
Glori P.

该软件包似乎仍然是错误的。在ppa文件夹ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu/dists / ... Packages.gz文件中,我看到了:Version: 2.2.2+dfsg-2~trusty0Depends: libc6 (>= 2.14), libgdal20 (>= 2.0.1)
AndreJ '16

1

在AndreJ的答案提到不同代表之间的冲突之后,我deb http://qgis.org/从sources.list中删除了几行,您可以通过nano(在终端上运行的编辑器)来完成,仅保留以下几行deb http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu trusty main

sudo nano /etc/apt/sources.list

这将打开编辑器,只需删除qgis.org行,通过“ Ctrl + x”退出并保存;该文件应如下所示

#deb cdrom:[Linux Mint 17.1 _Rebecca_ - Release i386 20141126]/ trusty contrib $
deb http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu trusty main

然后sudo apt-get updatesudo apt-get install qgis


ubuntugis的方法不再起作用,因为ubuntugis不稳定的ppa丢弃了所有可信任的软件包。
AndreJ

0

我打算格式化笔记本电脑,希望这对损坏的包装有帮助。

...如果您准备走那么远的路,不妨先升级到最新的Ubuntu LTS 16.04,该版本为许多GIS软件包提供了更多更新存储库。在16.04中,我测试了以下内容,以毫无问题地升级到最新的QGIS 2.18:

  1. 删除QGIS并删除任何与GIS相关的现有条目 /etc/apt/sources.list

    sudo apt-get remove qgis --purge
    sudo apt-get autoremove --purge
  2. 将以下两行添加到/etc/apt/sources.list

    deb http://qgis.org/debian xenial main
    deb-src http://qgis.org/debian xenial main
  3. 添加QGIS存储库

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 073D307A618E5811
    #note, 073D307A618E5811 is the public key for the specific qgis repo here.
    sudo apt-add-repository add  http://qgis.org/debian
    #note, may require `sudo apt-get install software-properties-common` first
  4. 安装QGIS:

    sudo apt-get update
    sudo apt-get install qgis

他没有使用Xenial。他正在使用14.04(可信赖)
Evan Carroll

@EvanCarroll OP还提到了Xenial。
tinlyx

仅在提到另一个问题时,他没有使用氙气。他明确地告诉您他正在使用什么。
埃文·卡罗尔

@EvanCarroll但事实并非如此 only in reference to another question。引用OP ,I tried several tutorial about how to install QGIS ... Install QGIS 2.14 Essen on Ubuntu 16.04 Xenial
tinlyx

@EvanCarroll是的,我有Ubuntu 14.04。我遵循了Xenial的一些教程,也将参考文献从Xenial更改为Trusty,并尝试了一种安装我所需的所有软件的方法。
Glori P.

0

非常简单...确保您取消注释来源列表中的来源存储库。等/ apt /来源/来源清单

确保只对CDROM选项进行注释,而对其他列表未做注释。


0

@AndreJ的答案仍然是正确的,但是对于那些只想qgis使用特定gdal版本安装2.18的用户来说,这里是一个汇总的(也许是最新的)版本:

仅使用/启用以下ppas之一:

# Option A: contains qgis 2.18.25 but locks you to gdal 1.x
deb http://qgis.org/ubuntu-ltr trusty main

# Option B: contains qgis 2.18.16 and gdal 2.2 - this is probably what most people are looking for
deb http://qgis.org/ubuntugis trusty main

说明:如果同时启用了两个ppas(从今天开始),Option A则将选择与ppas相关联的依赖项(因为它具有qgis 2.18的更新版本),因此很难安装gdal 2.x(实际上必须安装通过Option B)完成。从一个选项直接升级到另一个选项并不容易,因为它们实际上代表了两组互斥的完全不同的依赖项。


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.