Linux常见问题及解决方案

1 [解决] dpkg被中断问题

Linux系统安装软件是有时会碰到“dpkg 被中断,您必须手工运行 sudo dpkg –configure -a解决此问题”,然而按照提示运行却并没能很好的解决问题。其实导致这个问题的主要原因是因为/var/lib/dpkg/updates文件下的文件有问题,可能是其他软件安装过程或是其他原因导致的,这里删除掉然后重建即可。

sudo rm /var/lib/dpkg/updates/*
sudo apt-get update
sudo apt-get upgrade

解释:

  • sudo apt-get update指令会重新建立这些资料,所以不必担心删除后会出问题;

  • sudo apt-get upgrade会更新你的电脑里面已安装的软件的明细,根据软件的明细更新软件到最新版。


2 [解决] ubuntu E: 无法获得锁 /var/lib/apt/lists/lock - open

错误提示:
E: 无法获得锁 /var/lib/apt/lists/lock – open (11: 资源暂时不可用)
E: 无法对目录 /var/lib/apt/lists/ 加锁
这个问题在Ubuntu系统下非常常见,在添加源,然后在更新源时中途中断了更新,只要再安装软件或者再去更新的时候就会出来的错误提示。

解决办法一:
面对这个问题,有人直接在终端中输入命令:

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

即可解决。

解决办法二:
在更新进程还在内存中,要先终止这个进程,所以,先得找出进程,在终端中输入:ps -aux,输出如下:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 3545 0.0 0.1 5948 1196 ? S 13:09 0:00 sudo apt-get up
root 3546 0.0 0.2 8408 2484 ? S 13:09 0:00 apt-get update

3545与3546就是进程的ID,终止它们两个要在终端中输入:

sudo kill 3545
sudo kill3546

3 为UBuntu系统添加root用户

想要在登录界面使用root身份登录,可编辑 /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 文件,如没有此文件,则直接创建它。执行命令:

gedit /usr/share /lightdm/lightdm.conf.d/50-ubuntu.conf

编辑: 50-unity-greeter.config,添加如下代码,保存退出:

[SeatDefaults]
#用户会话为ubuntu(原本就有的一行)
user-session=ubuntu
#需要手工输入登陆系统的用户名和密码
greeter-show-manual-login=true
#禁用guest用户
all-guest=false

img

修改完之后执行reboot命令重启Ubuntu生效,发现可以在登录界面使用root身份登录了。
img

如果想取消“登录”这一步骤,开机直接能进入桌面,可以再将50-unity-greeter.config文件编辑如下:

[SeatDefaults]
#用户会话界面为ubuntu(原本就有的一行)
user-session=ubuntu
#启动后以root身份自动登录
autologin-user=root
#登录会话界面设置为unity-greete
greeter-session=unity-greete
#需要手工输入登陆系统的用户名和密码(改为false,可以取消登录界面)
greeter-show-manual-login=true
#禁用guest用户
all-guest=false

Ubuntu启用root账户后,进入桌面后报错:读取/root/.profile时发现错误:stdin:is not a tty 作为结果,会话不会被正确配置。解决方法为:

gedit /root/.profile

将文件末尾一句 mesg n 更改为:

tty -s && mesg n

然后重启即可解决。


4 ubuntu下查看显卡驱动是否已经成功安装

运行命令:

glxinfo | grep rendering

如果结果是“yes”,证明显卡驱动已经成功安装。

如果提示有问题,可能是系统里面没有安装mesa-utils,安装过程:在终端输入命令:

sudo apt-get install mesa-utils

然后再运行命令:

glxinfo | grep rendering

5 ubuntu14.04 中 ifconfig 只有lo的问题

新装的 ubuntu 14.04 无法上网, 执行 ifconfig 只看到 lo, 没发现eth0,怀疑是没有装网卡驱动。

执行以下命令,查看需要安装网卡驱动的型号:

lspci | grep -i net

显示信息如下:

00:1f.6 Ethernet controller: Intel Corporation Device 15bc (rev 10)

可以看出:网卡类型是有线网Intel Corporation Device ,对应型号驱动去这里下载。

下载完成后进入下载目录,先解压然后安装,命令如下:

tar -xvf e1000e-3.4.2.1.tar.gz
sudo make install
sudo modprobe e1000e

然后再执行 ifconfig 就可以看到 eth0,发现也可以正常上网了。


6 Ubuntu“系统设置”中没有了“语言支持”怎么办?

安装搜狗输入法前会安装”输入法切换工具-im-switch“,安装该软件会导致内置im-config(输入法)和LanguageSupport(语言支持)的卸载,所以才会发现在Ubuntu“系统设置”中没有了“语言支持”。

解决办法:

第一步,删除im-switch,在“软件管理中心”输入“im-switch”并删除它,当然也可以使用apt-get remove命令删除。

第二步,安装安装缺少程序,安装“语言支持”:在“软件管理中心”输入“language”,就会出现“语言支持”了,安装它。

随后进入“系统设置”看一下有没有“语言支持”,如果没有,重新启动再看看!如果有了”语言支持“,点击进入,系统会自动提示是否安装剩余依赖软件,点击安装即可。


7 Indigo版本Gazebo的启动修复

indigo版本的Gazebo是2.2.3, 针对首次运行Gazebo,会出现非常缓慢,原因可能是不能正确下载模型。

Warning [ModelDatabase.cc:356] Getting models from[http://gazebosim.org/models/]. This may take a few seconds.

解决方法: 通过直接下载所有模型到用户的根目录下的.gazebo/models/下。


8 Linux下Qt还原快捷键失灵的解决方案

Linux下使用Qt5.9.7,发现按下 Ctrl+Y 无法还原,进入“工具->选项->环境->键盘”,在“过滤器”一栏输入"redo"才发现快捷键是 Ctrl+Shift+Z,将其修改回 Ctrl+Y 即可解决。

img


9 Rviz: fixed frame [map] does not exist

当打开RVIZ,就会出现如上错误,不能在网格上显示任何内容,在 tf 上也不能看到任何框架。

解决方案是为连接到网格的固定框架提供发布者,以描述相对于它的框架。这意味着使用四元数/欧拉角(0 0 0 1),rviz可以将坐标系从固定坐标系转换为框架。这是一个发布者,告诉rviz在哪里放置固定的世界框架。运行如下指令即可解决:

rosrun tf static_transform_publisher 0 0 0 0 0 0 1 map my_frame 10

10 关于pthread_create未定义的引用的奇葩解决

(1)本来在代码里包含了pthread.h 第一次编译:gcc -o create create.c 提示错误 未定义的引用

(2)后来知道linux标准库没有pthread.h 要链接之-lpthread 第二次编译:gcc -o create -lpthread create.c 仍然提示错误 未定义的引用!

(3)再后来。。。。。发现,-lpthread应该写在末尾 第三次编译:gcc -o create create.c -lpthread 编译成功。。。。。


11 apt-get update更新软件库的时候出现的警告

(1)警告一:W: GPG 错误:http://ppa.launchpad.net trusty InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY B5B116B72D0F61F0

解决方案:执行以下命令:

#添加相应签名
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B5B116B72D0F61F0

(2)警告二:W: 校验签名出错。此仓库未被更新,仍然使用以前的索引文件。GPG 错误:http://packages.ros.org trusty InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654

解决方案:执行以下命令:

#添加相应签名
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

12 Linux如何查看user和hostname?

(1)打开终端查看

终端左侧的root@zlkj:~$,前面的root为user - 用户名,后面的zlkj为hostname - 主机名。

(2)命令查看

user查看命令为whoami,hostname查看命令为hostname,如下所示:

root@zlkj:/home/zlkj# whoami 
root
root@zlkj:/home/zlkj# hostname
zlkj

13 Linux怎么给一个普通用户reboot权限?

Linux怎么给一个普通用户reboot权限?即普通用户可以不输入密码就可执行 sudo reboot 命令实现重启。方法如下:

先执行命令sudo gedit /etc/sudoers,添加 user hostname=NOPASSWD: /sbin/shutdown -h now,/sbin/reboot 这一行到文件的末端,替换其中的user为你的用户名,hostname为你的主机名。由于本人的user和hostname都为zlkj,所以测试添加的一行如下:

zlkj zlkj=NOPASSWD: /sbin/shutdown -h now,/sbin/reboot

sudo 的作用,它允许经过使用者以超级管理员的身份执行指定指令。sudo 的主要配置文件是/etc/sudoers。


posted @ 2019-04-25 11:28  fengMisaka  阅读(6160)  评论(0编辑  收藏  举报