Не обновляются пакеты debian

Обновлено: 04.07.2024

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

Установка, удаление, обновление пакетов. Поиск пакетов и их зависимостей. Получение полной информации о пакетах.

Dpkg утилита управления пакетами в Debian системах и во всех операционных системах которые от нее пошли это mint, Ubuntu и другие . Утилита достаточно большая и работать с ней не очень удобно, поэтому обычно предпочитают использовать более распространённый пакетный менеджер apt. Сама утилита имеет большое количество ключей, в добавок значение ключей зависит от регистра ключа. Заглавная буква в ключе или прописная, имеют разный функционал. Основные ключи:

  • -I перечень пакетов в системе;
  • -L перечень файлов в пакетах;
  • -s информация о статусе пакета;
  • -S поиск пакета, содержащего данный файл;
  • -i установка пакета;
  • -I информация о пакете в файле *.deb;
  • -r простое удаление пакета;
  • -P удаление пакета вместе с конфигурационными файлами.

Dpkg-reconfigure переконфигурация пакета. Можно сказать, что это мастер настройки пакета. Полезная утилита.

Теперь посмотрим, как это работает вводим dpkg --help:

Dpkg сложная низкоуровневая утилита, имеет кучу настроек, на скриншоте приведен вывод справки по ней. Если мы просмотрим внимательно то, в конце справки мы увидим рекомендацию использовать менеджер управления пакетами apt или aptitude. Утилита dpkg используется для каких-то очень тонких настроек пакетов. Можно посмотреть список установленных пакетов в системе dpkg -l . В системе их установлено их достаточно много, поэтому для поиска нужного использовать grep.

dpkg -s mc посмотрим статус пакета midnight commander .

И видим, что пакет mc, он установлен, размер его, архитектуру (разрядность), зависимости. Используя, ключ S, мы можем посмотреть в какой пакет входит данная программа. Программа mc входит во множество пакетов. А вот, например, /bin/ls входит в базовые утилиты ядра, о чем вы можете убедится, набрав команду с ключом S, т.е в базовый состав любого дистрибутива Ubuntu.

Можем посмотреть более подробно работу с пакетом, для этого можно скачать какой-нибудь пакет, например, webmin небольшая графическая утилита для управления unix сервером. Скачиваем и кладем, например, в /opt. Переходим в директорию, где находится наш пакет cd /opt, далее мы можем посмотреть информацию по данному пакету dpkg I /opt/ webmin_1.955_all.deb. Мы можем увидеть версию пакета и краткое описание, в котором говорится, что при установке будет установлен вебсервер и мы получим через него управление к базовым сервисам.

Установим пакет dpkg i /opt/ webmin_1.955_all.deb. dpkg не умеет ставить зависимости именно этим он плох. Есть ключи, которые позволяют ставить зависимости, но по умолчанию он не умеет.

При установке система выдала ошибки, на то что необходимые зависимости не установлены, но набирая информацию о пакете можно увидеть, что пакет webmin уже установлен. Но он не будет работать т. к. зависимости необходимые для работы не установились, но сам dpkg его установил.

Можно его удалить командой dpkg r webmin, т. к. мы конфигураций не писали и ничего с данным пакетом не делали, если бы мы уже поработали необходимо было бы удалять через ключ p. После этой команды если посмотреть статус пакета, то мы увидим deinstall т.е удален.

Еще можно посмотреть команду dpkg-reconfigure. Используется для переконфигурирования пакетов. Например, можно реконфигурировать временную зону dpkg-reconfigure tzdata. Таким образом открывается удобный мастер и мы можем прям налету изменить параметры пакета.

Еще надо сказать, что у dpkg , есть свой конфигурационный файл. Располагается он /etc/dpkg/dpkg.cfg

APT Advance Packaging Tool Программа для работы с пакетами в Debian системах. Продвинутый пакетный менеджер, причем иногда используется в дистрибутивах, основанных на Mandriva.

В основном используется несколько утилит:

  • apt-get - утилита для скачивания и установки пакетов;
  • apt-cache утилита для поиска пакетов;
  • aptitude - утилита полного управления пакетами с опцией псевдографики;

Для работы с пакетным менеджером нам так же понадобится понятие репозитория.

Вот так у нас выглядит файл справки по apt-get --help. У программы, как видно есть свои ключи. Теперь попробуем сделать apt-get update данная команда обновляет список всех репозиториев, команда проверяет, какие новые места появились откуда можно скачать обновления, т.е. просто обновляется информация об источниках обновлений. Если мы хотим поискать обновление пакетов и их установить, то мы используем команду apt-get upgrade. Данная команда проверяет все установленное ПО на наличие обновлений и, если находит предлагает установить обновление. Данную процедуру рекомендуется делать, сразу после установки свежей Операционной системы. В дальнейшем перед данной операции обязательно сделайте Резервную копию данных!

Для установки любого дополнительного программного обеспечения мы можем воспользоваться apt-get install gmail-notify. Для удаления мы можем использовать ключ remove.

При инсталляции программного обеспечения зачастую ставится куча зависимостей, которые необходимы для корректной работы основного программного пакета, а при удалении с ключом remove данные зависимости остаются. Для того чтобы очистить систему от неиспользуемых зависимостей рекомендуется использовать ключ apt-get autoremove.

Теперь мы можем посмотреть apt-cache, как работает. Для начала справку. apt-get help

Это инструмент для поиска информации в двоичных файлах, у него тоже есть куча настроек и ключей.

Попробуем воспользоваться поиском. apt-cache search gmail ищем все пакеты, где может встречаться " gmail ".

Мы можем посмотреть информацию по какому-либо пакету например: apt-cache show gnome-gmail. Утилита показывает размер, название, кто произвел, архитектура и краткое описание пакета.

С помощью команды и ключа apt-cache depends gnome-gmail мы можем посмотреть от каких зависимостей зависит пакет. Т.е. без каких пакетов программное обеспечение работать не будет.

Мы можем посмотреть обратные зависимости apt-cache rdepends gnome-gmail т.е. кто зависит от данного программного обеспечения.

Далее посмотрим утилиту aptitude .

Данная утилита по умолчанию не идет и ее необходимо установить apt-get install aptitude. Посмотрим справку по данной утилите aptitude help.

Так же мы можем увидеть, что это такая же программа по управлению пакетами как apt-get и apt-cache. Те же самые команды и ключи, за исключением того, что здесь есть графика и мы можем написать aptitude и попасть в графическую оболочку.

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

Теперь рассмотрим репозитории, то место, где хранится вся информация о пакетах, которые мы можем использовать скачивать обновления и сами пакеты. Это как в windows есть центральный узел обновления windows update, так и в Linux есть узлы , как родные , так и сторонние для обновлений.

Вот в таком виде хранятся репозитории в Ubuntu, которые подключены. Хранилища пакетов. У нас есть 2 вида указателей. Deb файлы исходники и deb-src файлы исходники. Далее у каждой строчки указателе есть ссылка в интернете и далее описание дистрибутива. Далее есть несколько видов репозиториев. Main - это основной репозиторий. Не требует установки дополнительных пакетов и является официально поддерживаемым от производителей Ubuntu. Есть пакеты, которые помечены restricted это пакеты, которые содержат частично свободное программное обеспечение, т.е. не полностью свободное программное обеспечение. Есть еще universe это дистрибутивы Ubuntu управляемые сообществом официально не поддерживаются, но есть куча энтузиастов. Есть пакеты multiverse - это пакеты, которые не соответствуют политики свободно распространяемого программного обеспечения. Ничего не мешает нам дописать свои репозитории. Это можно сделать через специальную команду из консоли или просто отредактировав файл. Это необходимо делать, когда у нас есть, какое-либо программное обеспечение, которое не обновляется в составе операционной системы. Если мы добавили репозиторий самостоятельно, то обязательно необходимо сделать apt-get update. Для того, чтобы операционная система перечитала список репозиториев.

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

Операционная система Debian – один из самых стабильных вариантов на рынке, но казусы случаются везде. Чтобы застраховать ПК или сервер от попадания вирусов, а также защититься от мошенников, необходимо своевременно устанавливать обновления.

Обновить Debian – задача не из сложных. Этот процесс обусловлен выполнением нескольких примитивных шагов.

Обновление Debian через терминал

Этот способ создан для тех, кто не любит возиться с техникой слишком долго, но и не пускает всё на самотек. Прежде чем обновлять систему, следует убедиться в том, что ваши репозитории находятся в полном порядке. К примеру, ранее вы подключили репозиторий testing для установки пакета, не выключив его по завершению процесса. В данном случае любые вмешательства могут вызвать еще больше проблем.

Откроем файл sources.list редактором nano, внимательно смотрим на список репозиториев.

$ sudo nano /etc/apt/sources.list

sources

Нормально: в нем наличествуют основные хранилища операционной системы (stretch), репозиторий стандартных обновлений, а также хранилище обновлений безопасности.

Плохо: в файле наличествуют testing, sid, back ports.

Установленные репозитории можно посмотреть и другим способом. Например, воспользовавшись дополнением «Программы и обновления».

Отключите галочки напротив тех репозиториев, которые помешают обновлению ОС. Их названия упоминались чуть выше.

sudo bash

По аналогии с убунту , астра линукс , списки пакетов обновляются по команде:

ВАЖНО! вместо apt-get можно использовать более новую команду apt, в некоторых случаях интерпретатор напишет ошибку, команда не найдена. Чтобы убрать ошибку, необходимо установить apt.

update

Для запуска обновления в терминале вводим:

Даем согласие на установку. Апгрейд пакетов Debian займет некоторое время. На сроки влияет производительность ПК и скорость Интернет-соединения. Если система обновлялась давно, на это потребуется больше времени.

Согласие на обновление

Обновление Дебиан в графическом интерфейсе

Данный способ обновления также не обойдется без графического дополнения «Программы и обновления». Осуществите проверку обновлений в одноименной вкладке, активируйте уведомление о найденных обновах.

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

Чтобы установить обновления, также можно воспользоваться программой «Центр приложений» (открывается через главное меню). Далее перешагните в подраздел «Обновления».

Найдите на экране значок «Обновить», нажмите на него. Это позволит произвести обмен данными. После этого вам предстоит закончить установку выявленных обновлений.

Debian также обновляется при помощи установки популярного софта под названием « Synaptic ». Она не является базовой утилитой, однако ее можно установить.

Новый софт появится в меню устройства. ПО работает без перебоев, а потому пользуется большим спросом среди пользователей. Откройте Synaptic, кликните на кнопку «Обновить». Далее произойдет обмен данными между списками пакетов хранилищ.

Следующий шаг: кликните на кнопку «Отметить…». Актуальные апгрейды попадут в список необходимых установок. Программа выдаст запланированные модернизации.

Нажатие на клавишу «Применить» запустит процесс обновление. Не прерывайте его до полного завершения.

Заключение

Беспроблемная и безопасная работа компьютера возможна лишь при бережном обращении. С новой версией ОС устройство работает быстрее и без лагов. К тому же, это минимизирует вероятность попадания вирусов на ПК и сервер. Мошенникам будет сложнее взломать обновленную версию Debian, а значит, пользователь может не беспокоиться за сохранность и конфиденциальность личных данных.

Обновление операционной системы Debian осуществляется многообразными способами и неважно какая версия стоит 9, 8,7. Каждый пользователь может избрать для себя самый удобный и понятный вариант установки обновлений системы.

One of Debian's goals is to provide a consistent upgrade path and a secure upgrade process. We always do our best to make upgrading to new releases a smooth procedure. In case there's some important note to add to the upgrade process, the packages will alert the user, and often provide a solution to a possible problem.

9.1. Как поддерживать систему Debian в актуальном состоянии?

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

9.1.1. aptitude

aptitude является рекомендуемым менеджером пакетов для систем Debian GNU/Linux и описывается в Раздел 8.1.3, «aptitude».

До того как вы сможете использовать aptitude для выполнения обновления, вам следует отредактировать файл /etc/apt/sources.list . Если вы хотите выполнить обновление до последней стабильной версии Debian, вам, вероятно, потребуется использовать нечто подобное в качестве источника пакетов:

More details on this can be found in the sources.list (5) manual page.

To update your system from the command line, run

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

Заметьте, что aptitude не является рекомендованным инструментом для выполнения обновлений с одного выпуска Debian GNU/Linux на другой. Для выполнения таких обновления вам следует ознакомиться с Информацией о выпуске. В этом документе описываются рекомендованные шаги для выполнения обновлений с предыдущих выпусков, а также проблемы, которые вам следует решить до выполнения обновления.

For details, see the manual page aptitude (8) , and the file /usr/share/aptitude/README .

9.1.2. apt-get и apt-cdrom

Альтернативной aptitude является apt-get , инструмент командной строки на основе APT (он был описан в Раздел 8.1.2, «APT»).

apt-get , инструмент командной строки на основе APT для работы с пакетами предоставляет простой и безопасный способ установки и обновления пакетов.

Для использования apt-get , отредактируйте файл /etc/apt/sources.list так же как и для Раздел 9.1.1, «aptitude».

Answer any questions that might come up, and your system will be upgraded. See also the apt-get (8) manual page, as well as Раздел 8.1.2, «APT».

Если для установки пакетов вы хотите использовать компакт-диски, DVD или диски BD, то можете воспользоваться программой apt-cdrom . Подробнее об этом написано в информации о выпуске, в разделе «Добавление оптического носителя в качестве источника APT».

Учтите, что когда вы получаете и устанавливаете пакеты, эти файлы так и остаются лежать в одном из подкаталогов /var. Чтобы не истратить всё свободное место раздела, не забывайте удалять лишние файлы с помощью команд apt-get clean и apt-get autoclean , или перемещать их в другое место (подсказка: воспользуйтесь apt-move ).

9.1.3. mirror

Данный сценарий на Perl и его (необязательная) программа управления, называемая mirror-master , может использоваться для выборки указанной пользователем части дерева каталога с заданного узла посредством анонимного FTP.

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

The mirror program is generally useful for updating local copies of remote directory trees. The files fetched need not be Debian files. (Since mirror is a Perl script, it can also run on non-Unix systems.) Though the mirror program provides mechanisms for excluding files with names matching user-specified strings, this program is most useful when the objective is to download whole directory trees, rather than selected packages.

9.2. Нужно ли для обновления пакета переходить в однопользовательский режим?

Нет. Пакеты можно обновлять сразу, даже на работающей системе. Если во время обновления пакета требуется остановка процесса, то на этот случай в Debian есть программа start-stop-daemon , которая останавливает, а затем перезапускает работавший ранее процесс.

9.3. Нужно ли хранить на диске все файлы-архивы .deb?

Нет. Если вы скачали файлы на диск, то после установки пакетов вы можете удалить их из системы, например с помощью команды aptitude clean .

9.4. How can I keep a log of the packages I added to the system? I'd like to know when upgrades and removals have occurred and on which packages!

Параметром --log можно заставить dpkg вести журнал изменений и выполняемых действий. Протоколируются и все вызовы dpkg (например

), и их результаты (например

) If you'd like to log all your dpkg invocations (even those done using frontends like aptitude ), you could add

to your /etc/dpkg/dpkg.cfg . Be sure the created logfile gets rotated periodically. If you're using logrotate , this can be achieved by creating a file /etc/logrotate.d/dpkg with the following lines

More details on dpkg logging can be found in the dpkg (1) manual page.

aptitude записывает те действия, которые собирается выполнить по установке, удалению или обновлению пакетов, в файл /var/log/aptitude . Учтите, что результаты этих действий в этом файле не сохраняются!

Another way to record your actions is to run your package management session within the script (1) program.

9.5. Возможно ли автоматическое обновление системы?

Да. Для этого можно использовать cron-apt ; эта программа обновляет систему через равные промежутки времени с помощью задания cron. По умолчанию она только обновляет список пакетов и скачивает новые пакеты без запуска их установки.

Замечание: НЕ рекомендуется выполнять автоматическое обновление пакетов в тестовых или нестабильных системах, так как это может привести к неожиданному поведению и удалению пакетов без уведомления.

9.6. Есть несколько машин, как скачивать для них обновления только один раз?

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

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

Если вы активный пользователь Linux, то наверняка встречались с тем, что некоторые пакеты так сказать ломаются. Это может быть вызвано по разным причинам, некорректно установленный пакет, какие-то ошибки во время установки и многое другое. Что в свою очередь может сказаться и на самом менеджере пакетов “apt-get”, и как итог, возможно что дойдет даже то того, что вы не сможете обновляться или устанавливать программное обеспечения. Данная статья поможет вам решить вопрос со сломанными пакетами в Debian / Ubuntu, а так же их производными. Так как сломанные пакеты могут возникать по разным причинам, существует несколько способов для решения этой задачи, но, не все они могут сработать, тут все зависит от конкретного случая.

P.S. Желательно точно знать какой пакет у вас сломан, так как это поможет вам выбрать один из способом решения задачи.

Чиним сломанные пакеты с apt-get

Первый вариант, который может помочь починить сломанные пакеты имеется в самом менеджере пакетов apt, и для починки сломанных пакетов достаточно ввести две команды:

sudo apt-get update --fix-missing
sudo apt-get install -f

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

Чиним сломанные пакеты с apt-get и dpkg

Но, что делать если пакет сломался во время установки? Можно попробовать выполнить команды из первого примера, если они не сработают, переходим к использованию apt-get и dpkg, для этого первым делом используем dpkg для настройки пакетов. А затем выполняем очистку apt-get:

sudo dpkg --configure -a
sudo apt-get clean
sudo apt-get update

В некоторых ситуациях может понадобиться удалить файл блокировки, после удаления файла блокировки, снова выполните предыдущие команды:

sudo rm /var/lib/apt/lists/lock

Принудительное удаление пакета с помощью apt-get и dpkg

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

sudo apt-get remove и название пакета

Если же вам не удалось удалить пакет, переходим к кардинальным мерам, для принудительного пакеты введите команду:

sudo dpkg --remove --force-remove-reinstreq и название пакеты

Затем выполните очистку и обновление пакетов:

sudo apt-get clean && sudo apt-get update

Заключение

Если вы не знаете про менеджеры пакетов apt-get и dpkg, на WIKI имеется статьи, первая про apt , вторая статья про dpkg . В редких ситуациях, выше приведенных мер может быть недостаточно для исправления сломанных пакетов. В этом случае, может понадобиться ручная сборка и удаление сломанных пакетов, правда, имеется риск повредить работоспособность всей системы, что в свою очередь может вывести ее из строя. В этом случае, если вы делали резервные копии вашей системы можно откатиться работоспособной версии системы. Сделать резервную копию вашей системы можно при помощи Timeshift или Deja Dup , последняя имеется в дистрибутиве Ubuntu. Но, чаще всего удается отделаться малой кровью когда появляются сломанные пакеты, и выше приведенных мер достаточно для исправления сломанных пактов.

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X

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