У меня есть пакет deb для моего приложения. Иногда, когда я устанавливаю или удаляю некоторое программное обеспечение (например, synaptic или openssh-server) с помощью команды
sudo apt-get install (or remove) synaptic
, он выполняет сценарий postinst для моей программы с аргументами «configure 1.1.123.0», где 1.1.123.0 - это версия мое приложение установлено.
Почему это могло произойти? Моя программа не имеет ничего общего с synaptic, openssh-сервером и другим программным обеспечением. Как я могу устранить причину этого?
Вот вывод от терминала:
user@ubuntu:~/tmp$ sudo apt-get remove synaptic
[sudo] password for user:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package synaptic is not installed, so not removed
The following packages were automatically installed and are no longer required: # This list does not contain myapp
libdpkg-perl fakeroot gir1.2-ubuntuoneui-3.0 libalgorithm-merge-perl g++-4.6 cmake-data dh-apparmor libalgorithm-diff-xs-perl g++ libstdc++6-4.6-dev
linux-headers-3.5.0-23-generic linux-headers-3.5.0-23 libubuntuoneui-3.0-1 thunderbird-globalmenu html2text libqt3-mt libalgorithm-diff-perl libxmlrpc-core-c3
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up myapp:i386 (1.1.777.0) ...
/var/lib/dpkg/info/myapp.postinst configure 1.1.777.0 # This is debug string from my postinst script
update-rc.d: warning: /etc/init.d/myapp missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
System start/stop links for /etc/init.d/myapp already exist.
myapp already installed # <-- message and error from my postinst script
dpkg: error processing myapp:i386 (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
myapp:i386
E: Sub-process /usr/bin/dpkg returned an error code (1)
Выходы sudo dpkg --configure -a
user@ubuntu:~$ sudo dpkg --configure -a
Setting up myapp:i386 (1.1.777.0) ...
=/var/lib/dpkg/info/myapp.postinst=configure 1.1.777.0=
update-rc.d: warning: /etc/init.d/myapp missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
System start/stop links for /etc/init.d/myapp already exist.
starting...
myapp already running.
rc from agent = 1
dpkg: error processing myapp:i386 (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
myapp:i386
, пожалуйста, опубликуйте результаты
sudo dpkg --configure -a
, если вы получите сообщение об ошибке Errors were encountered while processing:
myapp:i386
, затем удалите мое приложение, используя-
sudo apt-get purge myapp
, а также используйте следующее для re-install
всех прерванных загрузок.
sudo apt-get install -f
Проблема сломанного пакета все еще существует, решение состоит в том, чтобы отредактировать файл статуса dpkg вручную.
sudo gedit /var/lib/dpkg/status
(вы можете использовать vim
вместо gedit
)
Найдите поврежденный пакет, удалите весь блок информации о нем и сохраните файл.