参考

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. HDUOJ--畅通工程

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  2. SQL SERVER SELECT语句中加锁选项的详细说明 [转]

    SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能.用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果. 本文介绍了S ...

  3. 工作总结 public DateTime? CollectionTime 可空类型 Code First

    数据库生成就对应生成  可以为空 的字段

  4. python学习笔记——爬虫的抓取策略

    1 深度优先算法 2 广度/宽度优先策略 3 完全二叉树遍历结果 深度优先遍历的结果:[1, 3, 5, 7, 9, 4, 12, 11, 2, 6, 14, 13, 8, 10] 广度优先遍历的结果 ...

  5. k8s的容器监测探针

    大部分的应用程序我们在部署的时候都会适当的添加监控,对于运行载体容器则更应该如此.kubernetes提供了 liveness probes来检查我们的应用程序.它是由节点上的kubelet定期执行的 ...

  6. JAVA-从题目看算法,将输入字符串进行排序并输出

    来看一个排列的样例.它所做的工作是将输入的一个字符串中的全部元素进行排序并输出,比如:你给出的參数是"abc" 则程序会输出:abc acb bac bca cab cba 这是一 ...

  7. 批处理学习笔记11 - del命令和rd命令

    这两个命令都是删除,所以放一块说了 del 删除文件 rd 删除目录(文件夹) ------------------------------------------------------------ ...

  8. mysqldump 导出数据库为DBname的表名为Tname的表结构 导出数据库的所有表的表结构

    mysqldump -uroot -p password -d DBname Tname >db.sql #关建点是"-d"参数 导出数据库的所有表的表结构 mysqldum ...

  9. 如何使用Redis做MySQL的缓存

    应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql. 同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增 ...

  10. Linux,Windows中的相对路径、绝对路径

    1.Windows绝对路径:以盘符开始 如C:/a.txt相对路径:. 指的是当前目录.. 指的是挡圈目录的上一级目录./test表示当前目录下的test文件夹/test表示当前盘符下的test文件夹 ...