Har du prøvet at installere noget, men Ubuntu Den kan ikke installere det. Apt siger noget om "Intet filter at installere". Hvad betyder det, hvad er kilden til problemet, og kan det løses? Her er nogle måder, du kan løse det på.
Hvad betyder det?
Hvis du forsøger at installere en pakke, som Apt ikke ved, hvordan man installerer, vil den fortælle dig, at den ikke kan finde den. Dette kan ske, hvis du staver pakkenavnet forkert eller forsøger at installere et program, der ikke findes i standardarkivet.
Der er også et andet tilfælde af manglende pakker: Apt kan ikke finde dem på deres sædvanlige placering, men ved, at de er der, fordi en anden pakke refererer til dem.
For eksempel leveres der ikke Docker-relaterede pakker i Ubuntus repositories. Der er dog en række andre pakker, der refererer til det i standardrepositoriet. Dette kan igen være et problem, hvis du forsøger at oprette et WordPress-websted ved hjælp af Docker på Ubuntu.
Hvordan kan du fikse det?
Start med at kontrollere, om pakken blev fjernet under din seneste opdatering/opgradering. Du behøver ikke at finde den i krypterede logfiler; du skal blot opdatere og opgradere dit system til de nyeste versioner af den installerede software. Dette vil opdatere Apt-databasen:
sudo apt opdatering && sudo apt opgradering
Dette problem opstår, fordi Apt ikke automatisk kontrollerer, om dit lokale arkiv i øjeblikket er synkroniseret med den upstream-fjernbetjening. Når din enhed halter bagefter med opdateringer, vil alle valgte fjernlinks afbrydes og resultere i fejlen "Ingen kandidat til installation".
Når dit system er opdateret, kan du straks installere enhver pakke, der er tilgængelig i dit standardarkiv.
Tilføj et tredjepartsarkiv
Hvis det ikke virker, finder du sandsynligvis den specifikke pakke i et arkiv, der ikke er på listen i øjeblikket. Du skal blot finde den og tilføje den til din distributions softwarekilder.
Internettet er din ven, når det gælder om at finde et manglende arkiv. For eksempel kan du kopiere Dockers PPA-links (Personal Package Archive) fra deres hjemmeside for at inkludere deres arkiver i din lokale Apt-instans.
Når du har bestemt placeringen, kan du tilføje depotet til Ubuntu ved hjælp af kommandoen:
sudo tilføj-apt-repository REPOSITORY_PPA
Opdater din lokale kopi af Apt for at inkludere alle pakker fra det nye arkiv. For at gøre dette skal du køre følgende kommando:
sudo apt opdatering && sudo apt opgradering
Find en omdøbt pakke
I nogle sjældne tilfælde er problemet ikke et manglende arkiv, men en omdøbt pakke. Dette kan ske, når en pakke gennemgår en større revision eller flettes sammen med en anden pakke. For at søge efter tilgængelige pakker med lignende navne skal du bruge kommandoen:
apt-cache søgning PAKKE_NAVN
Afhængigt af hvad du søger efter, kan dette returnere en enorm liste over tilgængelige programmer. Her er et trick til at indsnævre det: Typisk vil pakkenavne ikke have nogen større navneændringer. Det, der kan ændre sig, er versionsnummeret eller et sekundært nøgleord. Heldigvis understøtter apt-cache Regex, så du kan søge efter pakker, der starter med det angivne nøgleord.
Lad os for eksempel antage, at du indtastede kommandoen ovenfor med "Firefox" som PAKKE_NAVN. I dette tilfælde ville du se snesevis af poster med ordet Firefox i deres navne eller beskrivelser. Du kan prøve følgende i stedet:
apt-cache-søgning "^PAKKE_NAVN*"
Ovenstående kommando returnerer en liste over alle pakker, hvis navne starter med PACKAGE_NAME. Hvis du erstatter PACKAGE_NAME med Firefox, vil du se en liste over alle pakker, der starter med "Firefox". Blandt disse vil du sandsynligvis finde et alternativ til det, du leder efter.
Ofte stillede spørgsmål
Q1. Er det muligt at finde en liste over tilgængelige PPA'er til Ubuntu?
svar. Ja! Selvom der ikke er et indbygget værktøj til at liste alle tilgængelige softwarekøbsaftaler, giver Canonical brugerne mulighed for at uploade oplysninger om deres personlige repositorier via Launchpad. Du kan søge efter pakkenavnet eller repositoryen, du leder efter. Kør sudo add-apt-repository med Launchpad-linket for at tilføje et specifikt repository til dit Ubuntu-system, og opdater derefter Apt ved at køre sudo apt update.
Bemærk, at da Launchpad indeholder brugerdefinerede lagre, skal du verificere integriteten af alle pakker og lagre, som du tilføjer til din enhed.
Q2. Ubuntu tilføjede ikke mit brugerdefinerede repository under opdateringen. Hvad gør jeg forkert?
svar. Dette skyldes højst sandsynligt en manglende nøgle fra det repository, du prøver at tilføje. Som standard bruger Ubuntu apt-nøglen til at verificere alle repositories for specificerede pakker, inklusive Canonicals inkluderede repositories og eventuelle tredjeparts-PPA'er fra Launchpad. Dette gælder ikke for andre repositories end Canonical og Launchpad, så du skal først finde den officielle signeringsnøgle til det repository, du prøver at tilføje.
Q3. Jeg bruger Ubuntu LTS, og jeg får fejlen "Ingen kandidat til installation". Er mit system i stykker?
svar. Nej! Fejlen "Ingen installationskandidat" kan også opstå, hvis du forsøger at installere en pakke, der kun er tilgængelig for en nyere version af Ubuntu. En måde at løse dette problem på er at bruge Ubuntu backport, et særligt arkiv, hvor brugere kan indsende en opdateret version af en pakke og vedligeholde den til ældre versioner af Ubuntu. Det kan være nyttigt, hvis en opgradering ikke er ønskelig, men den nyeste software er påkrævet. Du kan installere en pakke via backports ved hjælp af "-t"-indstillingen i apt efterfulgt af Ubuntu-versionsnavnet og "-backports".