@Dementor
программист, архитектор, аналитик

Где хранит свои данные apt? Или как правильно удалять пакет с ошибками в триггере prerm?

При обновлении одного из пакетов по цепочке зависимостей потребовалось обновить python-minimal, но это действие вызывает ошибку. Теперь любые операции с apt-get вызывают сообщение про неразрешенные зависимости и предложение использовать apt-get -f install. Но и это не спасает:

The following packages will be upgraded:
python-minimal
1 upgraded, 3 newly installed, 0 to remove and 382 not upgraded.
21 not fully installed or removed.
Need to get 0 B/119 kB of archives.
After this operation, 865 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
(Reading database ... 73348 files and directories currently installed.)
Preparing to replace python-minimal 2.7.2-7ubuntu2 (using .../python-minimal_2.7.3-0ubuntu2.2_amd64.deb) ...
find: invalid predicate `-delete'
dpkg: warning: subprocess old pre-removal script returned error exit status 1
dpkg - trying script from the new package instead ...
find: invalid predicate `-delete'
dpkg: error processing /var/cache/apt/archives/python-minimal_2.7.3-0ubuntu2.2_amd64.deb (--unpack):
subprocess new pre-removal script returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/python-minimal_2.7.3-0ubuntu2.2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)


В упомянутом в ошибке пакете я обнаружил в триггере перед удалением пакета строчку:
find /usr/share/python/ -name '*.py[oc]' -delete
Не очень разобрался в команде find , но в мануалах упоминалось изменение поведения по удалению с обновлением версии findutils (у меня сейчас версия 4.4.2-1ubuntu3). Но это не очень важно, так как *.pyc я уже удалил самостоятельно. Теперь мне нужно просто удалить этот триггер из пакета.

Я с помощью "dpkg -x ... ..." и "dpkg -e ... ..." распаковал содержимое пакета, удалил сбойную строчку и запаковал все назад с помощью "dpkg -b ... ..." Далее я готовый профиксенный пакет закинул в /var/cache/apt/archives/ и проверил в режиме просмотра MC, что там все в порядке. Запустил apt-get -f install и снова получил все ту же ошибку. Пошел смотреть в кеш апта - но там не мой пакет, а откуда-то взялся оригинальный с ошибками.

Вопрос: Где хранятся пакеты до помещения в /var/cache/apt/archives/ ?

Или подскажите другие пути по исправлению сбойного пакета python-minimal ...
  • Вопрос задан
  • 3041 просмотр
Решения вопроса 1
alexclear
@alexclear
A cat
prerm скрипты хранятся отдельно в распакованном виде, насколько я помню.
Попробуйте при помощи strace посмотреть, откуда именно запускается prerm скрипт.
Upd: в /var/lib/dpkg/info/ они хранятся.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы