参考

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

出现如下错误:

  1. Reading package lists... Done
  2. Building dependency tree
  3. Reading state information... Done
  4. Reading extended state information
  5. Initializing package states... Done
  6. Building tag database... Done
  7. The following NEW packages will be automatically installed:
  8. php-fpdf php5 php5-ldap
  9. The following NEW packages will be installed:
  10. php-fpdf php5 php5-ldap
  11. 0 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
  12. Need to get 108kB of archives. After unpacking 868kB will be used.
  13. Do you want to continue? [Y/n/?] y
  14. Writing extended state information... Error!
  15. 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

出现如下错误:

  1. Selecting previously deselected package ldap-account-manager.
  2. (Reading database ... 44030 files and directories currently installed.)
  3. Preparing to replace ldap-account-manager 2.4.0-1 (using ldap-account-manager2.4.all.deb) ...
  4. Unpacking replacement ldap-account-manager ...
  5. dpkg (subprocess): unable to execute old post-removal script: Exec format error
  6. dpkg: warning - old post-removal script returned error exit status 2
  7. dpkg - trying script from the new package instead ...
  8. dpkg: error processing ldap-account-manager2.4.all.deb (--install):
  9. subprocess new post-removal script returned error exit status 10
  10. dpkg: error while cleaning up:
  11. subprocess post-removal script returned error exit status 10
  12. Errors were encountered while processing:
  13. ldap-account-manager2.4.all.deb

这时候,

apt-get remove --purge,apt-get -f install

都不管用了

后来看了一人的解决方案,甚是感激啊。

其实就是将dpkg的status删除,我怎么就没有想到呢?

首先,确定以下命令不能用

  1. sudo aptitude update
  2. sudo aptitude -f install

然后,确定以下命令不能用

  1. 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

  1. 6474 Package: ldap-account-manager
  2. 6475 Status: deinstall reinstreq half-installed
  3. 6476 Priority: extra
  4. 6477 Section: web
  5. 6478 Installed-Size: 12268
  6. 6479 Maintainer: Roland Gruber <post@rolandgruber.de>
  7. 6480 Architecture: all
  8. 6481 Version: 2.4.0-1
  9. 6482 Depends: php5 (>= 5.1), php5-ldap, apache | apache-ssl | apache-perl | apache2 | httpd, php-fpdf, debconf (>= 0.2.26) | debconf-2.0
  10. 6483 Suggests: ldap-server, php5-mcrypt, ldap-account-manager-lamdaemon, perl
  11. 6484 Conffiles:
  12. 6485  /etc/ldap-account-manager/shells newconffile
  13. 6486  /etc/ldap-account-manager/config.cfg newconffile
  14. 6487  /etc/ldap-account-manager/passwordMailTemplate.txt newconffile
  15. 6488  /etc/ldap-account-manager/apache.conf newconffile
  16. 6489 Description: webfrontend for managing accounts in an LDAP directory
  17. 6490  LDAP Account Manager (LAM) runs on an existing webserver.It manages user, group
  18. 6491  and host accounts. Currently LAM supports these account types:
  19. 6492  Samba 2 and 3, Unix, Kolab 2, address book entries, NIS mail
  20. 6493  aliases and MAC addresses. There is a tree viewer included to
  21. 6494  allow access to the raw LDAP attributes. You can use templates
  22. 6495  for account creation and use multiple configuration profiles.
  23. 6496  Account information can be exported as PDF file. There is also
  24. 6497  a script included which manages quotas and homedirectories.
  25. 6498 Homepage: http://lam.sourceforge.net/

4、全删除整个关于ldap-account-manager的package,保存退出

5、保证格式

保证下一个package和上一个package中间有一行空行。

6、现在已经找不到ldap-account-manager包了,重新安装。当然aptitude已经可以正常使用了。

Ubuntu下,dpkg安装出错的修复的更多相关文章

  1. Ubuntu下dpkg安装软件遇到包依赖问题的处理方法

    造冰箱的大熊猫@cnblogs 2019/9/10 向灵魂工程师致敬! 在Ubuntu环境下通过dpkg命令安装deb包时,如果遇到包依赖问题,如 $sudo dpkg -i xxx.deb (Rea ...

  2. Ubuntu使用dpkg安装软件依赖问题解决 ubuntu-tweak ubuntu 16.04 LTS 系统清理

    Ubuntu使用dpkg安装软件依赖问题解决 这里以在ubuntu 16.04安装Ubuntu Tweak为例进行说明,通常安装包依赖问题都可以用这种方法解决: sudo apt-get instal ...

  3. Ubuntu下软件安装方式、PATH配置、查找安装位置

    Ubuntu 18.04, 安装方式 目前孤知道的Ubuntu下安装软件方式有3种(命令): 1.make 2.apt/apt-get 3.dpkg 方式1基于软件源码安装,需要经历配置(可选).编译 ...

  4. Ubuntu下nagios安装(来源官网)

    Ubuntu下nagios安装(来源官网) https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/toc.html h ...

  5. Ubuntu下Zabbix安装及使用问题

    1.configure: error: MySQL library not found MySQL library not found root@kallen:~# apt-get install l ...

  6. Ubuntu下手动安装vscode

    Ubuntu下手动安装vscode1.下载vscodewget https://vscode.cdn.azure.cn/stable/553cfb2c2205db5f15f3ee8395bbd5cf0 ...

  7. [转]:Ubuntu 下Apache安装和配置

    [转]:Ubuntu 下Apache安装和配置_服务器应用_Linux公社-Linux系统门户网站  https://www.linuxidc.com/Linux/2013-06/85827.htm ...

  8. Ubuntu下编译安装postgreSQL 10.5

    Ubuntu下编译安装postgreSQL 10.5 ubuntu 16.04 LTS系统postgreSQL 10.5 安装包准备 1.从PostgreSQL官网下载PostgreSQL的安装包 安 ...

  9. 在Ubuntu下编译安装GreatSQL

    在Ubuntu下编译安装GreatSQL 本次介绍如何利用Docker构建Ubuntu环境,并将GreatSQL源码编译成二进制文件. 1.准备工作 先创建本次Docker的workdir为 /dat ...

随机推荐

  1. 分布式缓存技术memcached学习系列(三)——memcached内存管理机制

    几个重要概念 Slab memcached通过slab机制进行内存的分配和回收,slab是一个内存块,它是memcached一次申请内存的最小单位,.在启动memcached的时候一般会使用参数-m指 ...

  2. iOS:即时通讯之<了解篇 SocKet>

    什么是socket? 计算机专业术语就是: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.Socket的英文原义是“孔”或“插座”.作为BSD UNIX的进 ...

  3. 最简易的PHP Storm调试模式开启方式

    使用的是xdebug调试工具. 其实真的很想吐槽php语言开启调试模式真的好麻烦. 据说xdebug调试工具不支持php7.0以下版本,我同事的php5.6就不支持噗嗤.. 正文: 1.先用phpSt ...

  4. uploadify上传图片

    1.实现源代码 <%@ page language="java" import="java.util.*" pageEncoding="UTF- ...

  5. C语言07指针高级

    01内存四区 接口封装和设计思想引导 接口封装设计思想引导 Sckclient客户端api模型设计 第一套api函数 #ifndef _SCK_CLINT_H_ #define _SCK_CLINT_ ...

  6. vim打造开发IDE

    个人的插件和配置 set nocompatible " 去除VI一致性,必须要添加 filetype off " 必须要添加 " advanced keys " ...

  7. C++拷贝函数的小结,关于变量的作用域等---ShinePans

    #include <iostream> using namespace std; class circle { private: double r0; public: circle(dou ...

  8. mysql 一对多 group查询

    场景:查询所有A表的数据,并且关联B表,再数据集中插入一个COUNT列.该列的数据是B表的COUNT 扩展:假设join的表数据为空,但我任然要把所有表A的数据取出来,那就用LEFT JOIN SEL ...

  9. 转 MySQL中的共享锁与排他锁

    原文链接在MySQL中的行级锁,表级锁,页级锁中介绍过,行级锁是Mysql中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突.行级锁分为共享锁和排他锁两种,本文将详细介绍共享锁及排他锁的概念.使 ...

  10. 远程调试Hadoop

    远程调试对应用程序开发十分有用,那如何调试Hadoop源码?这里介绍如何用IDE远程调试Hadoop源码.本文以IntelliJ IDEA作为IDE,以调试Jobhistory WEB UI代码为例进 ...