Dpkg команда не найдена

Apt-get – это пакетный менеджер, который используется по умолчанию в семействе дистрибутивов Debian и Ubuntu. Учитывая, что это пакетный менеджер, один из почти самых основных пакетов системы, то логично, что программа должна присутствовать в каждом дистрибутиве. Но все же некоторые пользователи встречаются с ошибкой apt get command not found.

В этой статье мы рассмотрим почему возникает такая ошибка, как это вообще может быть и как исправить apt get команда не найдена.

Что значит apt get команда не найдена?

Фактически это сообщение об ошибке означает как раз то, что оно нам сообщает, команда, которую вы пытаетесь выполнить не найдена в системе. Она либо еще не была установлена, либо была удалена. Но все это звучит очень странно в отношении к менеджеру пакетов. Рассмотрим основные причины возникновения ошибки:

  • Одна из самых очевидных причин, получения ошибки "apt get не найдена" в том, что у вас не Ubuntu. Этот пакетный менеджер используется только в дистрибутивах Linux, основанных на Debian. Системы Red Hat, CentOS, Fedora, OpenSUSE, CoreOS, Cloud Linux, ArchLlinux и другие таковыми не являются. Они имеют собственный пакетный менеджер, у каждой свой и именно его нужно использовать для установки пакетов, а не искать apt.
  • Если вы используете команду apt, а не apt-get, то, возможно, у вас старый дистрибутив, который не поддерживает такого синтаксиса, используйте apt-get;
  • Вторая причина в том что вы случайно или намерено удалили пакет Apt. Его больше нет в системе поэтому система и не может его найти;
  • Третья причина, может быть в невозможности обнаружения программы. Утилита apt есть в системе и исправно работает, но вы повредили переменную среды PATH и теперь система не ищет исполняемые файлы в той папке где находится apt.

Теперь рассмотрим как решить проблему. Это очень просто.

Как исправить apt get команда не найдена?

Поскольку вторая причина предполагает меньше действий, нам нужно сначала проверить ее. Обычно исполняемые файлы apt находятся в каталоге /usr/bin. Сначала посмотрим есть ли такой файл в той папке:

ls -l /usr/bin/apt-get

Если файл есть, то вы увидите что-то похожее как на снимке выше. Также обратите внимания на права. Для пользователя, группы и остальных должен быть выставлен флаг "x" означающий исполнение. Если же его нет, то apt придется переустановить. Если права отличаются от приведенных выше, а именно "-rwxr-xr-x", то их тоже нужно исправить, добавим для всех категорий флаг исполняемости:

chmod +x /usr/bin/apt-get

Если предыдущие варианты не сработали проверим содержимое переменной среды PATH:

Вы должны увидеть в ней ссылку на /usr/bin. Если такой строчки нет, то проблема была здесь, а строчку нужно добавить в конец:

Если вы вносили изменения в файл /etc/profile, и переменная PATH сломалась из-за этого, то нужно внести исправления и в этот файл.

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

Для Ubuntu Xenial:

Для Ubuntu Yakkety:

Теперь осталось установить загруженный пакет:

sudo dpkg -i apt*

Готово, после этого ошибка apt get command not found должна исчезнуть и вы сможете нормально работать со своими пакетами.

Выводы

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

У меня очень старенький винт, потихоньку сыплется. Поэтому часто бывают всякие "неожиданности". Но это не всё. Часто при обновлениях случается чт-то от вас не зависящее, и не всегда этому виной кривые руки. Бывает, что dpkg спотыкается обо что-либо, и дальше всё.. ничего обновить в системе, установить или удалить вы через aptitude (apt-get) вы не сможете. Как вариант, можно посмотреть список зависимостей, и удалять всё ручками, но я считаю что это не айс – удалять каждый файлик, править конфиги. Может это и true linux way, но увы, сейчас уже третье тысячелетие, и я отказался от такого извращения. Поэтому мы просто попытаемся починить dpkg.

dpkg — это программное обеспечение, являющееся основой системы управления пакетами в Debian. dpkg используется для установки, удаления, и получения информации о .deb пакетах.
Подробнее смотрите в Wiki, я лишь опишу некоторые проблемы, встречающиеся при обработке пакетов.

1) Что поможет в 80% случаев:

Зачастую достаточно просто запросить из хранилища(репозитория) новый список пакетов:

sudo aptitude update

sudo aptitude install -f

И установить обновления:

sudo aptitude safe-upgrade

Бывает что проблема – это плохо сконфигурированный пакет. Поэтому мы просто её ещё раз переконфигурируем:

sudo dpkg –configure -a

2) Остальные "сложные" случаи:

Для остальных случаев придётся переконфигурировать всё:
sudo dpkg-reconfigure -a
Осторожно, может занять много времени 8)

Или именно этот пакет:
sudo dpkg-reconfigure –default-priority %pack_name%

Ну бывает что нужно переконфигурировать его, даже если он поломан или неисправен:

sudo dpkg-reconfigure –force %pack_name%

!ВНИМАНИЕ! Использовать осторожно!

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

3) Конкретные случаи:

1) Падение dpkg – /var/lib/dpkg/available: Input/output error.

E: Sub-process /usr/bin/dpkg returned an error code (2)
dpkg: при работе функции buffer_read(fd) произошла ошибка: копирование файла информации /var/lib/dpkg/available: Input/output error

Дааааа. Как всегда косяки, ну ничего, где-то мы такое видали. Минутный поиск по форуму сообщества и на глаза вылазит лекарство:

sudo dpkg –configure -a
либо
sudo apt-get install -f && sudo dpkg –configure -a

К сожалению никаких результатов в моем случае это не дало.
Ищем дальше. Гугл толком ничего не даёт, найдены пару вариантов с англоязычного форума линукс. К сожалению не помогает. Ну ладно значит будем думать головой.
Идём по адресу /var/lib/dpkg/ находим файл available, пытаемся открыть – filed. Осматриваемся в папке,и видим интересный файл под названием available_old.
Значит, при обновлении пакетов была сделана резервная копия этого файла со старым содержимым. Открываем, копируем содержимое , удаляем available и создаём на его месте новый файл с тем же названием. Вставляем содержимое из available_old.
Проверяем обновления

sudo apt-get update

sudo apt-get upgrade

и о чудо, всё работает. Теперь можно и продолжать настройку системы. Также возможен другой вариант лечения dpkg.
sudo dpkg –clear-avail #удалить информацию о доступных пакетах.

sudo apt-get update #обновление информации о пакетах.

но это при условии, что ваш файл не окажется битым, как в моём случае.

Да, чуть не забыл при внесении данного сообщения начал меня раздражать SCIM Method? он так и норовил подсунуть мне какой-нибудь арабско-еврейско-хрензнает какой шрифт. Пришлось избавится

apt-get remove scim

2) Удалил пакет руками – теперь aptitude ругается, что делать?

dpkg: не удалось обработать параметр %pack_name% (–configure):
подпроцесс post-installation script возвратил код ошибки 1
При обработке следующих пакетов произошли ошибки:
%pack_name%
E: Sub-process /usr/bin/dpkg returned an error code (1)

В таком случае можно удалить пакет через dpkg:

dpkg –purge %pack_name% #удалит всё что о нём было известно вместе с ним 8)

3) в списке файлов пакета %pack_name% отсутствует завершающий символ новой строки

aptitude install -f
Чтение списков пакетов. Готово
Построение дерева зависимостей
Чтение информации о состоянии. Готово
Чтение информации о расширенных состояниях
Инициализация состояний пакетов. Готово
(Чтение базы данных . dpkg: невосстановимая ошибка, прекращение работы:
в списке файлов пакета %pack_name% отсутствует завершающий символ новой строки
E: Sub-process /usr/bin/dpkg returned an error code (2)
Не удалось установить пакет. Попытка восстановить:
Чтение списков пакетов. Готово
Построение дерева зависимостей
Чтение информации о состоянии. Готово
Чтение информации о расширенных состояниях
Инициализация состояний пакетов. Готово

Я гуглил много, оказалось решение очень простое:
sudo kate /var/lib/dpkg/status

После чего Ctrl+F – вводим в поиск %pack_name% и удаляем всё что с ним связано, после чего делаем пункт 1) и вуаля, dpkg вернулся из мёртвых, Ressurect III lvl окрыляет!

ПОДРОБНАЯ ИНФОРМАЦИЯ о dpkg на русском можно глянуть тут: тыц

Если нада, можно сюда скопипастить, но не думаю что нужно.

Проапгрейдил, исправил бОльшинство орфографических ошибок, привёл всё к единому формату. Любые дополнения приветствуются. В данный момент ищутся любые другие ошибки в dpkg, которые решаются способами, которых тут ещё нет.

Ну и спасибо баламутику за баламутивание 8)

Протестировано при установке 18.04 при попытке установить драйверы принтера и несколько других пакетов. (См. Также EDIT ниже)

sudo dpkg -i –force-all LPR_mfcj4620dwlpr-3.0.1-1.i386.deb sudo: dpkg -i –force-all : command not found sudo /usr/bin/dpkg -V LPR_mfcj4620dwlpr-3.0.1-1.i386.deb sudo: /usr/bin/dpkg -V LPR_mfcj4620dwlpr-3.0.1-1.i386.deb: command not found

Тестирование с помощью:

sudo dpkg –configure -a

Команда завершает ОК, но нет сообщений

Но в тот момент, когда я добавляю какие-либо параметры командной строки, я получаю «Command not found».

$ PATH = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games: / snap / bin

EDIT Я пробовал другие пакеты и они работали. Поэтому я повторно загрузил deb из источника.

sudo dpkg -i –force-all LPR_mfcj4620dwlpr-3.0.1-1.i386.deb sudo: dpkg -i –force-all : command not found

Затем через несколько секунд без каких-либо изменений – он работал:

sudo dpkg -i –force-all LPR_mfcj4620dwlpr-3.0.1-1.i386.deb (Reading database . 230357 files and directories currently installed.) Preparing to unpack LPR_mfcj4620dwlpr-3.0.1-1.i386.deb . Unpacking mfcj4620dwlpr:i386 (3.0.1-1) over (3.0.1-1) . Stopping printer spooler: lpd. Starting printer spooler: lpd. Setting up mfcj4620dwlpr:i386 (3.0.1-1) . Stopping printer spooler: lpd. Starting printer spooler: lpd.

dpkg не дает мне любой значимый результат, если есть проблема с фактическим файлом

На самом деле это очень нечетное – непоследовательное поведение:

sudo dpkg -i nonexistentfile dpkg: error: cannot access archive ‘nonexistentfile’: No such file or directory

sudo dpkg -i nonsensename sudo: dpkg -i: command not found sudo dpkg -i thursday sudo: dpkg -i: command not found

Также интересно, что при использовании завершения имени файла dkpg не будет расширять имя файла, если результат теста в команде не найден. Но сделайте это с действующим пакетом. Это почти предполагает проблему с оболочкой.

Оцените статью
ПК Знаток
Добавить комментарий

Adblock
detector