SpiritBY @ 21-04-2008 12:52:29

Пытаюсь удалить Apache web server (httpd) - мне пишет, что файл повреждён! как удалить теперь приложение....?

SpiritBY @ 21-04-2008 13:01:36

переустановка не помогла

gLobster @ 21-04-2008 22:12:19

# sudo gainroot
# dpkg --purge <package>

SpiritBY @ 21-04-2008 22:56:36

вошел под рутом, набрал
#dpkg -purge httpd

пишет:
dpkg: unknown option -k

Type dpkg --help for help about installing and deinstalling packages [*];
Use `dselect' or `aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --license for copyright license and lack of warranty (GNU GPL) [*].

Options marked [*] produce a lot of output - pipe it through `less' or `more' !
Nokia-N800-51-3:~# dpkg-deb
dpkg-deb: need an action option

Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --help for help about installing and deinstalling packages.


видимо, не так пишу комманду.....

SpiritBY @ 21-04-2008 23:00:51

теперь сделал так:
dpkg -p httpd

ответ:
Package: httpd
Priority: extra
Section: user/internet
Installed-Size: 14480
Maintainer: Tony Green <tony@beermad.org.uk>
Architecture: armel
Version: 2.2.8-1
Depends: libc6 (>= 2.5.0-1), libexpat1 (>= 1.95.8), libsqlite3-0 (>= 3.4.1)
Size: 2925702
Description: the Apache webserver

не понимаю как удалить...... хелп плиз)

SpiritBY @ 21-04-2008 23:09:04

а в ответ комманде  dpkg -r httpd

такой:
dpkg: error processing httpd (--remove):
Package is in a very bad inconsistent state - you should
reinstall it before attempting a removal.
Errors were encountered while processing:
httpd

вот, я в тупике......

Wall @ 21-04-2008 23:25:16

Попробуйте сначала apt-get install httpd --reinstall, потом уже dpkg -P httpd

У вас база dpkg сломана. Такое бывает, когда в консоли играются с dpkg не понимая что происходит.

gLobster @ 21-04-2008 23:35:38

SpiritBY говорит:

вошел под рутом, набрал
#dpkg -purge httpd

пишет:
dpkg: unknown option -k

видимо, не так пишу комманду.....

Скорее другое. Очень похоже на баг, связанный с тем, что шелл неправильно работает с UTF-8 шрифтами. Очень похоже, что вы где-то вставили русскую букву, а потом попытались её удалить забоем. На экране всё выглядело правильно, а в буфере комнады шела - по-другому. Надо, если случайно хоть одну букву ввели на кирилице - нажать ctrl+C и затем набрать заново.
И ещё. В юниксовском шеле регистр букв имеет значение. Поэтому ключи -p и -P несут совершенно разный смысл.

И при порушенной установке пакета как раз ключ --purge (-P) и помогает.

SpiritBY @ 22-04-2008 00:10:58

сделал все как вы сказали:
Nokia-N800-51-3:~# dpkg -P httpd
dpkg: error processing httpd (--purge):
Package is in a very bad inconsistent state - you should
reinstall it before attempting a removal.
Errors were encountered while processing:
httpd

пытался переинсталить пакет из консоли.... вот что получилось:
Nokia-N800-51-3:~# apt-get install /media/mmc2/install/apache/httpd.deb
Reading package lists... Done
Building dependency tree... Done
E: The package httpd needs to be reinstalled, but I can't find an archive for it.


что делать......

ilya_dan @ 22-04-2008 00:23:19

А из какого источника ставился собственно пакет, который надо удалить (httpd)? Может пакет кривой?

SpiritBY @ 22-04-2008 00:26:32

качал с garage.maemo.org.....

ilya_dan @ 22-04-2008 00:37:53

SpiritBY говорит:

качал с garage.maemo.org.....

Автор поправил инсталляционные скрипты, смотри что он пишет о последнем релизе:

Tony Green говорит:

Release Name: 2.2.8-1a

Notes: A few fixes to install/uninstall scripts plus I've added the rewrite module, mainly because I needed it myself.

http://garage.maemo.org/frs/shownotes.p … se_id=1690   

gLobster @ 22-04-2008 00:38:35

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

установить принудительно с перезаписью :
dpkg --force-overwrite -i /media/mmc2/install/apache/httpd.deb

SpiritBY @ 22-04-2008 00:48:07

вот что получается...
Nokia-N800-51-3:~# dpkg --force-overwrite -i /media/mmc2/install/apache/httpd.deb
(Reading database ... 23302 files and directories currently installed.)
Preparing to replace httpd 2.2.8-1 (using .../mmc2/install/apache/httpd.deb) ...
Stopping httpd: /etc/init.d/httpd: line 31: /usr/bin/apachectl: not found
invoke-rc.d: initscript httpd, action "stop" failed.
dpkg: warning - old pre-removal script returned error exit status 127
dpkg - trying script from the new package instead ...
Stopping httpd: /etc/init.d/httpd: line 31: /usr/bin/apachectl: not found
invoke-rc.d: initscript httpd, action "stop" failed.
dpkg: error processing /media/mmc2/install/apache/httpd.deb (--install):
subprocess new pre-removal script returned error exit status 127
Starting httpd: /etc/init.d/httpd: line 31: /usr/bin/apachectl: not found
invoke-rc.d: initscript httpd, action "start" failed.
dpkg: error while cleaning up:
subprocess post-installation script returned error exit status 127
Errors were encountered while processing:
/media/mmc2/install/apache/httpd.deb

gLobster @ 22-04-2008 00:57:00

уже легче. У Вас пока не хватает файла /usr/bin/apachectl
а что скажет

dpkg --unpack /media/mmc2/install/apache/httpd.deb ?

SpiritBY @ 22-04-2008 00:59:52

Nokia-N800-51-3:~# dpkg --unpack /media/mmc2/install/apache/httpd.deb
Selecting previously deselected package httpd.
(Reading database ... 23302 files and directories currently installed.)
Preparing to replace httpd 2.2.8-1 (using .../mmc2/install/apache/httpd.deb) ...
Stopping httpd: /etc/init.d/httpd: line 31: /usr/bin/apachectl: not found
invoke-rc.d: initscript httpd, action "stop" failed.
dpkg: warning - old pre-removal script returned error exit status 127
dpkg - trying script from the new package instead ...
Stopping httpd: /etc/init.d/httpd: line 31: /usr/bin/apachectl: not found
invoke-rc.d: initscript httpd, action "stop" failed.
dpkg: error processing /media/mmc2/install/apache/httpd.deb (--unpack):
subprocess new pre-removal script returned error exit status 127
Starting httpd: /etc/init.d/httpd: line 31: /usr/bin/apachectl: not found
invoke-rc.d: initscript httpd, action "start" failed.
dpkg: error while cleaning up:
subprocess post-installation script returned error exit status 127
Errors were encountered while processing:
/media/mmc2/install/apache/httpd.deb

gLobster @ 22-04-2008 01:00:06

Вот ещё: попробуйте

dpkg -P --force-remove-reinstreq httpd

ilya_dan @ 22-04-2008 01:00:43

SpiritBY говорит:

вот что получается...
Stopping httpd: /etc/init.d/httpd: line 31: /usr/bin/apachectl: not found

Гм. Я бы отредактировал 31 строку /etc/init.d/httpd так, чтобы /usr/bin/apachectl не вызывался. Это даст возможность prerm-у все-таки снести предыдущий пакет.

gLobster @ 22-04-2008 01:02:44

Как вариант. Поставить вначале #

SpiritBY @ 22-04-2008 01:09:10

# не помогла, а как в коде исправить я бес понятия....

также все предыдущие комманды выдают ту же ошибку...(

gLobster @ 22-04-2008 01:13:08

На самом деле можно тупо удалить файл постинсталяции или перенести его:
# sudo ganroot
# mv /var/lib/dpkg/info/httpd.postinst /tmp

и попробовать
# dpkg -P httpd

SpiritBY @ 22-04-2008 01:18:31

mv /var/lib/dpkg/info/httpd.postinst /tmp
mv: cannot rename '/var/lib/dpkg/info/httpd.postinst': No such file or directory

gLobster @ 22-04-2008 01:23:01

Пардон. PreRemoval script...

# mv /var/lib/dpkg/info/httpd.prerm /tmp

ilya_dan @ 22-04-2008 01:24:47

Посмотрел я этот пакет... Насколько я вижу из вывода dpkg, он сначала пытается запустить apachectl из файловой системы, обламывается, а потом пытается запустить его же, но из содержимого пакета. Варианты:

1. Отредактировать /etc/init.d/httpd, поставив в начале exit 0:

#! /bin/sh
#
set -e

exit 0

case "$1"
....

и попробовать удалить dpkg --purge

2. Взять НОВЫЙ пакет 2.2.8-1a - там /usr/bin/apachectl ЕСТЬ, может помочь...

SpiritBY @ 22-04-2008 13:10:12

Спасибо ребята, получилось!!!
сделал так:

пока ехал в метро, снёс через браузер файлик var/lib/dpkg/info/httpd.prerm. потом перегрузился. даллее dpkg -P --force-remove-reinstreq httpd и всё! больше его нет! всё стало нормально работать!!

ещё раз спасибо большое!!