关于ubuntu16.04系统无法系统更新的解决

时间:2024-03-08 08:24:25

1.提示系统更新升级,报错 /boot空间不足

2.根据网络,为获得/boot 空间,选择删除多余的内核文件

2.1 查询系统当前内核

~$dpkg --get-selections |grep linux-image

eason@eason:~$ dpkg --get-selections |grep linux-image
linux-image-4.4.0-21-generic deinstall
linux-image-4.4.0-57-generic install
linux-image-4.4.0-59-generic install
linux-image-extra-4.4.0-21-generic deinstall
linux-image-extra-4.4.0-57-generic install
linux-image-extra-4.4.0-59-generic install
linux-image-generic install
eason@eason:~$

后面带deinstall的为已删除的内核,可以忽略

2.2使用命令uname -a查看自己当前启动的是哪个内核(一般为最新)

eason@eason:~$ uname -a
Linux eason 4.4.0-59-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

2.3使用命令sudo apt-get purge linux-image-3.5.0-27-generic卸载4.4.0-21和4.4.0-57.建议使用purge,若使用remove卸载则会有遗留或无法卸载。

sudo apt-get purge linux-image-4.4.0-21-generic

sudo apt-get purge linux-image-4.4.0-21-generic
sudo apt-get purge linux-image-4.4.0-57-generic

2.4卸载完后可以用df命令看下boot分区的空间使用情况。

[eason@eason log]# df
文件系统               1K-块        已用     可用 已用% 挂载点
/dev/sda7             19840892    890896  17925856   5% /
/dev/sda9            203727156 112797500  80413912  59% /opt
/dev/sda8              4956284    570080   4130372  13% /var
/dev/sda6             19840892   1977568  16839184  11% /usr
/dev/sda3               988116     23880    913232   3% /boot
tmpfs                 16473212         0  16473212   0% /dev/shm

对于因使用remove命令而残留的deinstall的,使用sudo dpkg -P linux-image-extra-4.4.0-21-generic

3.如果天下的问题都能按照教程解决就美好了,BUT...

我的程序在2.3出现了"报错" 憎らしい!

报错信息 
File “/usr/bin/pyclean”, line 63 
except (IOError, OSError), e: 
^ 
SyntaxError: invalid syntax 
dpkg:警告:子进程 旧的 pre-removal 脚本 返回错误状态 1 
dpkg: 现在尝试使用新软件包所带的脚本… 
File “/usr/bin/pyclean”, line 63 
except (IOError, OSError), e: 
^ 
SyntaxError: invalid syntax 
dpkg: 处理归档 /var/cache/apt/archives/apport_2.20.1-0ubuntu2.5_all.deb (–unpack)时出错: 
子进程 新的 pre-removal 脚本 返回错误状态 1 
Traceback (most recent call last): 
File “/usr/bin/pycompile”, line 35, in 
from debpython.version import SUPPORTED, debsorted, vrepr, \ 
File “/usr/share/python/debpython/version.py”, line 24, in 
from ConfigParser import SafeConfigParser 
ImportError: No module named ‘ConfigParser’ 
dpkg:清理时出错: 
子进程 已安装 post-installation 脚本 返回错误状态 1 
在处理时有错误发生: 
/var/cache/apt/archives/apport_2.20.1-0ubuntu2.5_all.deb 
E: Sub-process /usr/bin/dpkg returned an error code (1)

3.1共有三个报错:

子进程 旧的 pre-removal 脚本 返回错误状态 1
子进程 新的 pre-removal 脚本 返回错误状态 1
子进程 已安装 post-installation 脚本 返回错误状态 1

其中报错代码中多次出现

File "/usr/bin/pyclean",line63
File "/usr/bin/pycompile",line35,in<module>

我猜和python有关,查询得知报错原因是因为 在Python 3中, ConfigParser 被重命名为 configparser,而我使用到的package 不支持pyhton3,没有更新。

简言之就是之前因为学习需要,我将系统默认的Python2改为指向Python3,导致了这一问题。

3.2设置Python2与Python3的切换

sudo update-alternatives –-install /usr/bin/python python /usr/bin/python2 100 
sudo update-alternatives –-install /usr/bin/python python /usr/bin/python3 150

至于说切换py2.7与3.5版本指向,我现在用IDE了,不怎么直接用py环境,再有ubuntu频繁更新,就不折腾了.