1. 程式人生 > 其它 >Linux開發軟體管理和系統服務管理

Linux開發軟體管理和系統服務管理

開發軟體管理

Linux系統下安裝程式的方式無非2大類:

  • 原始碼包

  • 包管理器

軟體包管理

Linux下最初只有tar.gz這樣的原始碼包。但是Linux中的程式大多是小程式,程式與程式之間存在非常複雜的依賴關係,這些小程式的原始碼包的管理就是一個很讓人頭疼的問題。

dpkg(Debian package),是Debian軟體包管理器的底層實現基礎。
apt(Advanced Packaging Tool,Linux高階打包工具)是一款基於Debian分支的所有Linux發行版本的包管理器,構建於dpkg之上。
apt-get是早期Debian實現的包管理器,在16.04以後新出爐的apt比apt-get更好用。但是apt畢竟是剛出的,所有有時候有些操作還是要使用apt-get的。

deb,是Debian軟體包格式的副檔名。一般使用dpkg或apt安裝的軟體包都是這個副檔名。
deb包在 Linux作業系統中類似於windows中的 軟體包(exe),幾乎不需要什麼複雜的編譯即可通過滑鼠點選安裝使用。

rpm(Red-Hat Package Manager,紅帽軟體包管理器),是一款由紅帽公司在APT基礎上研發出來的包管理器。
用RPM工具可以將二進位制程式進行打包,包被稱為RPM包。RPM無法解決軟體包的依賴關係,但是yum自動解決軟體依賴性。

yum(Yellow dog Updater, Modified)是一款在Fedora和RedHat以及CentOS中的軟體包管理器的前端工具。基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。 

dpkg

dpkg -i 包名.deb              # 安裝包
dpkg -r 包名                  # 刪除包
dpkg -P 包名                  # 刪除包(包括配置檔案)
dpkg -L 包名                  # 列出與該包關聯的檔案
dpkg -l 包名                  # 顯示該包的版本
dpkg --unpack 包名.deb        # 解開 deb 包的內容
dpkg -S keyword               # 搜尋所屬的包內容
dpkg -l                       # 列出當前已安裝的包
dpkg -c 包名.deb              # 列出 deb 包的內容
dpkg --configure 包名         # 配置包

apt

apt 命令 取代的命令 命令的功能
apt install apt-get install 安裝軟體包
apt remove apt-get remove 移除軟體包
apt purge apt-get purge 移除軟體包及配置檔案
apt update apt-get update 重新整理儲存庫索引
apt upgrade apt-get upgrade 升級所有可升級的軟體包
apt autoremove apt-get autoremove 自動刪除不需要的包
apt full-upgrade apt-get dist-upgrade 在升級軟體包時自動處理依賴關係
apt search apt-cache search 搜尋應用程式
apt show apt-cache show 顯示安裝細節
apt list 列出包含條件的包(已安裝,可升級等)

rpm

# 安裝軟體包
rpm -ivh 包名.rpm
# 解除安裝軟體包
rpm -e 包名.rpm
# 查詢包是否已經安裝
rpm -q 包名
# 升級軟體包
rpm -Uvh 包名.rpm
# 查詢軟體包的描述資訊
rpm -qpi 包名.rpm
# 列出軟體檔案資訊
rpm -qpl 包名.rpm

yum

yum install 軟體包名     # 安裝軟體包
yum reinstall 軟體包名   # 重新安裝軟體包
yum update    軟體包名   # 升級軟體包
yum search 關鍵字        # 搜尋包含關鍵字的軟體包
yum remove    軟體包名   # 移除軟體包
yum clean all           # 清除所有倉庫快取
yum makecache           # 建立新的快取
yum repolist all        # 列出所有倉庫
yum list all            # 列出倉庫所有軟體包
yum info 軟體包名        # 檢視軟體包資訊
yum check-update        # 檢查可以更新的軟體包
yum grouplist           # 檢視系統中已安裝的軟體包

系統服務管理

systemctl是一個非常強大的Linux的程序管理系統,為Linux系統的啟動和管理提供一套完整的解決方案。systemctl的優點是功能強大,使用方便,缺點是體系龐大,非常複雜。它為Linux提供了一整套命令系統,涉及到系統管理的方方面面。這裡我們只是簡單介紹幾個基礎命令。

systemctl restart 服務名 # 重啟服務
systemctl start 服務名   # 啟動服務
systemctl stop 服務名    # 停止服務
systemctl status 服務名  # 檢視服務狀態
systemctl enable 服務名  # 設定服務開機自啟
systemctl disable 服務名 # 設定關閉開機自啟
systemctl is-enabled 服務名 # 檢查服務是否設定了開機自啟 enabled表示已設定開機自啟,disabled表示禁用