"Невозможно найти пакет" при попытке установить пакеты с APT
Когда я пытаюсь установить любой пакет через командную строку, я получаю сообщение об ошибке.
$ sudo apt-get install <package>
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package <package>
Может ли кто-нибудь помочь мне в этом?
7 ответов
Сначала проверьте, существует ли пакет на самом деле:
- Перейдите на http://packages.ubuntu.com/ с помощью веб-браузера.
- Прокрутите вниз до "Поиск по каталогам пакетов"
Введите пакет, который вы пытаетесь установить, в поле "Ключевое слово".
Включить "Показывать только точные совпадения:"
Измените "Распространение", на какую версию Ubuntu вы используете.
Если результатов нет, то пакет, который вы ищете, не существует, и следующие шаги не будут работать. Может потребоваться сторонний PPA или альтернативный метод установки.
Если результаты найдены, пакет существует, и вы можете продолжить с этими шагами:
- Откройте Software Sources (или Software & Updates в 13.04+), выполнив поиск в Dash.
- Откройте вкладку "Программное обеспечение Ubuntu".
Убедитесь, что первые 4 флажка на этой вкладке включены:
Обновите списки пакетов, затем протестируйте их с помощью следующих команд:
sudo apt-get update sudo apt-get install
Есть много вопросов по этой теме. Здесь я даю основной / общий ответ.
когда apt-get install
не может найти пакет, пакет, который вы хотите установить, не может быть найден в репозиториях, которые вы добавили (в /etc/apt/sources.list
и под /etc/apt/sources.list.d/
).
Следующая (общая) процедура помогает решить эту проблему:
Убедитесь, что вы включили репозитории Ubuntu:
Чтобы включить все репозитории (
main
,universe
,restricted
,multiverse
), используйте следующие команды:sudo add-apt-repository main sudo add-apt-repository universe sudo add-apt-repository restricted sudo add-apt-repository multiverse
Посетите справку для получения дополнительной информации.
Для поиска PPA для дополнительных пакетов:
- Перейти к поиску пакетов Ubuntu. (Уже объяснил в этом ответе)
- Для внешних репозиториев посетите Обновления Ubuntu и выполните поиск по кнопка. или посетите PPA.
- Или поиск в панели запуска ppa
- Найдите подходящий ppa в соответствии с вашей версией Ubuntu.
Добавьте PPA (из командной строки):
Используйте эту команду:
sudo add-apt-repository ppa:<repository-name>
Посетите справку сообщества Ubuntu для получения дополнительной информации.
Не забудьте обновить (сообщить о своих изменениях):
Необходимо выполнить эту команду после изменения любых репозиториев:
sudo apt-get update
Выбор лучшего сервера загрузки может помочь ускорить обновление.
Наконец, установите пакет:
sudo apt-get install <package>
См. Управление пакетами по командной строке.
Дополнительно / Совет: вы можете найти правильное имя пакета (то есть имя в хранилище), используя
apt-cache search <package-name>
,
Связанные часто задаваемые вопросы и ответы:
Примечание. Если пакет недоступен в хранилище каким-либо образом, вам придется подождать, пока он станет доступен (в случае новых / обновленных версий), или использовать другие процессы установки, кроме apt-get
например, компиляция из исходного кода, загрузка исполняемого двоичного файла и т. д.
Свежая установка Ubuntu?
Часто бывает достаточно просто обновить списки пакетов из всех репозиториев и PPA:
sudo apt-get update
Это должно быть первое, что нужно сделать.
Если это не сработает, вам нужно найти репозиторий или PPA, который содержит нужный вам пакет, добавить его и запустить
sudo apt-get update
еще раз. Шаги этого процесса подробно описаны в других ответах на этой странице.
xbmc доступен только в репозитории юниверсов, только начиная с Ubuntu 12.04 (точнее). Если у вас более старая версия Ubuntu, вам нужно обновить или получить xbmc из другого места.
Если у вас Ubuntu 12.04, убедитесь, что вы включили хранилище юниверсов. Вы можете увидеть, какие репозитории вы включили в файл /etc/apt/sources.list
(и в файлах в каталоге /etc/apt/sources.list.d
). Убедитесь, что этот файл содержит строку вроде
deb http://al.archive.ubuntu.com/ubuntu/ precise universe
или же
deb http://zw.archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse
Если вы найдете только строку, как
deb http://mn.archive.ubuntu.com/ubuntu/ precise main restricted
и не соответствует universe
, добавлять universe
в конце этой строки или отдельной строкой с precise universe
, как показано выше.
Если вам нужно изменить /etc/apt/sources.list
, бежать sudo apt-get update
затем попробуйте установить снова. Если пакет все еще не найден, опубликуйте полное содержание /etc/apt/sources.list
и выход sudo apt-get update
,
Я новичок в Ubuntu, но я пишу это, поскольку я обнаружил некоторые решения, чтобы избежать ошибок "Unable to Locate Package". Есть три обстоятельства, когда это может произойти с шоком.
- Это может произойти после установки Ubuntu, если вы не обновляете его, а затем выполняете обновления.
- Если в будущем произойдет много обновлений программного обеспечения, убедитесь, что все важные обновления / рекомендуемые обновления отключены, введя "Диспетчер обновлений" при нажатии Alt+F2.
- Первая и вторая проблема может возникнуть даже после обновления или очистки всех обновлений. Но вечное решение: попробуйте пункты 1 и 2, затем введите
sudo apt-get killmanager
Если не работает, не проблема перейти к типуsudo apt-get update
затем введитеsudo apt-get upgrade
,
Теперь вы сможете установить любое программное обеспечение через терминал.
В случае, когда пытались установить файл:
sudo apt-get install libstdc++.so.6
вместо пакета. Вы получаете сообщение об ошибке:
E: Unable to locate package libstdc++.so.6 E: Couldn't find any package by regex 'libstdc++.so.6'
потому что вы пытались установить файл libstdc++.so.6
что вы не можете установить, потому что он находится в пакете debian.
Ты можешь использовать apt-file
искать пакет, содержащий этот файл. Чтобы установить его, введите:
sudo apt-get install apt-file
Затем вы должны обновить индекс.
sudo apt-file update
После этого вы можете искать пакет, который содержит файл libstdc++.so.6
:
sudo apt-file find libstdc++.so.6
Затем вы найдете много пакетов, которые содержат искомый файл. Для этого примера я вставляю только один результат поиска:
libstdc++6: /usr/lib/x86_64-linux-gnu/libstdc++.so.6
Затем вы можете установить необходимый пакет libstdc++6
:
sudo apt-get install libstdc++6
вы должны указать либо полный путь, либо относительный путь для доступа к файлу xxx.deb
sudo apt-get install google-chrome-stable_current_amd64.deb # плохой способ
sudo apt-get install ./google-chrome-stable_current_amd64.deb # правильный путь
обратите внимание, что я указываю относительный путь для доступа к файлу xxx.deb, как в ./xxx.deb, это преднамеренная мера безопасности, чтобы предотвратить установку sudo потенциально мошеннического xxx.deb из переменной PATH