E: 包 '' 没有安装候选者

E: 包 '' 没有安装候选者

我无法 apt-get 安装任何软件包,因为E: Package '<package name>' has no installation candidate.与其他类似名称的问题不同,我使用的是 debian,并且由于相同的错误,我无法让任何软件包正常工作。 apt 仍然能够列出存储库。在尝试修复sources.list后,我已经更新、升级、重新启动并重复,但没有任何效果。

例如,

$ sudo apt-get install nodejs
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package nodejs is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'nodejs' has no installation candidate

运行$ find /etc/apt/ -path *.list | xargs cat产生:

#------------------------------------------------------------------------------#
#                   OFFICIAL DEBIAN REPOS                    
#------------------------------------------------------------------------------#

###### Debian Main Repos
deb http://ftp.us.debian.org/debian/ jessie main contrib non-free 
deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free 

###### Debian Update Repos
deb http://security.debian.org/ jessie/updates main contrib non-free 
deb http://ftp.us.debian.org/debian/ jessie-proposed-updates main contrib non-free 
deb-src http://security.debian.org/ jessie/updates main contrib non-free 
deb-src http://ftp.us.debian.org/debian/ jessie-proposed-updates main contrib non-free 


deb http://archive.raspberrypi.org/debian/ jessie main ui
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
deb-src http://archive.raspberrypi.org/debian/ jessie main ui
deb https://dev2day.de/pms/ jessie main
deb http://dl.bintray.com/openhab/apt-repo stable main

答案1

有几种概率:

  • 您的列表无法更新,请使用apt-get update.您还应该检查是否apt-cache policy列出了所有存储库。
  • 该包可能在您添加的存储库源或其他组件中不可用。对于 Debian,请使用麦迪逊,其他发行版也有同等版本。例如,对于该包,您需要:

    nodejs     | 0.10.29~dfsg-1~bpo70+1 | wheezy-backports | source, amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386
    nodejs     | 0.10.29~dfsg-2         | stable           | source, amd64, armel, armhf, i386, mipsel
    nodejs     | 0.10.29~dfsg-2         | stable-kfreebsd  | source, kfreebsd-amd64, kfreebsd-i386
    nodejs     | 4.3.1~dfsg-3           | testing          | source, amd64, arm64, armel, armhf, i386, mips, mipsel, powerpc, ppc64el, s390x
    nodejs     | 4.4.7~dfsg-2           | unstable         | source, amd64, arm64, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mips64el, mipsel, powerpc, ppc64el, s390x
    nodejs     | 5.11.0~dfsg-1          | experimental     | source, mipsel
    nodejs     | 6.0.0~dfsg-1           | experimental     | source, amd64, arm64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mips64el, powerpc, ppc64el, s390x
    

    这些存储库要么未启用,要么位于您尚未添加的组件中(即 main、contrib、non-free)。

  • 该软件包也可能不适用于您的架构。用于dpkg --print-architecture了解您正在使用哪种架构并将其与麦迪逊输出进行比较。

如果其中任何一个失败,您都会收到该消息。检查以apt-cache policy package验证本地包列表中是否有该包。

答案2

检查您的发行版的官方网站上的软件包存储库,并将这些链接添加到文件 /etc/apt/source.list 中,然后它就可以工作了。

答案3

如果问题与某些特定存储库有关,请尝试检查您的 apt 配置:/etc/apt/preferences.d/

它可能具有不允许升级这些特定软件包的固定文件。

当软件包版本的更改可能会导致问题时,它可能会发生在 docker 镜像中......

我希望这能有所帮助。

相关内容