Każdy pakiet „nie ma kandydata do instalacji”

26

Podczas próby instalacji openssh-serverna 64-bitowym systemie Ubuntu 14.04 pojawia się następujący błąd:

Package openssh-server 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 'openssh-server' has no installation candidate

Widzę ten sam błąd podczas próby zainstalowania dowolnego pakietu.

To jest sources.listplik:

deb http://archive.canonical.com/ubuntu hardy partner
deb-src http://archive.canonical.com/ubuntu hardy partner
salman 299402
źródło
2
Biegniesz apt-get update? Czy sprawdziłeś także, czy sources.listodpowiednie wpisy?
psimon
Proszę opublikować wynik apt-cache policy.
Faheem Mitha
4
Proszę nie publikować zrzutów ekranowych tekstu wyjściowego: opublikuj tekst, aby można go było przeczytać ...
jasonwryan
salman @ salman-Inspiron: ~ $ sudo apt-cache policy [sudo] hasło dla salman: Pliki pakietów: 100 / var / lib / dpkg / status release a = teraz Przypięte pakiety: salman @ salman-Inspiron: ~ $
salman 299402
1
Zasugerowałem edycję, która powinna uczynić to odpowiedzialnym, po prostu wymaga zatwierdzenia.
Oli

Odpowiedzi:

25

Jeśli tak naprawdę jest cały twój /etc/apt/sources.listplik, to wyjaśnia twoją obecną sytuację. I nie mam wyjaśnienia, dlaczego masz zainstalowane Hardy repo. Podejrzewam, że poszedłeś za starym samouczkiem, który popsuł wszystko.

Pierwszym krokiem jest przywrócenie repozytoriów na właściwe tory. Sugerowałbym użycie narzędzia takiego jak RepoGen, aby uzyskać podstawy, ale w przeciwnym razie oto najważniejsze:

deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse 
deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse 
deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse 
deb http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse 
deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse 

Trzymaj je we właściwym miejscu sudoedit /etc/apt/sources.list(równie dobrze możesz rzucić te linie o hardy). Gdy to zostanie zapisane, uruchom, sudo apt-get updatea następnie powinieneś być w stanie ponownie zainstalować rzeczy.

Oli
źródło
Ta odpowiedź pomogła mi w przypadku askubuntu.com/questions/789302/ ...
Shayan
3

Miałem ten sam problem, wypróbowałem wszystkie powyższe rozwiązania wraz ze sprawdzeniem nad centrum oprogramowania Ubuntu. Nie mogłem go złamać. Wypróbowałem inny sposób, który działał dla mnie. Oto moje rozwiązanie

Po pierwsze, musimy mieć połączenie z Internetem, aby proces aktualizacji mógł się odbyć.

$sudo apt-get remove openssh-client

$sudo apt-get update

Jeśli aktualizacja się nie /var/lib/apt/lists/lockpowiedzie, możesz usunąć ten plik, co pomoże w pobraniu aktualizacji. Następnie uruchom następujące polecenie, które powinno działać

$sudo apt-get install openssh-server
Mr.Tananki
źródło
Nie próbuj tego, to nie działało dla mnie, a teraz mam mniej niż wcześniej
WhatAMesh
2

Ten komunikat o błędzie wskazuje na „wirtualny pakiet”, który istnieje tylko w Provides:linii innego pakietu lub określa się w Depends:, Recommends:lub Suggests:linie inny pakiet (y).

Aby wyświetlić listę pakietów, które mają opcję „Zapewnia: openssh-server”, należy uruchomić:

aptitude search "?provides(openssh-server)"

Podejrzewam, że masz inne problemy w systemie Ubuntu, prawdopodobnie w swoich sources.listplikach - przynajmniej w debianie, serwer openssh to przynajmniej pakiet rzeczywisty, a nie pakiet wirtualny. Byłbym zaskoczony, gdyby na Ubuntu było inaczej.

$ aptitude search "?provides(openssh-server)"
i   openssh-server                  - secure shell (SSH) server, for secure acce
p   openssh-server:i386             - secure shell (SSH) server, for secure acce
cas
źródło
0

Miałem ten sam problem, ciągle go usuwałem i dodawałem listę źródeł. W końcu okazało się, że mam również armhf z obcą architekturą, co spowodowało problemy. Najpierw wyczyściłem wszystkie pakiety ARM, a następnie architekturę.

apt-get purge ".*:<arch>"
dpkg --remove-architecture <arch>

Potem apt-get updatedziałało bez problemów i mogłem w końcu ponownie zaktualizować pakiety.

Toxantron
źródło