参考
http://www.khattam.info/2009/08/04/solved-subprocess-pre-removal-script-returned-error-exit-status-2-error/
我在ubuntu上安装ldap-account-manager的时候出错,
当sudo aptitude install ldap-account-manager
出现如下错误:
Reading package lists... Done Building dependency tree Reading state information... Done Reading extended state information Initializing package states... Done Building tag database... Done The following NEW packages will be automatically installed: php-fpdf php5 php5-ldap The following NEW packages will be installed: php-fpdf php5 php5-ldap 0 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded. Need to get 108kB of archives. After unpacking 868kB will be used. Do you want to continue? [Y/n/?] y Writing extended state information... Error! E: I wasn't able to locate file for the ldap-account-manager package. This might mean you need to manually fix this package.
当我sudo dpkgdpkg -i ldap-account-manager2.4.all.deb
出现如下错误:
Selecting previously deselected package ldap-account-manager. (Reading database ... 44030 files and directories currently installed.) Preparing to replace ldap-account-manager 2.4.0-1 (using ldap-account-manager2.4.all.deb) ... Unpacking replacement ldap-account-manager ... dpkg (subprocess): unable to execute old post-removal script: Exec format error dpkg: warning - old post-removal script returned error exit status 2 dpkg - trying script from the new package instead ... dpkg: error processing ldap-account-manager2.4.all.deb (--install): subprocess new post-removal script returned error exit status 10 dpkg: error while cleaning up: subprocess post-removal script returned error exit status 10 Errors were encountered while processing: ldap-account-manager2.4.all.deb
这时候,
apt-get remove --purge,apt-get -f install
都不管用了
后来看了一人的解决方案,甚是感激啊。
其实就是将dpkg的status删除,我怎么就没有想到呢?
首先,确定以下命令不能用
sudo aptitude update sudo aptitude -f install
然后,确定以下命令不能用
sudo dpkg --force all --remove
如果都不行,恭喜你,你的dpkg真的有问题了。
现在开始
1、备份你的dpkg的status
sudo cp /var/lib/dpkg/status ~/backup/dpkg/
2、编辑status文件
sudo vim /var/lib/dpkg/status
3、查找你出问题的软件包,在本文中就是万恶的ldap-account-manager
在vim中
/ldap-account-manager
6474 Package: ldap-account-manager 6475 Status: deinstall reinstreq half-installed 6476 Priority: extra 6477 Section: web 6478 Installed-Size: 12268 6479 Maintainer: Roland Gruber <[email protected]> 6480 Architecture: all 6481 Version: 2.4.0-1 6482 Depends: php5 (>= 5.1), php5-ldap, apache | apache-ssl | apache-perl | apache2 | httpd, php-fpdf, debconf (>= 0.2.26) | debconf-2.0 6483 Suggests: ldap-server, php5-mcrypt, ldap-account-manager-lamdaemon, perl 6484 Conffiles: 6485 /etc/ldap-account-manager/shells newconffile 6486 /etc/ldap-account-manager/config.cfg newconffile 6487 /etc/ldap-account-manager/passwordMailTemplate.txt newconffile 6488 /etc/ldap-account-manager/apache.conf newconffile 6489 Description: webfrontend for managing accounts in an LDAP directory 6490 LDAP Account Manager (LAM) runs on an existing webserver.It manages user, group 6491 and host accounts. Currently LAM supports these account types: 6492 Samba 2 and 3, Unix, Kolab 2, address book entries, NIS mail 6493 aliases and MAC addresses. There is a tree viewer included to 6494 allow access to the raw LDAP attributes. You can use templates 6495 for account creation and use multiple configuration profiles. 6496 Account information can be exported as PDF file. There is also 6497 a script included which manages quotas and homedirectories. 6498 Homepage: http://lam.sourceforge.net/
4、全删除整个关于ldap-account-manager的package,保存退出
5、保证格式
保证下一个package和上一个package中间有一行空行。
6、现在已经找不到ldap-account-manager包了,重新安装。当然aptitude已经可以正常使用了。