Linux je skvělá volba operačního systému, dokud se nesetkáte s nějakou chybou. Nejde o to, že byste dělali něco špatně; uživatelé Linuxu se s podobnými situacemi setkávají běžně, což vyžaduje neustálé učení a řešení problémů.
Linux nabízí mnoho šikovných nástrojů pro správu balíčků. Ve většině případů noví uživatelé začínají s APT, protože často používají Ubuntu – jeden z nejrozšířenějších operačních systémů.
Při práci s APT se může stát, že narazíte na hlášku „Nelze najít balíček“, a to zejména v Ubuntu.
V tomto návodu se proto naučíme, jak tento problém odstranit. Budeme pracovat s Ubuntu jako příkladem. Pokud používáte jinou distribuci Linuxu, která využívá správce balíčků APT, můžete se tímto návodem řídit bez potíží.
Pojďme na to.
Co znamená chyba „E: Nelze najít balíček“?
Chybová hláška je poměrně srozumitelná. Zjednodušeně řečeno, snažili jste se nainstalovat balíček nebo aplikaci, ale objevil se vám text „E: Nelze najít název_balíku“.
To v podstatě znamená, že Linux nemůže najít balíček, který se pokoušíte nainstalovat.
Než začnete panikařit, vězte, že jde o poměrně častý problém u uživatelů Ubuntu či jiných systémů využívajících APT.
Dobrá zpráva je, že pro tento druh problému existují řešení. Ať už jste v Linuxu nováčkem nebo pokročilým uživatelem, s pomocí tohoto návodu byste měli být schopni problém vyřešit.
Přečtěte si také: Jak fungují správci balíčků Linux: Kompletní průvodce
Proč se objevuje chyba „E: Nelze najít balíček“?
Je důležité znát hlavní důvody této chyby, abychom ji lépe pochopili.
Při instalaci balíčku v Ubuntu obvykle používáte správce balíčků APT. Můžete k tomu použít příkazy `apt-get` nebo `apt`. Typický příkaz vypadá takto:
$ sudo apt-get install název-balíčku
Pokud vše funguje správně, neměly by se objevit žádné chyby. Balíček se nainstaluje bez problémů. Někdy se však objeví hláška „E: Nelze najít balíček název-balíčku“. Výstup pak vypadá nějak takto:
#výstup Čtení seznamů balíčků... Hotovo Vytváření stromu závislostí... Hotovo Čtení stavových informací... Hotovo E: Nelze najít balíček název_balíčku
Když dojde k této chybě, Linux nedokázal balíček lokalizovat. Je tedy na nás, abychom tento problém vyřešili a zabránili jeho opakování.
Než se pokusíme o opravu, je potřeba znát důvody. Mezi ně patří:
- Překlep v názvu balíčku – nejčastější příčina.
- Problém se seznamem zdrojů (repository).
- Mezipaměť úložiště Ubuntu neobsahuje informace o nových balíčcích.
- Doba podpory používané verze Ubuntu vypršela.
- Balíček není dostupný pro používanou verzi Linuxu.
- Hlavní úložiště neobsahuje požadovaný balíček.
Jak opravit chybu „Nelze najít balíček“?
V této části se podíváme na několik způsobů, jak tento problém vyřešit.
#1. Název balíčku – Zadali jste jej správně?
Jedna z nejběžnějších chyb, kterých se uživatelé Linuxu dopouštějí, je překlep v názvu balíčku. I sebemenší chyba způsobí, že Ubuntu vypíše chybu.
Podívejme se na příklad instalace Gimpu – nástroje pro úpravu obrázků.
$ sudo apt-get install gump
#výstup $ sudo apt-get install gump Čtení seznamů balíčků... Hotovo Vytváření stromu závislostí... Hotovo Čtení stavových informací... Hotovo E: Nelze najít balíček gump
Jak se dalo čekat, objeví se zpráva „E: Nelze najít balíček gump“. Balíček s názvem „gump“ totiž neexistuje.
Překlepy se mohou stávat častěji, než si myslíte. Linux rozlišuje velká a malá písmena, takže i když název balíčku napíšete správně, nemusí instalace proběhnout, pokud nezadáte správnou kombinaci velkých a malých písmen. Pokud se například pokusíte nainstalovat Gimp zadáním `Gimp`, instalace selže.
$ sudo apt-get install Gimp
Čtení seznamů balíčků... Hotovo Vytváření stromu závislostí... Hotovo Čtení stavových informací... Hotovo E: Nelze najít balíček Gimp
Gimp nainstalujete pouze tehdy, pokud název zadáte přesně tak, jak má být.
$ sudo apt-get install gimp
Co ale dělat, když přesně neznáte název balíčku? V takovém případě můžete vyhledat správný název pomocí příkazu `apt search`. Například pokud hledáte balíček, který obsahuje slovo „opice“, ale nejste si jisti jeho přesným názvem, použijte následující příkaz:
$ apt search monkey p graphmonkey - a GTK#-based graphing calculator p libex-monkeypatched-perl - experimental API for safe monkey-patching p libmonkey-patch-action-perl - module to monkey-patching subs from other p libmonkey-patch-perl - scoped monkey-patching Perl module p libtwelvemonkeys-java - collection of plugins and extensions for J p libtwelvemonkeys-java-doc - Documentation for libtwelvemonkeys-java p monkeysphere - leverage the OpenPGP web of trust for SSH v monkeysphere-validation-agent - v node-fs-monkey - p searchmonkey - search files using regular expressions aim
#2. Aktualizujte seznam balíčků/mezipaměť úložiště
Ubuntu pracuje s repozitáři trochu jinak. Nemá tendenci stahovat celé repozitáře, ale vytváří si jejich lokální mezipaměť. Tato mezipaměť pak obsahuje seznam dostupných balíčků.
Příkazem `sudo apt update` aktualizujete lokální mezipaměť.
$ sudo apt update
Když spustíte příkaz `apt-get install`, správce balíčků APT vyhledá balíček v mezipaměti. Až teprve poté, co získá informace o balíčku (např. verzi) z mezipaměti, přistoupí ke stažení z online úložiště.
Pokud balíček není v mezipaměti, Ubuntu vám vypíše chybu.
To se stává, když poprvé nainstalujete Ubuntu nebo jinou distribuci Linuxu založenou na Debianu (např. Linux Mint). Protože mezipaměť neobsahuje nejnovější informace, může instalace i standardních balíčků skončit chybou. Pokud máte čerstvou instalaci Ubuntu, měli byste alespoň jednou spustit `sudo apt update`, abyste vytvořili lokální mezipaměť.
V některých případech může být nutné mezipaměť aktualizovat i později. Opět pomocí příkazu `apt update`.
Před aktualizací je také vhodné vyčistit mezipaměť. To provedete pomocí následujícího příkazu:
$ sudo apt clean && sudo apt update
#3. Zkontrolujte dostupnost balíčku
I když zadáte správný název balíčku a máte aktualizovanou mezipaměť úložiště, stále se může stát, že se v Ubuntu objeví chyba „nelze najít balíček“. Je to proto, že balíček nemusí být dostupný. V takovém případě nemůžete balíček nainstalovat, ať se snažíte jakkoli.
Jaké máte možnosti?
Abychom pochopili vaše možnosti, je třeba se seznámit s pojmem repozitář Universe. Linux ho ve výchozím nastavení často nemá povolený, což může vést k chybě. Nebo verze Ubuntu, kterou používáte, nemusí mít přístup k balíčku, který se snažíte stáhnout a nainstalovat.
Chcete-li zkontrolovat, zda vaše Ubuntu není zastaralé, musíte nejprve zjistit jeho verzi. To provedete spuštěním tohoto příkazu:
nitt@logan99:~$ lsb_release -a
#výstup No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy
Používám nejnovější stabilní verzi 22.04 LTS s kódovým označením Jammy. To je dobře; zapamatujte si tyto údaje a přejděte na web Balíčky Ubuntu.
Na této stránce můžete vyhledávat balíčky ručně. Má praktickou funkci vyhledávání, do které můžete zadat klíčové slovo. Klíčovým slovem může být název balíčku nebo cokoli, co vám pomůže balíček identifikovat.
Stačí zadat název balíčku a stisknout tlačítko Hledat.
Jelikož je gimp dobře známý balíček, máme přesný výsledek.
Pokud si všimnete, je k dispozici v repozitáři Universe. Chcete-li stáhnout a nainstalovat balíček, musíte mít přístup k repozitáři Universe pro verzi Jammy 22.04 LTS.
Nyní už víte, že balíček je dostupný pro vaši verzi Ubuntu. Dále budete muset povolit repozitář. To provedete spuštěním následujícího příkazu:
$ sudo apt-add-repository universe multiverse
Tento příkaz aktivuje repozitáře universe a multiverse.
Jakmile to uděláte, nezapomeňte aktualizovat mezipaměť:
$ sudo apt update
Můžete také přidat další repozitáře, jako jsou main a restricted. Uděláte to pomocí následujících příkazů:
$ sudo apt-get-repository main $ sudo apt-get-repository restricted
Co ale dělat, když balíček není pro vaši verzi Ubuntu k dispozici? V takovém případě budete muset použít repozitáře třetích stran, jako je PPA. Více se o tom můžete dočíst zde: Co je Ubuntu PPA a jak jej nainstalovat?
#4. Zkontrolujte, zda používáte aktivní verzi Ubuntu
Ubuntu nabízí verzi LTS s dlouhodobou podporou na 3 nebo 5 let. Mnoho uživatelů proto nemusí aktualizovat na podporovanou verzi, což znamená, že systém nemůže přijímat nové aktualizace. Jakmile podpora vaší verze Ubuntu skončí, nebudete moci instalovat nové balíčky a zobrazí se chyba „nelze najít balíček“.
Chcete-li zkontrolovat, zda je vaše Ubuntu stále podporováno, spusťte následující příkaz:
$ hwe-support-status --verbose
#výstup nitt@logan99:~$ hwe-support-status --verbose You are not running a system with a Hardware Enablement Stack. Your system is supported until April 2027. nitt@logan99:~$
Jak vidíte, moje verze Ubuntu je podporována do dubna 2027. Zásobník hardwarových aktivací můžete ignorovat, protože s problémem nesouvisí.
Pokud vaše verze Ubuntu není podporována, jednoduše upgradujte na nejnovější verzi LTS.
#5. Opravte úložiště
Pokud nic z výše uvedeného nefunguje, je čas prozkoumat soubor Ubuntu `sources.list` ručně.
Tento soubor obsahuje všechna data týkající se repozitářů. Budete potřebovat přístup k souboru `/etc/apt/sources.list`.
Obecně je potřeba zkontrolovat, zda odkazy na repozitáře jsou aktivní a odpovídají oficiálnímu seznamu. Chcete-li si to ověřit, navštivte oficiální stránky distribuce a vyhledejte potřebné informace.
Závěr – Co dělat, když nic nefunguje?
Po hodině řešení problémů se stále setkáváte s chybou „E: nelze najít balíček“.
To může být frustrující. Můžete se vzdát, začít hledat alternativní balíček nebo zkusit znovu nainstalovat Ubuntu.
Než to uděláte, je nejlepší vyzkoušet všechny možnosti. Můžete například začít hledat starší verzi balíčku, která podporuje vaši verzi Ubuntu. Můžete ji najít v osobním repozitáři třetí strany (PPA).
Pokud nemůžete najít PPA obsahující požadovaný balíček, vyhledejte software na oficiálních webových stránkách. Často nabízejí přímý způsob stahování balíčků.
Pokud vše selže, nezbývá vám, než hledat alternativní aplikace.
Tímto končí náš návod, ve kterém jsme se naučili, jak řešit chybu „nelze najít balíčky“. Nyní byste měli mít jasnou představu o tom, jak Ubuntu pracuje s repozitáři prostřednictvím mezipaměti při získávání, stahování a instalaci balíčků.
Dále se podívejte na nejlepší příklady použití příkazu find v Linuxu.