Исправлена ​​ошибка «Zypper заблокирован другим процессом» в SUSE Linux Enterprise.

Сообщение «Zypper заблокирован другим процессом» означает, что блокировка управления программным обеспечением системы удерживается другой задачей управления пакетами. Это может быть обычное обновление, графическое обновление, YaST, задание автоматизации или — реже — устаревшее состояние блокировки после прерванной задачи. Правильное решение зависит от конкретной ситуации. Ожидание защищает активную транзакцию; остановка выявленной, но зависшей задачи может быть уместна во время планового обслуживания. Удаление файлов блокировки или завершение процессов управления пакетами без проверки может прервать изменения пакетов и создать более сложную проблему восстановления.

Сначала уточните, какой тип замка вы видите.

Блокировка процесса и блокировка пакета — это разные вещи. Блокировка процесса предотвращает одновременное изменение системы двумя транзакциями управления пакетами. Блокировка пакета, напротив, — это правило администратора, которое запрещает установку, обновление или удаление выбранных пакетов. SUSE описывает блокировки пакетов отдельно; команда zypper locksперечисляет эти правила для пакетов, но не указывает процесс, удерживающий блокировку транзакции.

Проверьте точный текст ошибки. Если в нем указан идентификатор процесса (PID), запишите его. Если команда находится в состоянии ожидания, а не завершается с ошибкой, ненадолго оставьте ее в покое и проверьте, выполняется ли другое обновление. Не запускайте программное обеспечение YaST, другую zypperкоманду или обновление агента управления, пока активна транзакция.

Выберите ответ, соответствующий ситуации.

Что вы найдетеЛучшее следующее действиеКомпромисс
Видно, что выполняется установка или обновление пакета.Дождитесь завершенияЭто самый безопасный вариант, хотя он может замедлить выполнение задачи.
Это было запущено графическим программным обеспечением или администратором.Пусть оно завершится или согласует это с владельцем.Позволяет избежать прерывания работы; требует доступа к данной сессии.
Активна запланированная или удаленная задача управления.Проверьте статус задания и график технического обслуживания.Сохраняет управляемые обновления, но для этого может потребоваться помощь системного администратора.
Идентификатор процесса (PID) исчез, но ошибка блокировки сохраняется.Попробуйте еще раз, затем соберите диагностические данные или перезагрузите систему только в безопасном режиме.Это может устранить временное состояние, но перезагрузка прерывает работу других служб.

1. Найдите процесс, удерживающий блокировку.

Выполните эту проверку в режиме только для чтения из терминала:

ps -eo pid,ppid,stat,etime,user,cmd | grep -E '[z]ypper|[y]ast|[p]ackagekit|[r]pm|[z]md'

Вывод может показать обновление из командной строки, YaST, клиент PackageKit или процесс управления, например, клиентский агент SUSE Manager. Одного имени процесса недостаточно, чтобы решить, безопасно ли его остановить: запущенная задача пакета может выполнять важную работу. Проверьте прошедшее время, состояние процесса, родительский процесс и любые известные вам окна обновления. Если у вас нет прав root, попросите администратора выполнить проверку или подтвердить владельца процесса.

Если в сообщении об ошибке указан PID, проверьте именно этот процесс, а не полагайтесь только на текстовый поиск:

ps -p 1234 -o pid,ppid,stat,etime,user,cmd

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

2. Решите, следует ли подождать или прекратить выполнение задачи.

Дождитесь, пока транзакция будет активна.

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

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

Если вы запустили другую команду, и она все еще находится в интерактивной командной строке, ответьте на нее или отмените, используя стандартный параметр командной строки. Для программы обновления на рабочем столе используйте ее собственное действие отмены или закрытия, если оно явно предлагает такое действие. Не используйте это kill -9как ярлык. Резкое завершение может прервать транзакцию RPM или оставить систему в состоянии, требующем дополнительного восстановления. На производственном сервере согласуйте действия с ответственным за обновление и следуйте вашей процедуре обслуживания, вместо того чтобы останавливать незнакомый процесс.

3. Проверьте средства автоматизации и графические программные средства.

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

На рабочей станции центр программного обеспечения или сессия YaST могут использовать ту же библиотеку управления пакетами, что и Zypper. Закройте или завершите работу с программным обеспечением через это приложение. Не следует предполагать, что «PackageKit» присутствует в каждой установке SLES; проверьте фактический процесс, прежде чем пытаться выполнить команды обслуживания. Отключение средства обновления глобально также может помешать ожидаемому обслуживанию безопасности, поэтому изменяйте эту политику только в том случае, если владелец системы намерен это сделать.

4. Если зарегистрированный ПИД-регулятор больше не работает

Если в сообщении об ошибке указан PID, проверьте его еще раз с помощью ps -p PIDкоманды `.`. Если процесс отсутствует, повторите исходную команду Zypper. Некоторые версии библиотеки могут обнаружить завершение зарегистрированного процесса и очистить временное состояние, но поведение может различаться в зависимости от версии и способа завершения предыдущей команды. Не удаляйте вручную /run/zypp.pidфайл блокировки или другой файл блокировки только потому, что PID отсутствует. В документации SUSE AutoYaST прямо указано, что нарушение блокировки управления пакетами осуществляется на риск пользователя.

Если ошибка сохраняется после повторной попытки, остановите процесс и соберите точную информацию об ошибке, пакете обновлений SLES, времени и истории последних обновлений. Контролируемая перезагрузка может устранить временную проблему, но планируйте её только после подтверждения отсутствия активных операций с пакетами и проверки влияния на работающие службы. На критически важных системах сначала обратитесь к администратору или в службу поддержки SUSE для проверки состояния системы.

5. Используйте правильную диагностическую команду.

zypper psЭта команда полезна после внесения изменений в пакеты, но её часто неправильно понимают. В руководстве администратора SLES она перечисляет процессы, которые всё ещё используют файлы, удалённые или заменённые во время установки исправлений, обновлений или удаления пакетов. Это не команда для определения того, кто в данный момент удерживает блокировку транзакции Zypper. psДля этой задачи используйте команду и PID из сообщения о блокировке.

Аналогично, zypper locksотображается список блокировок на уровне пакетов. Стоит проверить, остается ли отдельный пакет недоступным после снятия блокировки процесса, но это не снимет активную блокировку транзакции. Это различие важно: удаление блокировки пакета или изменение выбора пакета не может исправить другой процесс, который все еще использует менеджер пакетов.

Когда следует перейти к эскалации

Если блокировка возвращается после каждой перезагрузки, процесс зависает во время критического обновления, база данных пакетов сообщает о дополнительных ошибках или система управляется централизованно, обратитесь к системному администратору. Укажите точную команду, полный текст ошибки, PID, версию SLES или пакет обновлений, а также вывод проверки процесса в режиме только для чтения. SUSE хранит записи /var/log/zypper.logв файле журнала Zypper; администратор может просмотреть записи, относящиеся к моменту сбоя. Избегайте публичного доступа к журналам, если они содержат имена хостов, сведения о репозиториях, имена пользователей или внутренние пути.

Убедитесь, что Zypper снова доступен.

После завершения известной транзакции — или если администратор устранил устаревшую ситуацию — выполните безобидную команду только для чтения, например zypper --version, или zypper repos. Если она завершится без предупреждения о блокировке, повторите выполнение нужной команды пакета в течение утвержденного окна обновления. Перед подтверждением ознакомьтесь с предложенными Zypper изменениями. Успешная команда должна завершиться без прерывания второго процесса менеджера пакетов; если возвращается сообщение о блокировке, определите новый PID вместо удаления файлов или повторения транзакции.

Официальные справочные материалы SUSE

Оставить комментарий

Как безопасно восстановить потерянные разделы и данные с жесткого диска

Как безопасно восстановить потерянные разделы и данные с жесткого диска

Узнайте, как восстановить потерянные разделы и файлы с помощью TestDisk и PhotoRec. Защитите исходный диск, проведите безопасное сканирование и сохраните восстановленные данные на другой диск.

Как сканировать QR-коды на настольном компьютере с Linux

Как сканировать QR-коды на настольном компьютере с Linux

Сканируйте QR-коды в Linux с помощью CoBang, используя веб-камеру или файл изображения. См. варианты установки, шаги настройки и решения проблем с доступом к камере Flatpak.

Как изменить настройки веб-камеры в Linux с помощью Cameractrls

Как изменить настройки веб-камеры в Linux с помощью Cameractrls

Изменяйте настройки веб-камеры в Linux с помощью Cameractrls: настраивайте экспозицию, цвет, подавление мерцания и другие поддерживаемые параметры, а затем проверяйте совместимые видеорежимы.

Как установить PhpStorm на Linux: Toolbox, Tar.gz, Snap и AUR

Как установить PhpStorm на Linux: Toolbox, Tar.gz, Snap и AUR

Установите PhpStorm на Linux с помощью JetBrains Toolbox или автономного архива tar.gz, а также через Snap и Arch AUR. Java уже включена в комплект.

Как создать резервную копию CD-ROM в формате ISO в Linux

Как создать резервную копию CD-ROM в формате ISO в Linux

Создайте образ CD-ROM ISO в Linux с помощью GNOME Disks или dd. Определите оптический привод, отслеживайте процесс копирования, проверяйте образ и узнавайте, когда поврежденный диск или аудиодиск требует использования другого инструмента.

Как вырезать изображение в Linux с помощью GIMP

Как вырезать изображение в Linux с помощью GIMP

Удаление фона фотографии в Linux с помощью GIMP: обведите контур объекта, удалите выделенный фон, сохранив прозрачность, и экспортируйте многоразовый PNG-файл.

Как установить Cisco Packet Tracer на Linux

Как установить Cisco Packet Tracer на Linux

Загрузите Cisco Packet Tracer 9.0.1 для Ubuntu 64-бит, установите DEB-пакет с помощью APT, примите лицензионное соглашение в Терминале и войдите в систему, чтобы начать лабораторную работу.

Скачайте FlightGear бесплатно: официальное руководство по установке

Скачайте FlightGear бесплатно: официальное руководство по установке

Скачайте FlightGear бесплатно с официального сайта. Сравните пакеты для Windows, macOS и Linux, установите файлы данных и совершите свой первый полет.

Настольное приложение Google Tasks: как им пользоваться на компьютере

Настольное приложение Google Tasks: как им пользоваться на компьютере

Откройте Google Задачи в браузере, добавьте ярлык Chrome или запустите приложение, и управляйте задачами с указанием даты через Календарь и Gmail.

OKSampler: Бесплатный и простой музыкальный сэмплер для клавишных ритмов.

OKSampler: Бесплатный и простой музыкальный сэмплер для клавишных ритмов.

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