Linux開發軟體管理和系統服務管理
阿新 • • 發佈:2022-04-20
開發軟體管理
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表示禁用