«Debconf: DbDriver» config «: config.dat заблокирован другим процессом: ресурс временно недоступен» при установке пакетов

93

Я пытаюсь установить, flashybridно когда я ввожу apt-get install flashybridкоманду, я получаю эту ошибку:

root@user-desktop:/home/user# apt-get install flashybrid
Reading package lists... Done
Building dependency tree
Reading state information... Done
flashybrid is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
Setting up flashybrid (0.15+nmu2) ...
debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
dpkg: error processing flashybrid (--configure):
subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
flashybrid
E: Sub-process /usr/bin/dpkg returned an error code (1)

Я также попробовал этот, чтобы найти то, что уже использует этот файл:

root@user-desktop:/home/user# lsof | grep /var/cache/debconf/config.dat
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/user/.gvfs
Output information may be incomplete.
dpkg-prec 4672 root 4rW REG 8,6 39658 1697827 /var/cache/debconf/config.dat

Но я не знаю, как это исправить.

Dimitris7
источник

Ответы:

110

Это более простая команда

Я только что сделал:

sudo rm /var/cache/debconf/*.dat 

После того, как я запустил apt-get installи (я устанавливал curl), он заработал, восстановил справочные страницы БД.

PS: я удалил что-то с помощью apt-get и у меня была эта проблема. но решил это просто благодаря @rajagenupula

ucefkh
источник
Я использовалsudo \rm -v /var/cache/debconf/*.dat
Марк Стюарт
17
Не делай этого ... ты можешь сломать свою систему. Правильный ответ - использовать fuser и убить процесс, как в ответе Саида ниже.
Райан П
8
Хм, не удаляй это. Просто убейте процесс, который открыл файл.
Йорфус
4
Это может быть очень опасно. Пожалуйста, смотрите ответ ниже
BlackDivine
1
В моем случае не было запущено ни одного процесса, так что это было единственное работающее решение.
MacroMan
107

Решение этой проблемы блокировки подробно описано в вики :

sudo fuser -v /var/cache/debconf/config.dat

Покажет вам, какой процесс удерживает блокировку:

                     USER        PID ACCESS COMMAND
/var/cache/debconf/config.dat:
                     root      18210 F.... dpkg-preconfigu

Тогда вам просто нужно записать PID и убить его так:

sudo kill PID
sudo kill -9 PID  # if the first doesn't work
Сайед Джалил Хасан
источник
1
Это работало фантастически! Большое спасибо, я не знал о "fuser"!
stolsvik
1
У fuser также есть опция switch, -kкоторая убивает найденный процесс, использующий файл: sudo fuser -v -k /var/cache/debconf/config.dat
немедленно
2
Это должно быть выбрано как лучший ответ.
Арда
Сработало для меня, когда обновление Debian с Stretch на Buster случайно оказалось под вопросом.
Adambean
15
  1. открой свой терминал
  2. открыть место /var/cache/debconfсgksu nautilus
  3. переместить (вырезать / вставить) все файлы .dat в другой каталог резервного копирования.
  4. попытка запустить снова (вероятно, получит другую ошибку)
  5. восстановить эти файлы данных из вышеупомянутого каталога резервного копирования.
  6. Затем попробуйте еще раз, что вы делали (должно работать на этот раз).
rɑːdʒɑ
источник
1
У меня была похожая проблема, и я просто удалил все файлы в папке debconf.
Агменор
я сказал там в пункте 3. файл с паролем и с расширением. Хорошо, теперь, что вы получаете. не могли бы вы опубликовать их здесь по ссылке.
r'd12
та же проблема, мне нужно было удалить все файлы в папке debconf
эквивалент 8
я все еще получаю сообщение об ошибке debconf: сбой apt-extracttemplates: сбой такого файла или каталога: сбой apt-extracttemplates
1
Я очень разозлился, увидел твой ответ, и вдруг прогресс. Спасибо.
Дэвид Карбони
7
sudo fuser -vik /var/cache/debconf/config.dat

Покажет процесс и спросит, хотите ли вы прекратить его.

coderPatros
источник
спасибо, помогите мне ..: D
Буди Мулё
0

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

sudo kill 4672

или же

sudo killall dpkg-prec

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

Braiam
источник
3
Я думаю, что бессмысленно использовать идентификатор процесса 4672 в вашем первом примере команды. Кто-то может использовать эту команду как есть, но она не будет работать, поскольку он, скорее всего, будет иметь другой идентификатор процесса.
user205301
@ user205301 вот для чего второй;)
Брайам