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
修改完之后執行reboot命令重啟Ubuntu生效,發現可以在登錄界面使用root身份登錄了。
如果想取消“登錄”這一步驟,開機直接能進入桌面,可以再將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 即可解決。
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。