哪个包出错, 就修改哪个包的安装脚本
----
正在设置 libxi-dev (2:1.1.3-2build1) ...
dpkg: ../../src/packages.c:221: process_queue: Assertion `dependtry<= 4' failed.
Aborted
-----
cd /tmp
dpkg -x /var/cache/apt/archives/libxi-dev.deb DIR1 解压包文件
dpkg -e /var/cache/apt/archives/libxi-dev.deb DIR1/DEBIAN解压包控制文件
看上面的出错记录,为什么 dpkg 执行脚本会失败,临时解决就是修改 DIR1/DEBIAN/里 preinst postinst之类的安装脚本,,
sudo dpkg -b DIR1 libxi-dev.deb 重新打包
sudo cp libxi-dev.deb /var/cache/apt/archives/libxi-dev.deb把它复制回去
再 sudo dpkg --configure -a 之类的修复
-----------------------------------
终级手段
-----------------------------------
看到 /var/lib/dpkg/status 了吧, 这个文件内容就是系统中已安装的包,已安装但删除了的包, .... 信息 这是DPKG 的数据库
哪 个包安装不了或会出错的, 直接把那个包的控制文件解压出来,用上面的命令,, 在 DEBIAN/control 内容复制到status 里去,再从其它段落里复制 Status: install ok installed 之类的状态信息, 这样, dpkg就是以为这个包已经安装过了, 在安装其它 依赖这个包的包时 ,就会直接安装了
仔细看看 /var/lib/dpkg/ 里的其它文件, 整个系统你想怎么改就怎么改
出现这种问题时请运行 sudo apt-get -f install 会自动解决依赖问题的,然后再装你的软件就可以了。最后可能要运行sudo apt-get autoremove 来卸载没用的包(就是那些为你装一个软件而服务,但之后就不用了的包)。
----
正在设置 libxi-dev (2:1.1.3-2build1) ...
dpkg: ../../src/packages.c:221: process_queue: Assertion `dependtry<= 4' failed.
Aborted
-----
cd /tmp
dpkg -x /var/cache/apt/archives/libxi-dev.deb DIR1 解压包文件
dpkg -e /var/cache/apt/archives/libxi-dev.deb DIR1/DEBIAN解压包控制文件
看上面的出错记录,为什么 dpkg 执行脚本会失败,临时解决就是修改 DIR1/DEBIAN/里 preinst postinst之类的安装脚本,,
sudo dpkg -b DIR1 libxi-dev.deb 重新打包
sudo cp libxi-dev.deb /var/cache/apt/archives/libxi-dev.deb把它复制回去
再 sudo dpkg --configure -a 之类的修复
-----------------------------------
终级手段
-----------------------------------
看到 /var/lib/dpkg/status 了吧, 这个文件内容就是系统中已安装的包,已安装但删除了的包, .... 信息 这是DPKG 的数据库
哪 个包安装不了或会出错的, 直接把那个包的控制文件解压出来,用上面的命令,, 在 DEBIAN/control 内容复制到status 里去,再从其它段落里复制 Status: install ok installed 之类的状态信息, 这样, dpkg就是以为这个包已经安装过了, 在安装其它 依赖这个包的包时 ,就会直接安装了
仔细看看 /var/lib/dpkg/ 里的其它文件, 整个系统你想怎么改就怎么改
sudo dpkg --configure -a
sudo apt-get update
sudo apt-get upgrade
sudo apt-get update
sudo apt-get upgrade
出现这种问题时请运行 sudo apt-get -f install 会自动解决依赖问题的,然后再装你的软件就可以了。最后可能要运行sudo apt-get autoremove 来卸载没用的包(就是那些为你装一个软件而服务,但之后就不用了的包)。