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。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM