LINUX.ORG.RU

Debian. Как удалить испорченный пакет.


0

0

Побаловался маленько с PostgreSql и случайно удалил /var/lib/postgresql/. Теперь не могу удалить/переустановить postgresql-8.3.

wieker@localhost:~$ sudo dpkg -r postgresql-8.3
dpkg: не удалось обработать параметр postgresql-8.3 (--remove):
Пакет абсолютно неработоспособен -- перед удалением его
следует переустановить.
При обработке следующих пакетов произошли ошибки:
postgresql-8.3

wieker@localhost:~$ sudo aptitude reinstall postgresql-8.3
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Чтение информации о расширенных состояниях
Инициализация состояний пакетов... Готово
Запись информации расширенных состояний... Готово
Следующие пакеты будут ПЕРЕУСТАНОВЛЕНЫ:
postgresql-8.3
0 пакетов обновлено, 0 установлено новых, 1 переустановлено, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 0B/5 246kB архивов. После распаковки 0B будет занято.
Запись информации расширенных состояний... Готово
Выбор ранее не выбранного пакета postgresql-8.3.
(Чтение базы данных ... на данный момент установлено 182280 файлов и каталогов.)
Подготовка к замене пакета postgresql-8.3 8.3.8-1 (используется файл .../postgresql-8.3_8.3.8-1_i386.deb) ...
Stopping PostgreSQL 8.3 database server: mainError: /var/lib/postgresql/8.3/main is not accessible or does not exist ... failed!
failed!
invoke-rc.d: initscript postgresql-8.3, action "stop" failed.
dpkg: предупреждение: старый сценарий pre-removal возвратил код ошибки 1
dpkg: попытка использовать сценарий из нового пакета ...
Stopping PostgreSQL 8.3 database server: mainError: /var/lib/postgresql/8.3/main is not accessible or does not exist ... failed!
failed!
invoke-rc.d: initscript postgresql-8.3, action "stop" failed.
dpkg: не удалось обработать параметр /var/cache/apt/archives/postgresql-8.3_8.3.8-1_i386.deb (--unpack):
подпроцесс новый сценарий pre-removal возвратил код ошибки 1
Starting PostgreSQL 8.3 database server: mainError: /var/lib/postgresql/8.3/main is not accessible or does not exist ... failed!
failed!
invoke-rc.d: initscript postgresql-8.3, action "start" failed.
dpkg: ошибка при очистке -
подпроцесс установлен сценарий post-installation возвратил код ошибки 1
При обработке следующих пакетов произошли ошибки:
/var/cache/apt/archives/postgresql-8.3_8.3.8-1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Не удалось установить пакет. Попытка восстановить:
dpkg: не удалось обработать параметр postgresql-8.3 (--configure):
Пакет абсолютно неработоспособен -- перед настройкой его
следует переустановить.
При обработке следующих пакетов произошли ошибки:
postgresql-8.3

Как мне его удалить или переустановить теперь?

★★

Придумал. Поправил sudo vim /etc/init.d/postgresql-8.3 , чтобы он всегда возвращал 0.

wieker ★★
() автор топика

/var/lib/dpkg/info

тут ищи скрипты для этого пакета и правишь их так, чтоб они правильно отработали

lester ★★★★
()

Поиграйся с dpkg с ключем --force-*.

Если не поможет, то вычищай запись из /var/lib/dpkg/status вручную и подглядывая в содержимое оригинального *.deb вычищай остальной мусор из системы.

Turbid ★★★★★
()
Ответ на: комментарий от Turbid

>Поиграйся с dpkg с ключем --force-*

Пробовал --force-all - не помогло. В итоге придумал как удалить (см выше), но не средствами dpkg/apt. Неужели, если сломать пакет dpkg/apt можно убить?

wieker ★★
() автор топика
Ответ на: комментарий от wieker

> Неужели, если сломать пакет dpkg/apt можно убить?

нет конечно - достаточно "убить" preremove и postremove для такого пакета

lester ★★★★
()
Ответ на: комментарий от aix27249

> Никогда не думал в дебиане может случиться такое
Все эти и другие неполадки Вы увидите в следующей серии передачи "Я работаю под рутом"!

AITap ★★★★★
()

А сервис-то был убит, когда reinstall вызывался? Вон он у тебя ругается, что корректным способом остановить его не может, так как не хватает ему того, что ты стер.

Zubok ★★★★★
()

Как уже было сказано, проще всего найти этот пакет в /var/lib/dpkg/status и исправить его статус на not installed. А затем установить по новой.

lyset ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.