zoukankan      html  css  js  c++  java
  • 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。


  • 相关阅读:
    为什么说性别字段不适合做索引?
    过程数据的记录(事务问题)
    两个系统操作同一条表记录涉及的事务的坑(依护系统)
    mybatis插件自动生成代码报错。
    ORACLE使用plsql和其他工具进行表结构和数据迁移
    ORACLE获取建表SQL
    学习英语的技巧
    Oracle的用户管理
    Jmeter做压力测试
    强烈推荐(原创亲测)!!!Fiddler抓取https设置详解(图文)
  • 原文地址:https://www.cnblogs.com/linuxAndMcu/p/10767351.html
Copyright © 2011-2022 走看看