Debian apt get update не работает

Обновлено: 21.11.2024

APT (Advanced Packaging Tool) — это усовершенствованная система управления пакетами, используемая Debian Linux и дистрибутивами Linux на основе Debian (например, Ubuntu). APT автоматически настраивает, компилирует и устанавливает программное обеспечение из многих источников, таких как Интернет, сервер локальной сети или компакт-диск. Это может значительно упростить процесс установки и удаления программного обеспечения в системе Linux.

APT — это не отдельная команда, а набор инструментов управления пакетами, состоящий из набора команд. К наиболее часто используемым командам APT относятся apt-get и apt-cache.

Иногда вы сталкиваетесь с ошибкой «apt-get : команда не найдена» при попытке запустить команды apt-get либо на вашем собственном компьютере с Linux, либо на сервере. Эта статья поможет вам понять несколько причин, почему это может произойти, и как быстро это исправить.

Проверьте свой дистрибутив Linux

В любой момент существует около тысячи дистрибутивов Linux (или дистрибутивов Linux). Их можно настроить и оптимизировать для различных устройств (настольных компьютеров, ноутбуков, серверов, планшетов и т. д.). Они могут быть упакованы так, как подходит сообществу. Их даже можно разработать исключительно для использования в онлайн-сервисе (Amazon Linux AMI).

Некоторые дистрибутивы Linux достаточно развиты, чтобы считаться основным дистрибутивом. Почти все остальные будут основывать свои выпуски на одном из «основных», которые имеют собственные предпочтения в отношении стандартных пакетов (включая менеджер пакетов, такой как apt).

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

Как видно из таблицы, только дистрибутивы на базе Debian и Ubuntu используют apt по умолчанию.

Вы можете проверить, содержит ли ваш дистрибутив apt под капотом или нет, введя команду cat /etc/*-release или воспользовавшись одним из нескольких других способов.

Если вы копируете команды терминала из руководства, мы предлагаем вам найти другое, подходящее для используемого вами дистрибутива Linux. Или, что еще лучше, вы можете использовать AppImage, новый формат упаковки, который позволяет запускать приложения в виде переносимых исполняемых файлов.

«apt-get : команда не найдена» — частая проблема пользователей AWS, использующих образы Amazon Linux на своих серверах. Вы должны иметь в виду, что Amazon Linux сначала основан на CentOS, а затем расходится, но сохраняет yum в качестве предпочтительного менеджера пакетов. Поэтому вместо того, чтобы следовать руководствам для Ubuntu/Debian с их apt, ищите руководства, созданные для Fedora или CentOS.

Проверить подходящий путь для его двоичного файла

"apt-get : команда не найдена" означает, что система не может получить доступ к apt-get по своему пути. Логичным способом решить эту проблему было бы вручную проверить правильность пути.

Введите следующую команду в терминале, чтобы увидеть, где система ожидает, что двоичный файл apt-get будет находиться :

Следующий вывод должен выглядеть как следующее изображение или содержать эту строку: /usr/bin/apt-get

Если команда не возвращает никаких результатов, у вас не установлен пакет «apt».

Вам придется установить его вручную, используя файл .deb.

Переустановите apt с помощью dpkg

Перейдите к пути /pool/main/a/apt/, и вы увидите группу пакетов .deb. Выберите тот, который подходит для вашей архитектуры (и 64/i386)

После завершения загрузки вы можете установить apt DEB-файл, выполнив следующую команду:

Не забудьте заменить /path/to/apt_deb_file.deb на путь к файлу, который вы только что скачали.

macOS по умолчанию не использует менеджер пакетов APT. На самом деле в ОС вообще нет менеджера пакетов по умолчанию. Однако существует чрезвычайно популярная альтернатива APT для macOS под названием Homebrew.

Ниже показано, как установить Homebrew на macOS.

Сначала нажмите комбинацию клавиш Command + пробел, чтобы открыть Spotlight. Введите "terminal" без двойных кавычек и нажмите Enter.

Затем вам необходимо установить XCode, выполнив следующую команду:

После успешной установки XCode вы можете установить Homebrew, выполнив следующую однострочную команду

Обратите внимание, что в некоторых руководствах, которые вы нашли в Интернете, вместо /bin/bash может использоваться ruby. Раньше установщик Homebrew полагался на Ruby в качестве предварительных условий, но теперь он был переписан с нуля и использует встроенную оболочку bash, включенную в macOS. В современных версиях macOS вы можете столкнуться с сообщением «Интерактивная оболочка по умолчанию теперь zsh». У нас есть руководство по ее устранению, которое вы можете проверить.

Теперь дождитесь завершения установки. Во время этого процесса вам может быть предложено ввести пароль.

Иногда установщик Homebrew где-то зависал и оставлял поврежденную установку. В этом случае вы можете прочитать наше руководство по возможным исправлениям для «варки: команда не найдена».

Команда для установки пакета с Homebrew аналогична ее аналогу APT.

В крайнем случае: переустановите ОС

Если вы использовали два описанных выше метода безуспешно, то самый быстрый вариант в этой ситуации — переустановить операционную систему. На сервере вы можете просто повторно создать образ сервера, чтобы начать все заново.

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

Заключение

Мы надеемся, что это руководство поможет вам эффективно и быстро решить вашу проблему. Если это так, пожалуйста, подумайте о том, чтобы оценить статью ниже. Вы также можете ознакомиться с нашим руководством о том, как исправить ошибку «Невозможно заблокировать каталог администрирования (/var/lib/dpkg/)» в apt, которая является еще одной распространенной ошибкой среди новичков в Linux.

Диспетчеры пакетов в Linux — это наиболее полезные программы, которые используются для добавления дополнительных возможностей в систему. Их можно использовать для установки, удаления, обновления и обновления пакетов, а также с возможностями разрешения зависимостей. Однако, как и в любой другой программе, с этими менеджерами пакетов тоже могут возникнуть проблемы. Иногда при обновлении или установке сторонней программы установка идет не так и приводит к ошибкам, требующим установки отсутствующих зависимостей и неработающих пакетов. Эта ошибка также может возникать из-за неправильного управления пакетами, неправильной установки пакетов и установки ненужных пакетов. Какой бы ни была причина, проблема в том, что вы получили сообщение об ошибке и остались с условием, при котором вы не можете ни добавить новый пакет, ни обновить или удалить существующие пакеты, пока не устраните проблему.

В этой статье мы узнаем, как исправить отсутствующие зависимости и поврежденные пакеты с помощью команды apt-get. Обратите внимание, что мы выполнили команды и процедуры, упомянутые в этой статье, в системе Debian 10. Ту же процедуру можно выполнить в Ubuntu и более ранних версиях Debian.

Мы будем использовать Терминал командной строки для опробования решений и устранения проблемы. Чтобы открыть приложение «Терминал» в Debian, нажмите супер-клавишу на клавиатуре и найдите его с помощью появившейся панели поиска. Когда появится результат поиска, щелкните значок терминала, чтобы открыть его.

Использование apt-get для исправления отсутствующих и поврежденных пакетов

Apt-get — это инструмент управления пакетами на основе терминала, используемый для установки, обновления и удаления пакетов. Наряду с этими функциями он также имеет флаги, которые можно использовать для исправления отсутствующих зависимостей и сломанных пакетов.

Способ 1

Используйте параметр «fix-missing» с «apt-get update», чтобы запустить обновления и убедиться, что пакеты обновлены и нет новой версии. доступно для пакетов.

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

Еще один подход к решению проблемы с неработающими пакетами с помощью apt-get – отредактировать файл «/etc/apt/sources/list» и добавить сайты с более новыми версиями доступных пакетов. Затем запустите команду «apt-get update», чтобы обновить список репозиториев.

Если описанный выше метод не устраняет проблему с неработающими зависимостями и неработающими пакетами, но ошибка по-прежнему возникает, попробуйте следующие методы.

Другие методы

Способ 1:

В этом методе мы будем использовать «apt-get autoremove» и «dpkg», чтобы исправить отсутствующие зависимости и поврежденные пакеты.

<р>1. Обновите индекс репозитория, выполнив следующую команду в Терминале:

<р>2. Затем выполните приведенную ниже команду, чтобы очистить локальный репозиторий:

<р>3. Выполните приведенную ниже команду, чтобы удалить все ненужные пакеты, которые больше не нужны:

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

<р>4. Затем попробуйте выполнить приведенную ниже команду в Терминале, чтобы принудительно удалить поврежденный пакет:

Метод 2:

В следующем методе мы будем использовать команду «dpkg—configure», чтобы исправить отсутствующие зависимости и поврежденные пакеты.

Dpkg — это инструмент управления пакетами, который можно использовать для установки, удаления и управления пакетами. Подобно apt-get, он также может помочь исправить сломанные пакеты и отсутствующие зависимости.Если вы получаете какие-либо ошибки при установке или обновлении пакетов, попробуйте следующее решение с помощью dpkg:

<р>1. Выполните приведенную ниже команду в Терминале, чтобы перенастроить все частично установленные пакеты.

Если приведенная выше команда не работает, как в нашем случае, и вы видите аналогичные результаты, отображающие ошибочный пакет, попробуйте удалить пакет.

<р>2. Выполните приведенную ниже команду в Терминале, чтобы удалить ошибочный пакет.

<р>3. Затем используйте приведенную ниже команду, чтобы очистить локальный репозиторий:

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

Исправление ошибок зависимостей и неработающих пакетов, а затем возврат системы в нормальное состояние может занять несколько часов. Иногда это становится настолько сложным, что, когда вы, наконец, исправите это, вы чувствуете себя таким счастливым. Мы представили несколько решений относительно этой ошибки, поэтому попробуйте их. Если вы знаете некоторые из возможных решений, которые мы не упомянули, сообщите нам об этом в комментариях.

Об авторе

Карим Буздар

Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов. Он ведет блог на LinuxWays.

Если я удалю вторую строку, то вышеприведенная команда будет работать нормально.

Я проверил в репозиториях. нет папки с именем jessie-updates.

У нас есть много сборок Docker, требующих обновления apt-get.

Я не могу обновить все файлы Docker, чтобы удалить вторую строку.

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

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

3 ответа 3

Согласно IRC-каналу Debian, обновления jessie теперь не поддерживаются:

Вы можете либо перейти на Stretch, либо обновить файл /etc/apt/sources.list следующим образом:

jessie-updates удален, jessie-backports отправлен в архив

Спасибо за комментарии Стивена Китта и Дэниела ниже.

Это неверно, по крайней мере, для архитектур, которые все еще поддерживаются в Jessie LTS. Они по-прежнему обслуживаются основным архивом, кроме jessie-updates, которые были удалены, и jessie-backports, которые были заархивированы.

Команда debian не перемещала jessie-updates в архивный репозиторий (пока). Но они уже удалили его из обычных репозиториев. Итак, в настоящее время у вас нет доступа к jessie-updates. Поэтому вам необходимо удалить его из sources.list.

Мой текущий рабочий файл sources.list:

@Lightness, потому что все обновления были объединены в основной архив, и дальнейших обновлений не будет, поэтому репозиторий обновлений больше не нужен.

@Lightness о, вы имели в виду, что они не должны перемещать репозиторий, и что его удаление — это нормально? Извините, я неправильно понял.

У меня нет проблем с его перемещением, но этот ответ предполагает, что они удалили оригинал до того, как они разместили заархивированную версию в Интернете, оставив содержимое полностью недоступным для этой конкретной версии этого конкретного дистрибутива. Если это правда, то это ужасно и недальновидно. Если это не так, мы можем отредактировать ответ.

Джесси больше не поддерживается. Они убрали его из автоматических обновлений из соображений безопасности.

Вам необходимо выполнить полную переустановку bionic beaver.

По крайней мере, я так и сделал.

Bionic Beaver — это Ubuntu, тогда как вопрос связан с Debian, хотя Ubuntu использует архитектуру Debian, установка кросс-ОС может быть сложной. Если вам нужно выполнить обновление в Debian, лучше всего использовать Stretch (9.x).

Я только что выполнил чистую установку Debian buster, и у меня возникли проблемы с APT.

Я запускаю sudo apt update и получаю это

Здесь находится содержимое моего sources.list

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

3 ответа 3

Прокомментируйте строки deb cdrom: и прокомментируйте/удалите строки

и замените их на

Я не знаю, были ли изменены эти репозитории, но это (рабочие) репозитории, взятые из вики Debian.

Или скопируйте и вставьте пример source.list из вики, вот тот, который содержит дополнительный вклад и платные репозитории

и снова запустите sudo apt update.

Я столкнулся с этой проблемой при обновлении Debian 9 Stretch до Debian 10 Buster, моя проблема заключалась в ошибке дублирования бэкпорта:

Решить:

Должно быть хорошо идти. Этот форум Linux Mint помог мне найти ответ, который может помочь и вам.

Аналогичная ошибка, i386, сервер Debian-10, без среды рабочего стола. У меня была аналогичная установка на другом компьютере с окружением рабочего стола без проблем. Я просто отредактировал файл /etc/apt/sources.list, чтобы он соответствовал рабочей системе.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с меткой debian apt package-management или задайте свой вопрос.

Связанные

Горячие вопросы о сети

Чтобы подписаться на этот RSS-канал, скопируйте и вставьте этот URL-адрес в программу для чтения RSS.

дизайн сайта / логотип © 2022 Stack Exchange Inc; вклады пользователей под лицензией cc by-sa. версия 2022.3.18.41718

Linux является зарегистрированным товарным знаком Линуса Торвальдса. UNIX является зарегистрированным товарным знаком The Open Group.
Этот сайт никоим образом не связан с Линусом Торвальдсом или The Open Group.

Читайте также: