解决dpkg/apt-get error : 子进程 post-installation script 返回了错误号 1

2019-04-13 18:00:18

1 问题发现
前段时间安装screen的时候, 直接Ctrl+C终止了, 导致后来安装软件都报错, 错误信息如下

有 1 个软件包没有被完全安装或卸载
解压缩后会消耗掉 0B 的额外空间
您希望继续执行吗?[Y/n] y

……

dpkg: error processing screen (–configure):
子进程 已安装 post-installation 脚本 返回了错误号 1
在处理时有错误发生:
screen
子进程 已安装 post-installation 脚本 返回了错误号 1

2 问题解析
一般来说是由于我们在安装的过程中突然中止, 所以导致的环境变量异常, 软件已经可能安装了, 但是系统的信息却没有更新

软件的状态信息有误, 状态信息在/var/lib/dpkg/status查看

软件的配置信息不全, 位于/var/lib/dpkg/info/.*

3 问题解决
在解决问题之前, 请先删除出问题的软件包, 等待问题解决后, 再重新安装

3.1 方法1 清除状态信息
对于dpkg安装的软件包, 我们可以从/var/lib/dpkg/status查看到其安装状态

如果希望查看screen的安装状态, 可以使用如下命令查看其在哪一行

sudo cat -n /var/lib/dpkg/status | grep “Package: screen” # 查看在某一行
查看到位于第31103行, 然后查看此处的信息

sudo cat /var/lib/dpkg/status | tail -n +31103 | head -n 28
查看到位于第31103行, 然后查看此处的信息

由于我们的往问题已经解决, 可以看到我们的状态时安装成功的, 否则的话, 修改文件的内容将状态的信息删除

sudo vim /var/lib/dpkg/status
找到Package: ,比如Package: screen

删除这部分的描述, 删到下个Package: XXX前就好. 存档后, 再进行操作就OK了。

3.2 方法2 清除info文件
如果安装成功的软件, info目录下会存储着其安装和配置的脚本信息, 用于在安装和卸载的过程中触发执行, 我们可以检查

删到下个Package: XXX前就好

主要检查文件是否有缺失, 如果有缺失, 那么就删除他们, 然后重装该软件即可

sudo rm /var/lib/dpkg/info/.*
比如sudo rm /var/lib/dpkg/info/scerrn.*, 存档后,再进行重新安装就OK了

3.3 方法3 重新生成info列表
一般来说, 前面两种方法之一即可解决该问题, 如果还是没觉得, 可以重建info列表

首先将info文件夹更名备份

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old
再新建一个新的info文件夹

sudo mkdir /var/lib/dpkg/info
更新缓存信息

sudo apt-get update, apt-get -f install
恢复info文件夹的内容, 执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下

sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old
把自己新建的info文件夹删掉

sudo rm -rf /var/lib/dpkg/info
把以前的info文件夹重新改回名字

sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info

parrot下使用创建VPN客户端并连接OPNVPN笔记

默认的如果安装完插件之后可以直接使用网络那里创建连接使用。如果没有安装插件可以用下面的命令安装插件。 sudo apt-get install network-manager-l2tp-gnome network-manager-l2tp-gnome network-manager-pptp-gnome network-manager-pptp 下面的插件可以按照你的需求进行安装, network-manager network-manager-config-connectivity-debian network-manager-dev network-manager-fortisslvpn network-manager-fortisslvpn-gnome network-manager-gnome network-manager-iodine network-manager-iodine-gnome network-manager-l2tp network-manager-l2tp-gnome network-manager-openconnect network-manager-openconnect-gnome network-manager-openvpn network-manager-openvpn-gnome network-manager-pptp network-manager-pptp-gnome network-manager-ssh network-manager-ssh-gnome network-manager-strongswan network-manager-vpnc network-manager-vpnc-gnome 如何连接openvpn客户端? sudo apt-get openvpn    #安装openvpn,如果上面的已经安装过了略过 openvpn  /home/xx/1.openvpn  #选中openvpn文件进行连接 如果出现下面类似的错误。 Wed Oct 31 08:15:15

parrot内网嗅探信息ARP攻击获取记录ettercap使用教程

摘抄网上的文章优化了详情和错误的地方,时间有限只是记录下信息,不想重新写了。 嗅探的机器要跟Parrot是在同一个局域网的网段之中,并且路由器没有开启ARP防护功能。这里网上的文章是以嗅探妹子的IP为切入点 终端输入 echo 1 > /proc/sys/net/ipv4/ip_forward 进行ip转发,输入cat /proc/sys/net/ipv4/ip_forward如果返回值为1则开启成功。 这个只是开启临时的转发,重启之后转发就会失效。 终端输入ettercap -G命令,选择Unified snifing然后选择你的网卡 点击 hosts–>scan扫描主机,然后再点击hosts list 获取主机列表 选中嗅探目标点击Add to Target1添加,选择路由器点击Add to Target2添加,然后点击Arp Poisoning插入第三方 点击开始嗅探 再打开一个终端,输入driftnet -i wlan0