我收到一个关于缺少已安装的软件包依赖项的错误。我已经看到过关于不同软件包的这个问题的多个版本,也尝试了所有的解决方案,但我仍然不知道问题是什么或者如何修复它。总结:我正在尝试使用 apt-get 安装一个名为 libxmlada5-dev 的软件包,它说它依赖于一个名为 gnat 的软件包。这没什么,所以我尝试安装 gnat。但是 gnat 说它依赖于 gnat-4.9。很奇怪,但没关系。所以当我尝试安装 gnat-4.9 时,它说它实际上已经安装好了!我试过卸载并重新安装 gnat-4.9,我试过sudo apt-get -f install
,我试过 apt clean 等等。这些选项都没有任何作用,因为看起来依赖关系已经得到满足。这是我的具体错误:
sudo apt-get install gnat
Reading package lists... Done
Building dependency tree
Reading state information... Done
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:
gnat : Depends: gnat-4.9 but it is not going to be installed
这是我尝试更新依赖项的地方:
Reading package lists... Done
Building dependency tree
Reading state information... Done
gnat-4.9 is already the newest version (4.9.3-3ubuntu5).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
最后,这是我使用 listapt-cache policy gnat
和 gnat-4.9 得到的结果:
gnat:
Installed: (none)
Candidate: 4.9ubuntu2
Version table:
4.9ubuntu2 500
500 https://my-company-apt-mirror.corp/ubuntu xenial/universe amd64 Packages
gnat-4.9:
Installed: 4.9.3-3ubuntu5
Candidate: 4.9.3-3ubuntu5
Version table:
*** 4.9.3-3ubuntu5 500
500 https://my-company-apt-mirror.corp/ubuntu xenial/universe amd64 Packages
100 /var/lib/dpkg/status
答案1
我找到了问题所在。结果发现 apt-get 上的错误消息完全没用而且容易引起误解(如果有人能给我指出正确的方向,我很乐意提交错误报告)。但是通过下载软件包并尝试使用 进行安装dpkg -i
,我发现 gnat 需要的 gcc 版本低于 7。所以我所要做的“全部”就是删除 gcc-7 并将其所有依赖项降级为使用 gcc-5 的版本。
答案2
我假设您正在运行 Xenial (16.04 LTS)。
命令apt-cache policy
输出代码 500 和 100,分别表示可安装和已安装状态。我无法在这里重现相同的错误,因为我目前正在使用 Bionic,所以我无法给你一个完美的答案。尝试这些选项:
- 源列表:
检查你的/etc/apt/sources.list
。默认 Xenial source.list 的示例。
也许您只有主要参考,系统无法安装。这些错误输出具有apt-get
误导性。
- 手动清除蚊虫:
首先检查它是否在您的安装列表中,以确保:
dpkg -l | grep -w gnat
。
然后您可以使用以下方式卸载:
dkpg --purge
(< 这里可能需要 sudo)。
最后
尝试再次安装该库,sudo apt-get update
然后运行。
答案3
最好避免使用 APT gnat 软件包,并从以下位置下载这里当前 (2021) GNAT 版本包括 Gnat Studio,这是适用于 Ada、Spark、C/C++ 和 Python 的免费 IDE。选择平台选项“x86 GNU Linux (64 位)”后,继续下载软件包。
按照 GNAT 包中的 README 说明进行操作 - 我知道它们非常简略,可能不会将 GNAT 放入您想要的位置,但请根据您自己所需的文件夹位置进行调整。确保通过将以下行添加到 /home/user-name/.profile 文件,将最终安装的 bin 文件夹添加到用户的 PATH 环境变量中,例如
PATH="/usr/local/bin/GNAT/2021/bin:$PATH"
如果 /usr/local/bin 是放置 GNAT 文件夹的位置。
通过在终端上运行以下命令来检查安装的可见性:
~ $ grpbuild --version
您应该会看到 GNAT 2021 的输出如下:
GPRBUILD Community 2021 (20210519) (x86_64-pc-linux-gnu)
Copyright (C) 2004-2021, AdaCore
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
您可以通过运行以下命令启动 GNAT Studio IDE:
gnatstudio
但最好为该应用程序创建一个桌面启动器,以便您可以从“显示应用程序”菜单启动 GNAT 包的 GNAT Studio IDE。
将文件系统导航到 /home/user-name/.local/share/applications 并右键单击鼠标并选择“在终端中打开”。
/home/user-name/.local/share/applications $ gedit gnatstudio.desktop
现在将以下内容复制并粘贴到此文件中:
[Desktop Entry]
Name=GNAT Studio
GenericName=IDE
Exec=/usr/local/bin/GNAT/2021/bin/gnatstudio %u
Icon=/usr/local/bin/GNAT/2021/share/gnatstudio/gnatstudio-splash.png
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
Categories=Network;WebBrowser;
Keywords=web;browser;internet;
Actions=new-window;new-private-window;
StartupWMClass=GNATSTUDIO
[Desktop Action new-window]
Name=Open a New Window
Exec=/usr/local/bin/GNAT/2021/bin/gnatstudio %u
[Desktop Action new-private-window]
Name=Open a New Private Window
Exec=/usr/local/bin/GNAT/2021/bin/gnatstudio --private-window %u
注 1:如果您选择将 GNAT 文件夹放在 /home/user-name/opt 中,那么只需在上面的 Excec 和 Icon 分配中将该文件路径替换为 /usr/local/bin 即可。
保存文件并关闭。
现在检查“显示应用程序”菜单中的 GNAT Studio 图标,并通过单击它来检查其可操作性。
笔记2:桌面启动器图标是方形的,因此分配给它们的任何图标图像都会自动挤压成方形 - 从而导致启动图标扭曲。gnatstudio-splash.png图标本身是长方形,因此会发生扭曲。您可以通过裁剪使桌面启动器图标更忠实于其本身gnatstudio-splash.png在 GIMP/PhotoShop 上将其保存为更方形的形状,然后将其保存为gnatstudio-启动图标.png,将其导出回 /usr/local/bin/GNAT/2021/share/gnatstudio 文件夹并将其分配给图标gnatstudio.desktop 文件的字段。这将为您提供一个常规的启动器图标。