(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,這樣新的庫文件才能被新命令依賴到。