zoukankan      html  css  js  c++  java
  • Ubuntu16.04 报错信息处理

    系统版本:Ubuntu 16.04LTS

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

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

    2.1 查询系统当前内核

    输入指令
    uname -a
    获得结果
    Linux xplanet-Aspire-E1-471G 4.4.0-72-generic #93-Ubuntu SMP Fri Mar 31 14:07:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    加粗部分为版本号。

    2.2查看系统现有内核文件

    输入指令
    dpkg –get-selections |grep linux-image
    输出结果
    ii linux-image-4.4.0-31-generic 4.4.0-31.50 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
    ii linux-image-4.4.0-72-generic 4.4.0-72.93 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
    ii linux-image-4.4.0-78-generic 4.4.0-78.99 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
    ii linux-image-extra-4.4.0-31-generic 4.4.0-31.50 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    ii linux-image-extra-4.4.0-72-generic 4.4.0-72.93 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP

    可以看到,除了当前使用的4.4.0.72内核,系统内还有4.4.0.31、4.4.0.78两个内核。

    2.3 清除多余内核文件

    输入指令
    sudo apt-get remove linux-image-4.4.0-31-generic

    正常情况下,4.4.0-31-generic会被删除,但我的程序出现了 报错

    报错信息
    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)

    共有三个报错:

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

    2.3.1 解决“ pre-removal脚本 返回错误状态1 的报错”

    根据网络,运行

    sudo gedit /var/lib/dpkg/status

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

    我打开了status文档,寻找linux 内核对应的package,只找到了一个linux-base的package,删掉了对应描述,失手没有备份。

    运行以下命令,继续删除内核

    sudo apt-get autoremove linux-image-4.4.0-31-generic

    报错如下
    您可能需要运行“apt-get -f install”来纠正下列错误:
    下列软件包有未满足的依赖关系:
    initramfs-tools : 依赖: linux-base 但是它将不会被安装
    linux-image-extra-4.4.0-31-generic : 依赖: linux-image-4.4.0-31-generic 但是它将不会被安装
    E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt-get -f install”(也可以指定一个解决办法)。

    看来我的package删错了。
    依据提示,运行

    sudo apt-get -f install

    再次报错,这次的错误信息有

    序号 错误
    1 子进程 旧的 pre-removal 脚本 返回错误状态 1
    2 子进程 新的 pre-removal 脚本 返回错误状态 1
    3 ImportError: No module named ‘ConfigParser’
    4 子进程 已安装 post-installation 脚本 返回错误状态 1

    发现一个新的 错误,No module named ‘ConfigParser’

    2.3.2 解决报错ImportError: No module named ‘ConfigParser’

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

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

    2.3.3设置Python2与Python3的切换

    运行以下指令,设置Python2和Python3作为alteratives

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

    以后可以随时使用以下指令来更换Python2和Python3

    sudo update-alternatives –config python

    得到如下输出

    选择 路径 优先级 状态
    ————————————————————————
    * 0 /usr/bin/python3 150 自动模式
    1 /usr/bin/python2 100 手动模式
    2 /usr/bin/python3 150 手动模式
    要维持当前值[*]请按<回车键>,或者键入选择的编号:

    输入对应编号就可以啦。

    2.3.4 解决“子进程 已安装 post-installation 脚本 返回错误状态 1”

    更改了默认的Python版本后,
    重新运行指令,仍然报错,但是只剩下
    子进程 已安装 post-installation 脚本 返回错误状态 1
    这一类错误了。
    解决方法
    运行如下指令

    sudo rm /var/lib/dpkg/info/包的名称

    sudo rm /var/lib/dpkg/info/linux-image-extra-4.4.0-75-generic.*

    错误解决

    2.3.5 继续清除内核

    解决以上报错后,运行

    sudo apt-get -f install

    发现没有报错了

    运行

    sudo apt-get remove linux-image-4.4.0-75-generic

    顺利完成删除

    根据情况,继续删除不需要的内核文件,

    删除完成后,查看内核文件

    dpkg -l ‘linux-image-*’|grep ‘^ii’

    输出
    ii linux-image-4.4.0-72-generic 4.4.0-72.93 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
    ii linux-image-extra-4.4.0-72-generic 4.4.0-72.93 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP

    只剩下了一个版本的内核。

    /boot 文件夹获得了新的空间。

    3.更新系统

    在“关于这台计算机”中
    选择 检查更新
    进行更新,顺利完成。

  • 相关阅读:
    js面向对象设计之function类
    js 面向对象设计之 Function 普通类
    JS 面试题 实践一
    es6面试问题——Promise
    我给出的一份前端面试题
    如何面试前端工程师?
    前端面试中的自我介绍
    第四章 --- 关于Javascript 设计模式 之 迭代器模式
    第三章 --- 关于Javascript 设计模式 之 代理模式
    第二章 --- 关于Javascript 设计模式 之 策略模式
  • 原文地址:https://www.cnblogs.com/blogofnickchen/p/7221640.html
Copyright © 2011-2022 走看看