ubuntu apt-get error

本文记录了在Ubuntu系统中进行内核更新时遇到的问题,包括dpkg错误和GPG验证失败等,并提供了详细的解决步骤。

ubuntu

参考:
https://forum.mxlinux.org/viewtopic.php?t=39921
http://blog.csdn.net/yusiguyuan/article/details/24269129

最近在装新软件,然后

apt-get之后满屏幕都是

Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0-133-generic /boot/vmlinuz-3.13.0-133-generic
run-parts: executing /etc/kernel/postinst.d/dkms 3.13.0-133-generic /boot/vmlinuz-3.13.0-133-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.0-133-generic /boot/vmlinuz-3.13.0-133-generic
update-initramfs: Generating /boot/initrd.img-3.13.0-133-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.13.0-133-generic /boot/vmlinuz-3.13.0-133-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.13.0-133-generic /boot/vmlinuz-3.13.0-133-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.13.0-133-generic /boot/vmlinuz-3.13.0-133-generic
/usr/sbin/grub-mkconfig: 36: /etc/default/grub: Syntax error: EOF in backquote substitution
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 2
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.13.0-133-generic.postinst line 1025.
dpkg: error processing package linux-image-3.13.0-133-generic (--configure):
 subprocess installed post-installation script returned error exit status 2
Setting up linux-image-3.13.0-134-generic (3.13.0-134.183) ...

最后报错:

E: Sub-process /usr/bin/dpkg returned an error code (1)

找到方法:把包信息备份,重新apt-get update

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bak
sudo mkdir /var/lib/dpkg/info
sudo apt-get update

但是执行 sudo apt-get update 的时候,报警告:

W: GPG error: http://download.virtualbox.org xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A2F683C52980AECF

是这样修正的:

sudo -i
wget -q -O- http://download.virtualbox.org/virtualbox/debian/oracle_vbox_2016.asc | apt-key add -
### 解决 Ubuntu `apt-get` 命令错误的方案 在 Ubuntu 系统中,`apt-get` 是一个常用的包管理工具,用于安装、更新和删除软件包。然而,在使用过程中可能会遇到各种错误。以下是针对用户提到的几个常见问题及其解决方案。 #### 1. **修复 `apt-get update && upgrade` 错误** 当执行 `apt-get update && upgrade` 时,如果出现错误,可以尝试以下方法: - 清理不再需要的依赖包: ```bash sudo apt-get autoremove ``` 这将移除系统中不再需要的依赖包,避免因残留包导致的问题[^1]。 #### 2. **解决 `Symbol lookup error`** 如果遇到类似 `Symbol lookup error: ****.so.*:undefined symbol: g_strv_contains` 的错误,通常是由于动态链接库版本不匹配或缺少必要的符号定义。可以通过以下步骤修复: - 更新系统中的所有包以确保兼容性: ```bash sudo apt-get update && sudo apt-get dist-upgrade ``` - 如果问题仍然存在,可以尝试重新安装相关库: ```bash sudo apt-get install --reinstall libglib2.0-0 ``` 此命令将重新安装可能缺失或损坏的库文件[^1]。 #### 3. **处理 `Unmet dependencies` 错误** 当运行 `apt-get install` 时,如果提示 `Unmet dependencies` 错误,可以按照以下步骤操作: - 尝试修复破损的依赖关系: ```bash sudo apt-get install -f ``` 如果上述命令失败,可能是由于某些包被锁定或系统中存在冲突的包。此时可以尝试清理并重新安装: ```bash sudo dpkg --configure -a sudo apt-get clean sudo apt-get update && sudo apt-get upgrade ``` 如果问题仍未解决,可以尝试手动删除冲突的包后再重试[^2]。 #### 4. **解决 `Sub-process /usr/bin/dpkg returned an error code (1)`** 此错误通常与 `dpkg` 子进程有关,可能的原因包括磁盘空间不足、文件损坏或依赖关系问题。可以尝试以下方法: - 检查磁盘空间是否充足: ```bash df -h ``` - 清理缓存并重新配置未完成的安装: ```bash sudo apt-get clean sudo dpkg --configure -a ``` - 如果问题依然存在,可以尝试强制重新安装相关包: ```bash sudo apt-get install --reinstall <package-name> ``` #### 5. **升级到支持的 Ubuntu 版本** 如果当前使用的 Ubuntu 版本已停止支持(如 16.10 或 17.04),建议升级到受支持的版本(如 16.04 LTS 或 18.04 LTS)。升级前请备份重要数据,并按照以下步骤操作: - 更新现有系统: ```bash sudo apt-get update && sudo apt-get dist-upgrade ``` - 启动发行版升级工具: ```bash sudo do-release-upgrade ``` 注意:升级过程中可能会遇到依赖问题或配置冲突,请根据提示逐步解决[^4]。 #### 6. **其他常见错误及解决方案** 对于其他 `apt-get` 相关错误,可以参考以下通用方法: - 检查 `/etc/apt/sources.list` 文件是否正确配置。 - 清理并重建 APT 缓存: ```bash sudo apt-get clean sudo apt-get autoclean sudo apt-get update ``` - 如果问题涉及特定包,可以尝试单独修复该包: ```bash sudo apt-get install --fix-broken ``` ### 总结 通过以上方法,可以有效解决大多数 `apt-get` 命令相关的错误。如果问题仍然存在,建议检查系统日志(如 `/var/log/syslog`)以获取更多详细信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值