Debian/Ubuntu系統下高效管理軟件包

(1)查詢軟件(查詢不須要sudo權限)html

$ apt-cache pkgnames                        #列出當前全部可用軟件包
$ apt-cache search pkgname\_keyword        #列出匹配關鍵字的軟件包
$ apt search pkgname\_keyword              

$ apt list pkgname                        #查找該軟件包

$ apt-cache show pkgname                  #查詢軟件包信息
$ apt show pkgname

$ apt-cache depends pkgname               #查詢軟件包依賴關係
$ apt-cache rdepends pkgname              #查詢被哪些軟件包依賴
$ apt-cache showpkg pkgname

$ apt-cache policy pkgname                #查詢軟件包的安裝狀態和版本
$ apt-cache stats              #查看統計信息

(2)軟件包安裝(須要sudo權限)nginx

$ sudo apt-get install pkgname
$ sudo apt install pkgname

$ sudo apt install -f                               #自動修復依賴
$ sudo apt-get install -f

(3)軟件包更新ubuntu

$ sudo apt-get update 
$ sudo apt update

說明:執行apt-get update,更新apt-get緩存中的軟件包信息,獲取最新軟件包列表,建議每次安裝軟件前先執行一次,其實是更新了/etc/apt/sources.list和/etc/apt/sources.list.d/目錄下的.list文件
 緩存

$ sudo apt-get upgrade           #更新系統全部已安裝軟件包,只更新包會忽略依賴關係
$ sudo apt upgrade
$ sudo apt-get upgrade -u        #-u 列出可升級軟件列表
$ sudo apt-get upgrade -s        #模擬升級
$ sudo apt-get dist-upgrade      #根據依賴關係更新系統全部已安裝軟件包
$ sudo apt-get --reinstall install pkgname        #只升級某一個軟件包
$ sudo apt-get source pkgname       #只下載源碼包
$ sudo apt-get check                #檢查破損的依賴關係
$ sudo apt-get autoclean            #自動清楚apt-get緩存

 
說明:apt-get autoclean和apt-get clean的區別
APT的底層包管理器是dpkg, 而dpkg 安裝Package時, 會將 *.deb 放在 /var/cache/apt/archives/中,apt-get autoclean 只會刪除 /var/cache/apt/archives/ 已通過期的deb
使用 apt-get clean 會將 /var/cache/apt/archives/ 的 全部 deb 刪掉,能夠理解爲 rm /var/cache/apt/archives/*.deb)ssh


(4)軟件包卸載工具

$ sudo apt-get remove pkgname              #刪除已安裝的軟件包(保留配置文件)
$ sudo apt-get purge pkgname               #卸載軟件,同時刪除配置文件
$ sudo apt-get autoremove pkgname   #完全自動卸載軟件,刪除該軟件包及所依賴的,以及再也不使用和未使用的軟件包

(5)dpkg工具管理deb格式軟件包code

$ dpkg -l                            #列出全部安裝的deb軟件包
$ dpkg -l|grep nginx                 #查詢nginx是否已安裝
$ dpkg -s zip                        #查看軟件包zip的狀態和詳細信息
$ dpkg -S openssh-server             #查看軟件包openssh-server包含的全部文件
$ dpkg -L htop                       #查看htop對應的軟件包安裝的文件及目錄
$ sudo dpkg -i deb\_pkgname          #安裝deb格式的軟件包,須要本身解決依賴關係
$ sudo dpkg -r deb\_pkgname          #卸載deb格式的軟件包(保留配置文件),須要本身解決依賴關係
$ sudo dpkg -P deb\_pkgname          #卸載deb格式的軟件包(不保留配置文件),須要本身解決依賴關係
$ sudo dpkg -P package-name          #清除軟件包的全部文件(removes everything, including conffiles)

(6)rpm軟件包管理server

$ sudo apt-get install alien                   #安裝rpm轉換deb的工具

說明:使用alien將.rpm 格式轉換成.deb,而後再經過dpkg安裝htm


(7)二進制軟件包.run或.bin管理ip

$ sudo chmod +x pkgname          #先賦予執行權限
$ sudo ./pkgname                 #執行安裝
$ sudo ./uninstall               #卸載通常軟件包會帶有卸載程序,若是沒有請查看軟件包內幫助文件

(8)源碼安裝軟件包

源碼包解壓縮
$ tar -jxvf file.tar.bz2              #解壓縮.tar.bz2文件,bzip2文件更小,解壓縮時間長
$ tar -zxvf file.tar.gz               #解壓縮.tar.gz文件,gzip文件解壓縮時間短,文件比.tar.bz2大
$ ./configure  --prefix=/path/        #建立Makefile文件,不指定安裝目錄,默認安裝到/usr/local
$ ./configure  --help                 #查看幫助

$ make                                #編譯成可執行二進制文件,此時尚未安裝到指定目錄下
$ make -j4                            #多核並行編譯,通常爲核心數的1-2倍

$ make -j4 install                    #將make生成的二進制文件,庫和配置文件安裝到預約的目錄中
$ make clean                          #清除上次的make命令所產生的object文件及可執行文件

(9)針對軟件所依賴的共享庫文件不存在的問題

# ldd /path/command         #查看command命令所依賴的共享庫,命令必須是絕對路徑
# ldconfig     #動態鏈接庫管理命令,主要用在默認搜索目錄/lib和/usr/lib,以及共享庫配置文件/etc/ld.so.conf內列出的目錄下搜索出可共享的動態鏈接庫(lib\*.so\*)

說明:
執行sudo ldconfig,會更新/etc/ld.so.cache共享庫緩存文件。不少開源軟件共享庫會默認安裝在/usr/local/lib 目錄下
/etc/ld.so.conf文件包含了/etc/ld.so.conf.d/*.conf
/etc/ld.so.conf/libc.conf文件包含了/usr/local/lib
新安裝的庫文件,須要使用ldconfig命令來更新/etc/ld.so.cache,這樣新的庫文件才能被新命令依賴到。
 
 

參考連接:
https://www.ywops.com/archive...

相關文章
相關標籤/搜索