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
3ImportError: 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.更新系统

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

转载于:https://www.cnblogs.com/blogofnickchen/p/7221640.html

### 回答1: 在Ubuntu 16.04上使用ROS时,执行"rosdep init"命令时可能会遇到报错。这个问题通常是由于网络连接问题导致的。要解决这个问题,可以按照以下步骤进行操作: 1. 首先,确保您的网络连接是正常的,可以尝试更换网络连接方式(例如使用有线连接代替无线连接)并重试命令。 2. 如果更换网络连接方式仍然无法解决问题,可以尝试使用以下命令来更新ROS的依赖项: ``` sudo apt-get update sudo apt-get install python-rosdep ``` 3. 如果上述步骤仍然无法解决问题,可以尝试手动初始化rosdep。首先,通过以下命令创建一个rospkg目录: ``` sudo mkdir /etc/ros/rosdep/sources.list.d ``` 4. 然后,使用以下命令创建一个rosdep源列表文件: ``` sudo sh -c 'echo "yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml" > /etc/ros/rosdep/sources.list.d/20-default.list' ``` 5. 最后,执行以下命令来初始化rosdep: ``` rosdep init ``` 通过执行上述步骤,您应该能够成功初始化rosdep,并继续使用ROS。希望这些信息对您有所帮助! ### 回答2: 当使用`ubuntu 16.04`系统上的`rosdep init`命令时,可能会遇到报错。这个错误通常是由于`rosdep`工具中的源文件问题引起的。 要解决这个问题,可以按照以下步骤进行操作: 1. 打开终端,输入以下命令来编辑`rosdep`源文件: ``` sudo nano /etc/ros/rosdep/sources.list.d/20-default.list ``` 2. 在打开的文件中,你会看到一些URL链接。这些链接是`rosdep`工具用来下载依赖关系的源文件。 3. 将所有的URL链接注释掉,或者将它们删除。你可以在前面添加一个井号(#)来注释掉链接。 4. 在文件的末尾,添加以下源文件链接: ``` yaml http://packages.ros.org/ros/rosdep/ubuntu.yaml ``` 5. 保存文件并退出编辑器。 6. 运行以下命令来更新`rosdep`工具的源文件: ``` sudo rosdep update ``` 7. 现在你可以尝试再次运行`rosdep init`命令,应该不会再出现错误。 这些步骤将修复`ubuntu 16.04`系统上`rosdep init`命令的报错问题,并正确初始化`rosdep`工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值