I’m using an image nginx
which is based on dockerfile/ubuntu
. On attaching to the docker container’s shell
docker exec -it <container_id> /bin/bash
I want to do a git pull
so I tried installing git
but apt
is unable to find the package:
root@a71e45d5cd40:/# apt-get install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package git
How can we install git
from that image and why is it missing?
cat /etc/apt/sources.list
deb http://httpredir.debian.org/debian wheezy main
deb http://httpredir.debian.org/debian wheezy-updates main
deb http://security.debian.org wheezy/updates main
deb http://nginx.org/packages/mainline/debian/ wheezy nginx
cat /etc/apt/sources.list.d/*
cat: /etc/apt/sources.list.d/*: No such file or directory
apt-cache madison git
N: Unable to locate package git
I am trying to install git, I used sudo apt-get install git
command and it results:
E: Unable to locate package git
This question have been asked by many people but not a single answer has fixed my problem, I have tried:
sudo apt-get update
sudo apt-get upgrade
P.s: I am using ubuntu 14.04
asked Dec 6, 2014 at 11:23
mshahbazmmshahbazm
3711 gold badge3 silver badges6 bronze badges
7
You can add manually repository
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E1DD270288B4E6030699E45FA1715D88E1DF1F24
sudo su -c "echo 'deb http://ppa.launchpad.net/git-core/ppa/ubuntu trusty main' > /etc/apt/sources.list.d/git.list"
sudo apt-get update
sudo apt-get install git
answered Jul 23, 2015 at 17:44
pl_rockpl_rock
11k7 gold badges40 silver badges41 bronze badges
2
I got this error after spinning up a Debian instance on DigitalOcean. The fix was to
sudo apt update
answered Mar 22, 2020 at 12:37
when you install Ubuntu package off-line usually in first of installation its cache doesn’t get update so this error will occur and you have in your Ubuntu broken packages . for solution type in Terminal:
sudo apt-get install -f
it will repair broken packages and after it you can continue.
muru
192k52 gold badges468 silver badges719 bronze badges
answered Feb 17, 2015 at 16:51
I am trying to install git, I used sudo apt-get install git
command and it results:
E: Unable to locate package git
This question have been asked by many people but not a single answer has fixed my problem, I have tried:
sudo apt-get update
sudo apt-get upgrade
P.s: I am using ubuntu 14.04
asked Dec 6, 2014 at 11:23
mshahbazmmshahbazm
3611 gold badge3 silver badges6 bronze badges
7
You can add manually repository
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E1DD270288B4E6030699E45FA1715D88E1DF1F24
sudo su -c "echo 'deb http://ppa.launchpad.net/git-core/ppa/ubuntu trusty main' > /etc/apt/sources.list.d/git.list"
sudo apt-get update
sudo apt-get install git
answered Jul 23, 2015 at 17:44
pl_rockpl_rock
10.8k7 gold badges40 silver badges41 bronze badges
2
I got this error after spinning up a Debian instance on DigitalOcean. The fix was to
sudo apt update
answered Mar 22, 2020 at 12:37
when you install Ubuntu package off-line usually in first of installation its cache doesn’t get update so this error will occur and you have in your Ubuntu broken packages . for solution type in Terminal:
sudo apt-get install -f
it will repair broken packages and after it you can continue.
muru
188k50 gold badges459 silver badges709 bronze badges
answered Feb 17, 2015 at 16:51
@mues-lee Sorry, I’ve just seen your message. I’ve tried something else after reporting this issue. I replaced all apt
commands with apt-get
, and it worked, installation was completed successfully. It is strange because, as I know, theoretically there is no difference between apt
and apt-get
. I’ve just run sudo apt-get update
and sudo apt-cache policy git
with working openhab, and
the output of sudo apt-get update
:
Hit:1 https://deb.nodesource.com/node_7.x stretch InRelease
Ign:2 https://dl.bintray.com/openhab/apt-repo2 stable InRelease
Hit:3 https://dl.bintray.com/openhab/apt-repo2 stable Release
Hit:5 http://raspbian.raspberrypi.org/raspbian stretch InRelease
Hit:6 http://archive.raspberrypi.org/debian stretch InRelease
Ign:7 http://repos.azulsystems.com/debian stable InRelease
Hit:8 http://repos.azulsystems.com/debian stable Release
the output of sudo apt-cache policy git
:
git:
Installed: 1:2.11.0-3+deb9u2
Candidate: 1:2.11.0-3+deb9u2
Version table:
*** 1:2.11.0-3+deb9u2 500
500 http://raspbian.raspberrypi.org/raspbian stretch/main armhf Packages
100 /var/lib/dpkg/status
- Forum
- The Ubuntu Forum Community
- Ubuntu Official Flavours Support
- New to Ubuntu
- [SOLVED] Unable to locate package git
-
apt-get install git
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package gitFrom the forum noticed it is solved by doing an update but update is failing as well…..not sure what is wrong with my /etc/apt/source-list
Last edited by oldos2er; July 29th, 2014 at 11:48 PM.
Reason: Please use code tags to contain large terminal output.
-
Re: Unable to locate package git
Found answer to my problem , my /etc/apt/apt.conf file was having an entry for proxy and the proxy url had a typo.
-
Re: Unable to locate package git
Good, please mark the thread ‘solved’.
Bringing old hardware back to life. About problems due to upgrading.
Please visit Quick Links -> Unanswered Posts.
Don’t use this space for a list of your hardware. It only creates false hits in the search engines.
Tags for this Thread
Bookmarks
Bookmarks
Posting Permissions
Туториал для новичков: как избавиться от ошибки «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.
Всегда есть вероятность, что проект был закрыт и более не поддерживается. В таком случае выход один: искать альтернативу самой программе.
Один из многих способов установки программного обеспечения в Ubuntu – команда apt-get или apt. Установка пакетов с помощью пакетного менеджера намного удобнее и безопаснее, чем поиск и загрузка программ в интернете. Открыв терминал, вы должны вызвать утилиту apt с параметром install написать название программы, чтобы установить ее.
При использовании этой команды иногда возникает ошибка E: Unable to locate package. Ошибка не нуждается в пояснении. Linux-система не может найти пакет, который вы пытаетесь установить. Но почему так? Почему она не видит пакет? Рассмотрим несколько способов решения данной проблемы. В этой статье мы рассмотрим как исправить ошибку Unable to locate package error в Ubuntu.
Дальше пошагово рассмотрим процесс устранения ошибки.
1. Проверьте имя пакета
Это первое, что вы должны сделать. Может, в названии пакета опечатка? Если вы пытаетесь установить vlc и написали vcl, то непременно ничего не получится. Опечатки – распространенная проблема, так что убедитесь в том, что вы не допустили ошибок во время ввода имени пакета.
2. Обновите кэш репозиториев
Если вы в первый раз запустили систему после установки, следует написать команду update:
sudo apt update
Данная команда не обновит Ubuntu полностью. На деле, команда apt update составляет локальный список доступных для установки пакетов.
При использовании команды install, менеджер пакетов apt просматривает кэш, чтобы получить информацию о пакете и его версии, а затем скачать его из репозиториев в сети. Если пакета в кэше нет, система не сможет его установить.
Кэш в только что установленной системе изначально пуст. Именно поэтому вам стоит запустить команду apt update сразу после установки Ubuntu или других дистрибутивов, основанных на Ubuntu (например, Linux Mint).
Даже если система не новая, кэш apt вполне может оказаться устаревшим. В любой момент не лишним будет его обновить.
3. Убедитесь, что пакет доступен в вашей версии Ubuntu
Отлично! Вы проверили название пакета, и оно верно. Вы запустили команду update, чтобы обновить состояние кэша, но все ошибка unable to locate package все еще присутствует. Вполне возможно, что пакет попросту недоступен. Но вы следуете инструкции с какого-то сайта, и у всех получается установить его указанным образом. В чем может заключаться проблема?
Есть два варианта. Либо пакет доступен в репозитории Universe, который в вашей системе не включен, либо пакета вовсе не существует для вашей версии Ubuntu.
Первый шаг – проверьте, какая версия Ubuntu у вас запущена. Откройте терминал и введите следующую команду:
lsb_release -a
В результате вы увидите версию Ubuntu и ее кодовое название. Именно кодовое название нам важно больше всего. Как видите, мы используем Ubuntu 18.04 с кодовым именем bionic. У вас может быть иначе, но суть должна быть понятна. Как только вы получили сведения о версии и названии, откройте сайт Ubuntu Packages.
Пролистайте пониже и остановитесь на заголовке Поиск. Вы увидите поле с ключевым словом. Введите название пакета, который ваша система не может найти, и выберите соответствующее кодовое имя. Секцию поставьте любую. После проделанных действий, нажмите на кнопку поиска.
Вам будет показано, доступен ли пакет для вашей версии Ubuntu, и если это так, то вместе с этим отобразится репозиторий, в котором он находится. Мы искали средство создания скриншотов Shutter и вот, что вышло для Ubuntu 18.04 Bionic:
В нашем случае, название пакета точно совпало. Это значит, что пакет shutter существует для Ubuntu 18.04 Bionic, но в репозитории Universe.
Если необходимый пакет доступен для вашей версии Ubuntu, но в Universe или Multiverse, эти репозитории необходимо включить:
sudo add-apt-repository universe multiverse
Также нужно обновить кэш для того, чтобы система узнала о новых пакетах, находящихся в подключенных репозиториях:
sudo apt update
Теперь установка пакета должна пройти гладко.
Ничего не работает, что делать?
Если сайте Ubuntu Packages показывает, что пакета для вашей версии системы нет, то придется найти обходные пути его установки.
Возьмем в качестве примера Shutter. Это отличное средство создания скриншотов для Linux, но его несколько лет не обновляли, поэтому в Ubuntu 18.10 и более новых версиях оно не поддерживается. Как же его установить? К счастью, один сторонний разработчик создал собственный репозиторий (PPA) и установить программу можно с помощью него. Искать пакеты и PPA, в которых они находятся, можно на сайте Launchpad для Ubuntu.
Учтите, что не стоит подключать неофициальные PPA к списку репозиториев. Лучше пользоваться теми, которые есть в вашем дистрибутиве.
Если нет даже PPA, зайдите на официальный сайт программы и проверьте, нет ли там описания альтернативных способов установки. У некоторых проектов есть .deb или AppImage файлы. Другие перешли на Snap пакеты.
Иными словами, проверьте на официальном сайте, не изменился ли метод установки приложения.
Если ничего не помогло, есть вероятность, что проект уже не поддерживают, и в таком случае придется поискать программе замену.
В заключение…
Теперь вы знаете как исправить ошибку unable to locate package Ubuntu. Если вы начали пользоваться Linux недавно, все может казаться очень непонятным. По этой причине мы освещаем подобные темы, чтобы вы могли лучше разобраться в том, как работают те или иные аспекты вашей системы.
Надеемся, что это руководство помогло решить проблему с пакетами в Ubuntu. Если у вас есть вопросы или предложения, можно оставить их в комментариях.
Мне кажется, что может быть проблема с зеркалами Ubuntu EC2. После свежего обновления apt-get я вижу это:
$ apt-get install -yq git
E: Unable to locate package git
Еще через несколько apt-get
, это часто удается.
2 ответы
Обновить apt-get
пакеты, выполните следующую команду:
$ apt-get update
Создан 20 фев.
Зеркала все еще кажутся разбитыми, но мне удалось обойти проблему с помощью тупого цикла:
# stupid loop to get around ubuntu package mirror problems
for attempt in 1 2 3; do
if [ ! -z "`which git`" ]; then
break
fi
echo "Trying to install git, attempt $attempt"
sudo apt-get update -yq --fix-missing
sudo apt-get install -yq git
done
Обычно достаточно 3-х попыток, чтобы найти рабочее зеркало.
Создан 24 сен.
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками
git
ubuntu
amazon-ec2
packaging
apt
or задайте свой вопрос.
@mues-lee Sorry, I’ve just seen your message. I’ve tried something else after reporting this issue. I replaced all apt
commands with apt-get
, and it worked, installation was completed successfully. It is strange because, as I know, theoretically there is no difference between apt
and apt-get
. I’ve just run sudo apt-get update
and sudo apt-cache policy git
with working openhab, and
the output of sudo apt-get update
:
Hit:1 https://deb.nodesource.com/node_7.x stretch InRelease
Ign:2 https://dl.bintray.com/openhab/apt-repo2 stable InRelease
Hit:3 https://dl.bintray.com/openhab/apt-repo2 stable Release
Hit:5 http://raspbian.raspberrypi.org/raspbian stretch InRelease
Hit:6 http://archive.raspberrypi.org/debian stretch InRelease
Ign:7 http://repos.azulsystems.com/debian stable InRelease
Hit:8 http://repos.azulsystems.com/debian stable Release
the output of sudo apt-cache policy git
:
git:
Installed: 1:2.11.0-3+deb9u2
Candidate: 1:2.11.0-3+deb9u2
Version table:
*** 1:2.11.0-3+deb9u2 500
500 http://raspbian.raspberrypi.org/raspbian stretch/main armhf Packages
100 /var/lib/dpkg/status
Issue
I’m using an image nginx
which is based on dockerfile/ubuntu
. On attaching to the docker container’s shell
docker exec -it <container_id> /bin/bash
I want to do a git pull
so I tried installing git
but apt
is unable to find the package:
[email protected]:/# apt-get install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package git
How can we install git
from that image and why is it missing?
cat /etc/apt/sources.list
deb http://httpredir.debian.org/debian wheezy main
deb http://httpredir.debian.org/debian wheezy-updates main
deb http://security.debian.org wheezy/updates main
deb http://nginx.org/packages/mainline/debian/ wheezy nginx
cat /etc/apt/sources.list.d/*
cat: /etc/apt/sources.list.d/*: No such file or directory
apt-cache madison git
N: Unable to locate package git
Solution
This is happening because the apt repository is not yet updated, it is common practice to clean your apt repositories and tmp files after creating an image, which your base image is probably doing.
To fix this, you are going to want to run apt-get update
prior to installing git, it is good practice to combine the update and install command at the same time to bust cache on the update if the install line changes:
RUN apt-get update && apt-get install -y git
Using -y
is convenient to automatically answer yes to all the questions.
Answered By — Michael