Туториал для новичков: как избавиться от ошибки "E: Unable to locate package" на Linux Ubuntu.

Команда apt или apt-get - один из способов установки ПО на Ubuntu. В терминале после команды прописывается название программы, которую нужно установить.

sudo apt install package_name

Иногда в процессе установки происходит сбой. Уведомление выглядит следующим образом:

sudo apt-get install package_name
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package package_name

Текст ошибки говорит сам за себя. Система не может найти пакеты, которые вы пытаетесь установить. Почему это происходит?

Устранение ошибки "Unable to locate package" на Ubuntu

Шаг за шагом рассмотрим, что могло пойти не так.

1. Имя пакета

Это нужно проверить в первую очередь. Возможно, в название закралась опечатка. Если нужно установить "vlc", а в команде прописано "vcl", то, вполне естественно, процесс прервётся.

2. Обновление кэша репозитория

Во время первого старта системы необходимо запустить обновление при помощи следующей команды:

Эта команда не будет сразу же обновлять Ubuntu. Она предназначена для обновления информации о пакетах, содержащихся в репозиториях.

Когда запускается команда установки, apt-менеджер находит в кэше информацию о пакете и его версии, после чего загружает файлы через репозиторий. Соответственно, если пакета нет в кэше, появится уведомление об ошибке.

Сразу после установки новой системы, её кэш еще пуст. Именно поэтому в таких случаях необходимо прописать команду обновления как для Ubuntu, так и для любого другого дистрибутива на её основе (например, Linux Mint) во время первого запуска.

Но даже при работе с давно установленной системой есть шанс, что нужный пакет не был подгружен. Чтобы исключить такую вероятность, стоит перестраховаться и обновить кэш.

3. Доступен ли пакет для используемой версии Ubuntu

Итак, название написано правильно, кэш обновлён, но ошибка всё равно появляется.

Вероятно, пакет доступен через репозиторий Universe, а ваша система или не поддерживает его, или версия Ubuntu не поддерживается данной программой.

Шаг первый – проверить актуальную версию Ubuntu через терминал.

lsb_release -a

На выходе отображается номер версии и кодовое имя.

abhishek@itsfoss:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.3 LTS
Release:	18.04
Codename:	bionic

Например, версия Ubuntu 18.04 c кодовым именем “bionic”.

Шаг второй – расширенный поиск на сайте пакетов Ubuntu.

На сайте доступна опция поиска по ключевому слову. Вводим название пакета и выставляем кодовое имя дистрибутива. В графе ”секция” нужно выставить значение ”any”. Запускаем поиск.

Так можно узнать, доступен ли пакет для конкретной версии Ubuntu и, если доступен, то к какому репозиторию он относится. Разберём на примере Shutter, программы для создания скриншотов, которую не обновляли в течение последних лет. Для версии Ubuntu18.04 Bionic будут выведены следующие данные.

В этом случае есть точное совпадение с названием пакета. Он доступен для версии Ubuntu 18.04 Bionic и относится к репозиторию Universe.

Если искомый пакет доступен для вашей версии системы, но относится к Universe или Multiverse, необходимо установить дополнительные репозитории.

sudo add-apt-repository universe multiverse

После этого обновите кэш, чтобы убедиться, что пакеты доступны через репозитории.

sudo apt update

Ничего не помогло, что делать?

Если пакет недоступен и на сайте Ubuntu, то нужно искать другой способ установки. Усилиями сторонних разработчиков были созданы персональные архивы пакетов (PPA). Здесь стоит быть осторожными с неофициальными архивами и не добавлять сомнительные версии в систему.

Если этот способ не сработал, можно посетить официальный сайт проекта и уточнить, есть ли альтернативные способы установки их программ. На некоторых ресурсах доступны .DEB или AppImage файлы. Какие-то проекты могли перейти на пакеты Snap.

Всегда есть вероятность, что проект был закрыт и более не поддерживается. В таком случае выход один: искать альтернативу самой программе.