Linux包系列的知識(附:Ubuntu16.04升級到18.04的案例)
Linux基礎:https://www.cnblogs.com/dunitian/p/4822808.html#linux
之前看到朋友還動不動 apt-get update upgrade,就很納悶,後來發現原來他只是知道這個更新命令卻不知其意,所以每次安裝個包就把所有apt-get的常用清除+更新命令打一遍
後來~就有了這篇文章了,算給小白普及下吧:(後面有實戰案例)
包相關命令:
清除無用包:apt-get clean && apt-get autoclean#一般用apt-get autoclean就夠了
更新源:apt-get update#同步 /etc/apt/sources.list 源的索引,這樣才知道是不是有最新的包
更新包:apt-get upgrade#更新所有已安裝的軟體(upgrade只是簡單的更新包,不管這些依賴,它不添不刪。)
更新包2:apt-get dist-upgrade #包與包之間存在各種依賴關係。而dist-upgrade可以根據依賴關係的變化,添刪包。(依賴有時會出錯,建議新手謹慎使用)
補充:在執行upgradeordist-upgrade之前一定要執行update, 這樣才能獲取最新
安裝軟體:apt-get install XXX [--reinstall] #--reinstall是重新安裝包,一般都是用apt-get install XXX
修復依賴:apt-get-finstall #修復依賴,類似於win裡面的缺少dll,-f之後他幫你修復安裝一些依賴(安裝搜狗拼音實例有用到)
刪除軟體:apt-get remove XXX [--purge] #--purge 卸載的時候把配置文件也刪了,完全刪除包可以用這個選項:apt-get remove XXX --purge
---------------------------------------------------------------------------------------------------------------------------------------------------------
其他命令:(特殊環境下使用)
搜索軟體:apt-get search xxx
檢查是否有損壞的依賴:apt-get check (偶爾想起來或者軟體打不開的時候使用【有時候被清理了】)
獲取包信息:apt-cache show xxx
有哪些依賴:apt-cache depends xxx (比如安裝一個包,修復依賴也失敗,那就看看有哪些依賴,自己手動安裝)
被哪些包依賴:apt-cache rdepends xxx (比如卸載一個包的時候,查一下被哪些包依賴)
下載該包源代碼:apt-get source xxx
安裝相關編譯環境:apt-get build-dep xxx
實戰案例:
簡單說下,先清一下無用包,再update更新下源的索引,接著升級。之前一直以為dist-upgrade之後系統就滾動升級了,比如原來16.04.1後來可能變成16.04.2。
reboot重啟一下,update-manager -d運行更新管理,點下升級,一路下一步就好了(逆天是懶人一個,系統大版本跨越的命令基本上很少用,所以就懶得記了,附錄有命令安裝)
dnt@MZY-PC:~$ sudo apt-get clean
dnt@MZY-PC:~$ sudo apt-get autoclean
正在讀取軟體包列表... 完成
正在分析軟體包的依賴關係樹
正在讀取狀態信息... 完成
dnt@MZY-PC:~$ sudo apt-get update
忽略:1 http://dl.google.com/linux/chrome/deb stable InRelease
命中:3 http://dl.google.com/linux/chrome/deb stable Release
命中:8 http://packages.microsoft.com/repos/vscode stable InRelease
正在讀取軟體包列表... 完成
dnt@MZY-PC:~$ sudo apt-get upgrade
正在讀取軟體包列表... 完成
正在分析軟體包的依賴關係樹
正在讀取狀態信息... 完成
正在計算更新... 完成
下列軟體包的版本將保持不變:
cups-filters cups-filters-core-drivers gir1.2-javascriptcoregtk-4.0
gir1.2-webkit2-4.0 google-chrome-stable libjavascriptcoregtk-4.0-18
libwebkit2gtk-4.0-37 libwebkit2gtk-4.0-37-gtk2 linux-generic-hwe-16.04
linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04
linux-signed-generic-hwe-16.04 linux-signed-image-generic-hwe-16.04 qpdf
升級了 0 個軟體包,新安裝了 0 個軟體包,要卸載 0 個軟體包,有 14 個軟體包未被升級。
dnt@MZY-PC:~$ cat /etc/issue
Ubuntu 16.04.4 LTS
l
dnt@MZY-PC:~$ sudo apt-get dist-upgrade
正在讀取軟體包列表... 完成
正在分析軟體包的依賴關係樹
正在讀取狀態信息... 完成
正在計算更新... 完成
下列軟體包是自動安裝的並且現在不需要了:
libappindicator1 libindicator7
使用"sudo apt autoremove"來卸載它(它們)。
下列【新】軟體包將被安裝:
amd64-microcode intel-microcode iucode-tool libqpdf21 libwebpdemux1 linux-headers-4.13.0-43 linux-headers-4.13.0-43-generic
linux-image-4.13.0-43-generic linux-image-extra-4.13.0-43-generic linux-signed-image-4.13.0-43-generic
下列軟體包將被升級:
cups-filters cups-filters-core-drivers gir1.2-javascriptcoregtk-4.0 gir1.2-webkit2-4.0 google-chrome-stable libjavascriptcoregtk-4.0-18
libwebkit2gtk-4.0-37 libwebkit2gtk-4.0-37-gtk2 linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04
linux-signed-generic-hwe-16.04 linux-signed-image-generic-hwe-16.04 qpdf
升級了 14 個軟體包,新安裝了 10 個軟體包,要卸載 0 個軟體包,有 0 個軟體包未被升級。
需要下載 143 MB 的歸檔。
解壓縮後會消耗 300 MB 的額外空間。
您希望繼續執行嗎? [Y/n] y
獲取:1 http://mirrors.ustc.edu.cn/ubuntu xenial-updates/main amd64 libqpdf21 amd64 8.0.2-3~16.04.1 [315 kB]
獲取:2 http://dl.google.com/linux/chrome/deb stable/main amd64 google-chrome-stable amd64 66.0.3359.181-1 [52.3 MB]
獲取:3 http://mirrors.ustc.edu.cn/ubuntu xenial-updates/main amd64 cups-filters-core-drivers amd64 1.8.3-2ubuntu3.4 [128 kB]
獲取:4 http://mirrors.ustc.edu.cn/ubuntu xenial-updates/main amd64 cups-filters amd64 1.8.3-2ubuntu3.4 [448 kB]
dnt@MZY-PC:~$ reboot
dnt@MZY-PC:~$ cat /etc/issue
Ubuntu 16.04.4 LTS
l
dnt@MZY-PC:~$ sudo update-manager -d
[sudo] dnt 的密碼:
/usr/bin/update-manager:28: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version("Gtk", "3.0") before import to ensure that the right version gets loaded.
from gi.repository import Gtk
/usr/lib/python3/dist-packages/UpdateManager/UnitySupport.py:29: PyGIWarning: Dbusmenu was imported without specifying a version first. Use gi.require_version("Dbusmenu", "0.4") before import to ensure that the right version gets loaded.
from gi.repository import Dbusmenu, Unity
/usr/lib/python3/dist-packages/UpdateManager/UnitySupport.py:29: PyGIWarning: Unity was imported without specifying a version first. Use gi.require_version("Unity", "7.0") before import to ensure that the right version gets loaded.
from gi.repository import Dbusmenu, Unity
附錄見原文地址


TAG:我為Net狂 |