Apt config повредил linux mint
Обновлено: 21.11.2024
Нередко возникают проблемы с поврежденными пакетами в Ubuntu и других дистрибутивах на основе Debian. Иногда, когда вы обновляете систему или устанавливаете программный пакет, вы можете столкнуться с ошибкой «Подпроцесс /usr/bin/dpkg возвратил код ошибки».
Например, некоторое время назад я пытался обновить Ubuntu 18.04 и столкнулся с ошибкой dpkg, как показано ниже.
Это указывает на то, что пакет google-chrome-stable сломан или поврежден. Есть несколько способов обойти эту проблему, так что пока не сдавайтесь и не выбрасывайте свою систему.
Решение 1. Изменение конфигурации пакета dpkg
Одним из триггеров этой ошибки является поврежденная база данных dpkg. Это может быть вызвано внезапным прерыванием установки программного пакета. Одним из способов решения этой проблемы является перенастройка базы данных.
Для этого просто выполните команду:
Это перенастраивает распакованные пакеты, которые не были установлены в процессе установки.
Решение 2. Принудительно установите проблемный пакет
Иногда при установке программных пакетов могут возникать ошибки. В этом случае вы можете принудительно установить пакет с помощью параметра -f, как показано ниже.
Опция -f и --fix-broken могут использоваться взаимозаменяемо для исправления сломанных зависимостей, возникших в результате прерванной загрузки пакета или кэшированного пакета.
Решение 3. Очистите неверный или поврежденный программный пакет
Если первые два решения не помогли устранить проблему, вы можете удалить или очистить проблемный программный пакет, как показано на рисунке.
Например, в моем случае проблема была устранена путем очистки пакета Google Chrome.
Затем вызовите приведенные ниже команды, чтобы удалить все старые, неиспользуемые и ненужные пакеты, что также освободит место на вашем жестком диске.
Решение 4. Удалите все файлы, связанные с пакетом
Наконец, вы можете вручную удалить все, что связано с проблемным пакетом. Во-первых, вам нужно найти эти файлы, расположенные в каталоге /var/lib/dpkg/info, как показано.
После перечисления файлов вы можете переместить их в каталог /tmp, как показано
Кроме того, вы можете использовать команду rm для удаления файлов вручную.
Наконец, обновите списки пакетов, как показано ниже:
После этого вы можете еще раз попробовать переустановить программный пакет.
Заключение
Ошибка dpkg такого типа указывает на проблему с установщиком пакета, обычно вызванную прерыванием процесса установки или повреждением базы данных dpkg.
Любое из вышеупомянутых решений должно исправить эту ошибку. Если вы зашли так далеко, мы надеемся, что проблема была успешно решена и вы смогли переустановить свой программный пакет.
Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.
Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:
TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.
Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.
Диспетчеры пакетов в 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.
Простые советы по Linux Mint и Ubuntu как для начинающих, так и для опытных пользователей.
Диспетчер обновлений: понимание и оптимизация
Абсолютные новички: доверяйте настройкам по умолчанию, но знайте свои варианты
<р>1. Золотое правило вычислений: если сомневаетесь, доверяйте значениям по умолчанию. Потому что они должны быть и обычно являются разумными и разумными. Но в Linux Mint вы можете детально контролировать свои обновления. Что дает значительные преимущества.Примечание: возможно, вы новичок и не хотите ничего менять в диспетчере обновлений. Тоже норм. Совсем не обязательно что-то менять. Но важно, чтобы вы понимали некоторые аспекты диспетчера обновлений. Вот почему это указано в списке основных вещей, которые нужно сделать.
Поэтому, если вы не хотите (пока) изменять какие-либо настройки диспетчера обновлений, ничего страшного. Но в любом случае советую прочитать, что есть на этой странице, чтобы лучше понять этот очень важный инструмент.
Умная защита от плохих яблок
<р>2.Настройки по умолчанию диспетчера обновлений осторожны; это характеристика Linux Mint. Стабильность прежде всего. В этом разработчики Mint проделали колоссальную работу: помимо и без того хорошего контроля качества обновлений (обновления с ошибками случаются редко) они добавили дополнительный защитный слой.Этот защитный слой по умолчанию в значительной степени зависит от создания моментальных снимков системы с помощью Timeshift. Слишком сильно, если вы спросите меня.
Timeshift действительно хороший инструмент, но у него есть свои ограничения. Одним из них является то, что для этого может потребоваться много места на диске. Это требование к пространству, конечно, зависит от того, как вы используете свою систему (возможно, вы установили какие-нибудь плоские пакеты для обновлений?) и от частоты, с которой вы делаете эти снимки системы (мой совет: ежемесячно, с сохранением всего двух снимки).
Однако, к счастью, есть способ реализовать другую защиту, которая позволяет предотвращать проблемы, вызванные обновлениями, а не просто "лечить" их с помощью Timeshift. А именно разумное использование apt-mark . Ниже я объясню, как это сделать.
Блокировка наиболее важных частей системы: причины
<р>3. Наиболее важными частями системы являются загрузчик Grub, systemd, менеджер входа в систему LightDM, linux-прошивка, пакеты микрокода и ядро Linux.Даже без диспетчера обновлений вы можете (предпочтительно временно) заблокировать или заморозить их текущие версии. Таким образом, они не могут быть повреждены неисправным обновлением («плохое яблоко»). К счастью, такие плохие яблоки случаются редко, но время от времени они случаются.
Обратите внимание, что это оказывает некоторое негативное влияние на безопасность системы, но обычно незначительное. Критические для безопасности пакеты, которые всегда следует обновлять сразу, — это такие вещи, как ваши веб-браузеры (Firefox, Chrome) и тому подобное. Не ваш загрузчик или ядро.
Причина заключается в их профиле риска: для пользователей настольных компьютеров практические безопасные риски уязвимостей в этих жизненно важных частях системы обычно невелики. Так что обычно не торопятся их обновлять. Принимая во внимание, что всегда существует определенная (хотя и довольно небольшая) опасность, что обновления для них могут серьезно повредить стабильности вашей системы (демонстрируют регрессионные ошибки, которые могут сделать всю систему непригодной для использования ).
Например: обновление загрузчика Grub может привести к тому, что система не загрузится. Grub — отличный пример пакета, который действительно нужно обновить в существующей установке, когда это обновление будет иметь жизненно важное значение для этой существующей установки.
Вот почему жизненно важные органы системы заблокированы. Ниже, в пункте 3.1, вы найдете инструкции.
Блокировка наиболее важных частей системы: инструкции
<р>3.1. Достаточно сказано о причинах блокировки. Вот как заблокировать Grub, systemd, LightDM, linux-прошивку, пакеты микрокода и ядро Linux:а. Убедитесь, что все приложения, использующие apt (менеджер обновлений, диспетчер программного обеспечения, диспетчер пакетов Synaptic, источники программного обеспечения и т. д.), закрыты.
б. Запустите окно терминала.
(Вы можете запустить окно терминала следующим образом: *Нажмите*)
sudo apt-mark hold "grub-*" "grub2*" systemd "systemd-*" lightdm slick-greeter "linux-generic*" "linux-headers-generic*" "linux-image-generic*" " linux-signed-generic*" "linux-signed-image-generic*" linux-firmware intel-microcode amd64-microcode
Нажмите Enter. Введите пароль при появлении запроса. В Ubuntu это остается совершенно невидимым, даже звездочки не будут отображаться, когда вы его набираете, это нормально. В Mint это изменилось: вы видите звездочки. Нажмите Enter еще раз.
д. Готово! Если вы хотите проверить, какие пакеты были приостановлены, вы можете использовать эту команду терминала, для которой не требуются права суперпользователя (sudo):
<р>т.е. Ниже, в пункте 3.2, я опишу, как это отменить (всякий раз, когда вы захотите применить обновления для жизненно важных частей системы).Отмена блокировки жизненно важных частей системы: инструкции
3.2. В любой момент вы можете легко разморозить жизненно важные части системы, которые вы заблокировали, как описано выше в пункте 3.1. Для разморозки сделайте следующее:
а. Запустите Timeshift и создайте одноразовый снимок. Таким образом, вы всегда можете отменить работу системы, если разблокировка повлечет за собой разрушительные последствия. Когда Timeshift завершится, закройте его.
б. Убедитесь, что все приложения, использующие apt (менеджер обновлений, диспетчер программного обеспечения, диспетчер пакетов Synaptic, источники программного обеспечения и т. д.), закрыты.
<р>в. Запустите окно терминала.(Вы можете запустить окно терминала следующим образом: *Нажмите*)
д. Теперь скопируйте/вставьте в терминал следующую команду (это одна огромная строка, не режьте ее!):
sudo apt-mark unhold "grub-*" "grub2*" systemd "systemd-*" lightdm slick-greeter "linux-generic*" "linux-headers-generic*" "linux-image-generic*" " linux-signed-generic*" "linux-signed-image-generic*" linux-firmware intel-microcode amd64-microcode
Нажмите Enter. Введите пароль при появлении запроса. В Ubuntu это остается совершенно невидимым, даже звездочки не будут отображаться, когда вы его набираете, это нормально. В Mint это изменилось: вы видите звездочки. Нажмите Enter еще раз.
<р>т.е. Теперь проверьте, удалось ли разблокировать; для этого вы можете использовать эту команду терминала, для которой не требуется root-права (sudo):Если все было разблокировано, эта команда не должна показывать никаких результатов. По крайней мере, не для Grub, systemd, LightDM или ядра Linux.
ж. Запустите диспетчер обновлений, обновите его и установите все новые обновления, которые он предлагает.
Примечание. никогда не применяйте какие-либо обновления, когда вы выполняете важную работу. Это касается и обычных обновлений. Сначала завершите свою важную работу, а затем примените доступные обновления.
В том маловероятном случае, если вы когда-либо столкнетесь с серьезной регрессией в обновлении, девиз: просто продолжайте дышать, попытайтесь найти временное решение (например, восстановить снимок системы, сделанный с помощью Timeshift) и подождите. для нового обновления, которое исправляет это (обычно оно появляется в течение нескольких дней).
Примечание: у вас все равно будет довольно безопасная система, если вы. никогда не устанавливайте ни одно из этих жизненно важных системных обновлений! Гораздо безопаснее, чем, скажем, Windows. Так что вполне даже разумный вариант полностью ограничиться обычными обновлениями. Я не рекомендую этого делать, но это не является безумно безответственным поступком.
Рассмотрите возможность увеличения интервала проверки обновлений
<р>4. Проверка обновлений требует больших ресурсов, поэтому вы можете увеличить интервал проверки новых обновлений (на вкладке Автообновление). Смотрите скриншот ниже (нажмите на него, чтобы увеличить):
Первая проверка происходит через 10 минут после загрузки, а затем каждые два часа. Это разумные настройки; Я рекомендую оставить их как есть.
Однако, если вы хотите изменить их: в любом случае оставьте первоначальную проверку, которая происходит после загрузки, без изменений через 10 минут. Но вы можете безопасно увеличить число последовательных проверок, например, немного до 8 часов. Не более 24 часов: в целях безопасности рекомендуется проверять не реже одного раза в день.
Предупреждение: НЕ включайте автоматические обновления (но рассмотрите возможность автоматической очистки)
<р>5. К сожалению, Update Manager теперь также содержит функцию автоматического обновления. К счастью, он не включен по умолчанию, потому что обновления должны всегда выполняться осознанно. Чтобы они никогда не прерывали и не портили вашу работу.Однако (ты тут главный!) эту неприятную функцию можно найти следующим образом: Кнопка меню - Администрирование - Диспетчер обновлений - панель: Правка - Настройки - вкладка Автоматизация.
Вкладка "Автоматизация" также показывает полезную функцию: автоматическое обслуживание. Я советую включить его (удалить устаревшие ядра и зависимости), потому что он был безопасно и предусмотрительно настроен, чтобы не повредить вашу систему.
При желании выберите зеркальный сервер
<р>6. Серверы, которые предоставляют вам обновления, могут вас разочаровать: иногда они могут быть очень медленными. В этом случае вы можете добиться лучших результатов с зеркальным сервером рядом с вами.Вот как перейти на зеркальный сервер (или другой):
Диспетчер обновлений — панель: Правка — Источники ПО — раздел Официальные репозитории
Зеркала: измените это на Main (una) , щелкнув адрес текущего сервера. Сделайте свой выбор и нажмите «Применить».
Примечание: зеркала всегда имеют задержку в пару часов по сравнению с содержимым основного сервера. Это неизбежно, потому что они синхронизируются с этим основным сервером с интервалами. Если вы когда-нибудь получите уведомление о том, что информация на зеркале устарела, не меняйте зеркало сразу, а просто повторите попытку через несколько часов.
Придерживайтесь своей серии ядер
<р>7. Желательно устанавливать только ядра из той же серии, что и ядро по умолчанию для вашей версии Linux Mint!Если ваша машина хорошо работает с серией ядер по умолчанию (например, 5.4.x), я настоятельно рекомендую придерживаться ее. Потому что ваша версия Mint была разработана на «движке» конкретной серии ядер. Замена «движка» на другой из другой серии может снизить стабильность вашей системы и привести к неожиданным ошибкам.
Ядро — это сердце вашей системы: конечно, вам нужна система, в которой сердце хорошо взаимодействует с окружающим его программным обеспечением.
Важное исключение: очень новое оборудование может не работать с вашей текущей серией ядер, поскольку оно может не содержать последних драйверов. Таким образом, для совершенно нового оборудования, если инструмент ядра в диспетчере обновлений предлагает более новую серию, это последняя серия ядра, которая часто является лучшим выбором. Установить ядро последней серии можно так: Менеджер обновлений - панель: Вид - Ядра Linux. Перезагрузитесь после установки.
Два типа ядер: ядра LTS и ядра HWE
<р>8. Существует два типа ядер: ядра с долгосрочной поддержкой (LTS) и ядра с аппаратной поддержкой (HWE).Linux Mint 20, 20.1 и 20.2 были выпущены с ядром LTS, а именно 5.4.x. Эта конкретная серия ядер будет поддерживаться в течение полных пяти лет поддерживаемого срока службы серии Linux Mint 20.x. Таким образом, чтобы иметь ядро с последними обновлениями безопасности, вы всегда можете придерживаться версии 5.4.x.
Начиная с Linux Mint 20.3 и выше, по крайней мере, если вы выполняете чистую установку, ваш Mint, вероятно, по умолчанию будет иметь ядро HWE. Это серия ядер, которая поддерживается только в течение короткого периода времени.
Это означает, что если вам нужны все обновления безопасности для ядра Mint 20.3 по умолчанию, вам придется время от времени обновляться до новой серии ядер. Такая новая серия ядер будет предложена вам в диспетчере обновлений, как только срок службы вашего текущего ядра HWE подойдет к концу.
Причина существования ядер HWE проста: аппаратная поддержка. Драйверы оборудования находятся в ядре; довольно скоро новое оборудование становится просто слишком новым для ядра LTS. Таким образом, Linux Mint нуждается в ядрах HWE, чтобы оставаться актуальным для такого нового оборудования.
Примечание. Если в будущем вы будете использовать функцию обновления в Менеджере обновлений для обновления Mint 20.2 до версии 20.3, вы сохраните текущее ядро 5.4.x LTS. Это довольно хорошая защита: вам никогда не придется переключаться на ядро HWE.
Примечание: команда ядра Линуса Торвальдса также использует термин "долгосрочное обслуживание" (долгосрочное обслуживание) для некоторых своих ядер. Но это совершенно не связано с процедурами Ubuntu и Linux Mint.
Как отменить обновление ядра
<р>9. В довольно маловероятном случае, когда более новое ядро вызывает у вас проблемы, легко загрузиться со старого ядра, а затем удалить более новое ядро:а. Перезагрузите компьютер.
б. В меню загрузчика Grub выберите второй параметр «Дополнительные параметры для Linux Mint».
Разве вы не видите меню загрузчика Grub? Затем нажмите клавишу Esc только один раз, сразу после появления экрана BIOS.
Однако нажать клавишу Esc только один раз в нужный момент может быть непросто. В этом случае несколько раз нажмите клавишу Esc сразу после исчезновения экрана BIOS. Это увеличивает ваши шансы на успех, но выдает командную строку Grub без меню.
Однако не беспокойтесь: в командной строке Grub введите normal и нажмите Enter. Затем сразу же начните снова несколько раз нажимать клавишу Esc, пока не отобразится меню. На этот раз не беспокойтесь о том, что вы нажмете Esc слишком много раз: нажав Esc более одного раза на этом этапе, вы не попадете в командную строку Grub.
<р>в. Затем загрузитесь с исходного ядра.д. Запустите диспетчер обновлений. На панели инструментов Менеджера обновлений: Вид - Ядра Linux.
<р>т.е. Удалите последнее ядро, щелкнув его, а затем нажав кнопку «Удалить».ж. Наконец, перезагрузитесь: все снова должно быть хорошо.
Хотите получить больше советов и настроек? На этом сайте их намного больше!
К содержимому этого веб-сайта применяется лицензия Creative Commons.
В операционных системах Linux, использующих систему управления пакетами APT, команда apt-get используется для установки, удаления и выполнения других операций с установленными пакетами программного обеспечения.
Команда apt-get и другие основные утилиты APT доступны по умолчанию в операционных системах Debian, Ubuntu и Linux Mint.
Синтаксис
Команды
Поэтому команда dist-upgrade может удалить некоторые пакеты.
Если к имени пакета добавлен дефис (без пробела), идентифицированный пакет будет удален, если он установлен. Точно так же знак плюс может обозначать пакет для установки. Эти функции аннотаций могут использоваться для отмены решений, принятых системой разрешения конфликтов по умолчанию apt-get.
Определенную версию пакета можно выбрать для установки, указав после имени пакета знак равенства и версию пакета для выбора. Это приводит к тому, что эта конкретная версия находится и устанавливается. Кроме того, конкретный дистрибутив можно выбрать, указав после имени пакета косую черту и версию дистрибутива или имя архива ("стабильный", "тестируемый", "нестабильный").
Оба механизма выбора версии могут понизить версию пакетов и должны использоваться с осторожностью. Вы не хотите вручную удалять пакет, от которого зависит другой установленный пакет.
Исходные пакеты отслеживаются отдельно от двоичных пакетов с помощью строк deb-src в файле sources.list.
Если указан параметр --compile, пакет будет скомпилирован в двоичный файл .deb с использованием dpkg-buildpackage для архитектуры, определенной параметром --host-architecture. Если указано --download-only, исходный пакет не распаковывается.
Определенную исходную версию можно получить, поставив после имени источника знак равенства, а затем версию для извлечения, аналогично механизму, используемому для файлов пакета. Это обеспечивает точное соответствие имени и версии исходного пакета, неявно активируя параметр APT::Get::Only-Source.
Параметры
Все параметры командной строки можно задать с помощью файла конфигурации; описания указывают параметр конфигурации, который необходимо установить. Для логических опций вы можете переопределить файл конфигурации, используя что-то вроде -f-, --no-f или -f=no.
Элемент конфигурации: APT::Get::Simulate.
Моделируемые прогоны, выполняемые от имени пользователя, автоматически отключают блокировку (Debug::NoLocking), и если установлен параметр APT::Get::Show-User-Simulation-Note (по умолчанию), отображается уведомление. указывает на то, что это всего лишь имитация. Запуски, выполняемые от имени root, не вызывают ни NoLocking, ни уведомление; суперпользователи должны знать, что они делают, без дальнейших предупреждений от apt-get.
Читайте также: