探索 Debian 系統上的套件管理系統(PKMS 概念)| 套件倉庫

探索 Debian 系統上的套件管理系統(PKMS 概念)| 套件倉庫

Overview of Content

在本文中,我們將深入探討系統 PKMS 的核心概念及其在基於 Debian 系統上的應用

從了解系統 PKMS 的基本概念開始,到探索如何使用 dpkg 查看本地軟件包,以及如何通過 aptitude 進行 GUI 查找、安裝、升級和卸載軟件包。此外,我們還將討論如何設置倉庫來源以及進行手動安裝的步驟,並提供了一個具體的安裝範例:安裝 sysstat。這篇文章將幫助您深入理解系統 PKMS,並提供了實用的指南和示例,使您能夠更好地管理和使用軟件包

這個章節介紹 Linux 的工具套件的安裝,每個 Linux 發行版都有不同的包管理系統(Package managerment system, PMS)

我個人習慣稱為 PKMS,避免讓我跟 Power manager system 搞混,所以以下都使用 PKMS 簡稱

寫文章分享不易,如有引用參考請詳註出處,如有指導、意見歡迎留言(如果覺得寫得好也請給我一些支持),感謝 😀

個人程式分享時比較注重「縮排」,所以可能不適合手機的排版閱讀,建議切換至「電腦版」、「平板版」視窗看


認識系統 PKMS

每個 Linux 發行版都有不同的包管理系統(Package managerment system, PMS),但他們仍有相同的功能(如下)

● 當前系統已安裝的套件工具

● 每個套件工具個使用了什麼文件

● 每個安裝的套件版本

Linux 透過 PKMS 來取得工具、套件,而 PKMS 又會透過訪問網路來取得工具包,這些工具都由一個倉庫(repository)集成 (概念圖如下)

● 每個發行版的 Linux 它的 PKMS 工具都有很大的差異,而 Linux 中廣泛使用的主要有兩種:1. dpkg2. rpm 工具

A. dpkg:基於 Debian 的發行版基本上都是使用 dpkg 工具

B. rpm:基於 RedHat 的發行版基本上都是使用 rpm 工具,該命令是 PKMS 的底層基礎


基於 Debian 系統的 PKMS

dpkg 命令是基於 Debian 系統的 PKMS 工具,相關指令如下

命令簡介
dpkg查看本機軟體包
apt-get取得包工具的命令
apt-cache獲取緩存的包
apt匯聚整合 apt-get、apt-cache 的工具
aptitude文字介面 UI 管理包

查看本機軟體包:dpkg

dpkg 命令(Debian Package Manager

主要是用於安裝、管理和操作本地系統上已經下載的 Debian 軟體包;它通常不用於訪問遠端 repository;

訪問遠端 repository 的話,會透過 apt-getapt 的命令來處理與遠端 repository 通訊

以下看幾個 dpkg 常用的操作

A. 查看軟體包安裝了哪些文件在你的系統


dpkg -L vim-common

-L: List files installed to your system from package-name

B. 反向操作,查看某文件是屬於哪個軟體包(該文件內哪個應用、指令使用)

可能一個文件有多個文件共享


dpkg --search /usr/lib/mime/packages

如下圖,查看有哪些指令、應用依賴於 /usr/lib/mime/packages

aptitude 指令:GUI 查找/搜尋/安裝

# 先安裝 aptitude 工具

sudo apt install aptitude

# 啟動文字介面
aptitude

aptitude 工具是一種交互式介面,可以輕鬆查看當前裝置所安裝的所有軟體包、待升級的軟體包、未安裝... 等等訊息

● 以下有幾個 aptitude 常用命令

功能命令
查找aptitude show <package name>
搜尋aptitude search <package name>
安裝aptitude install <package name>

A. show 查詢軟體包:如果已經知道你要使用的軟體包,也可以直接查詢相關訊息


## 查看 lvm2 軟體包

aptitude show lvm2

B. search 搜尋相關軟體包


## 查詢 wine 相關軟體

aptitude search wine

前面的字母代表 p、v 可以安裝,p、i 尚未安裝

C. install 安裝軟體包:(需升級到管理員權限)


## 查詢 wine 相關軟體

sudo aptitude install wine

aptitude 指令:升級/卸載

● aptitude 安裝軟體工具時有不同的依賴關係,隨意升級的話可能會導致系統不穩定;以下列出幾個 aptitude 升級的方式

功能命令
安全升級aptitude safe-upgrade
不檢查就升級aptitude full-upgrade

sudo aptitude safe-upgrade 

● 使用 apt 命令

apt 命令解決了軟體包之間的依賴關係,可以安全的升級


sudo apt upgrade

aptitude 卸載包 命令如下

功能命令
卸載aptitude purge <package name>

# 解除 wine 應用包

sudo aptitude purge wine

倉庫來源設置

● 我們知道 PKMS 會從遠端倉庫(repository)中取得軟體工具,那就一定會有一個網址來源,這個網址來源就存在 /etc/apt/sources.list


cat /etc/apt//sources.list

如果有要添加倉庫網址那也可以放入 /etc/apt/sources.list 文件中

如下圖所示,Ubuntu 22 倉庫如下

每個倉庫資訊出顯示的內容不同,其格式如下:


# repository 格式
# <deb/dev-src> <address> <distribution_name> <package_type_list> [descriptions...]

deb     # <deb/dev-src>
    http://deb.debian.org/debian     # <address>
    bulleye            # <distribution_name> 
    main            # <package_type_list>
    contrib        # descriptions
    non-free        # descriptions

其中一行顯示 deb http://deb.debian.org/debian bullseye main contrib non-free,而它的描述方式如下表

原數據說明補充
deb軟體包類型deb(已編譯)、deb-src(尚未編譯的源代碼)
http://deb.debian.org/debian倉庫網址Web url
bullseye軟體倉庫發行版的名稱bullseye 是 Debian 系統的下一個發行版代號
main倉庫內工具包的類型
contrib額外描述contrib 是第三方或是自由軟體
non-free額外描述non-free 代表非自由軟體,有受到一些規範條約限制

手動安裝包

在 rpm, dpkg 這些 PKMS 工具出現之前,我們必須自己下載 source code 來編譯並安裝

這些源碼通常打包成 tarball 讓我們使用

安裝範例:安裝 sysstat

systat 工具:該工具可以用來監看系統上的許多事件 systat 下載連結


## 使用只領下載 tarball
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-12.7.2.tar.gz

● 手動安裝步驟如下

A. 解壓縮、進入軟件包目錄


## 解壓縮包
tar -xvf sysstat-12.7.2.tar.gz

cd sysstat-12.7.2/

B. 檢查、編譯:按照文檔所說的步驟去安裝軟體套件

● 不知道如何安裝可以查看 README.md 文件,通常會有教你如何安裝的步驟


## 檢查當前環境是否有缺少啥依賴,如果有缺少則須先安裝
./configure 

## 編譯源碼 (最終會產生一個二進制文件)
make

這個步驟結束後通常就可以使用了,不過只有在你進入該資料夾時才可以使用

C. 安裝:透過 make install 就可以將軟體安裝進你常用的目錄之下


sudo make install

更多 Linux Shell 知識

探索 Debian 系統上的套件管理系統(PKMS 概念)| 套件倉庫

Linux 環境、服務:用戶、權限管理

Linux 環境、服務、管理

在這個主題中,你可以探索各種 Linux 環境、服務和管理相關的重要概念…

了解 Linux 組成:內核責任、GNU 工具、桌面環境 | 基礎版到發行版

在這裡,你將了解 Linux 系統的基本組成部分,包括內核、GNU 工具和桌面環境,並了解不同 Linux 發行版之間的差異

探索 X Window 服務與桌面環境:Linux 視窗 XWindow 服務、D-Bus 機制

這裡探討了 Linux 系統中 X Window 服務和 D-Bus 機制的工作原理,讓你深入了解桌面環境的背後運作方式

Linux 系統管理入門:安全性、用戶管理與權限設定指南

在這個指南中,你將學習如何管理 Linux 系統,包括安全性、用戶管理和權限設定,以確保系統的安全和有效運作

認識身份驗證與權限管理:UNIX UID、使用者驗證與 PAM | PAM 設定

這裡介紹了 UNIX 系統中的身份驗證機制和權限管理方式,包括 UNIX UID、使用者驗證和 PAM(Pluggable Authentication Modules)設定

Linux Shell 相關知識

Linux Shell 相關知識

這個主題涵蓋了各種與 Linux Shell 相關的知識,從基礎到進階都有…

Shell 基礎知識:包括 Shell 的基礎使用以及差異,還有變數以及計算

認識命令行:Shell 類型、命令差異 | Sub Shell 關係 | Builtin 命令

這裡介紹了命令行中不同類型的 Shell,以及各種 Shell 命令之間的區別和內建命令的用法

Shell 全局及區域變數、特殊變數及環境變數 | Shell 啟動順序 | Array 變數

學習如何在 Shell 中使用全局變數、特殊變數和環境變數,以及如何設置和管理這些變數

探索腳本與命令:Shell 腳本的必備相關知識 | 腳本的數學運算

這裡介紹了 Shell 腳本的基本知識和常用技巧,包括如何執行腳本和進行數學運算

Shell 結構化

Shell 腳本程式中的條件語句和高級特性 | Shell 結構化 & 判斷

該篇文章是介紹結構化腳本的基礎以及特殊的高級技巧,轉著於腳本中的邏輯判斷

掌握 Bash 腳本中的迴圈與循環控制技巧 | Shell 結構化 & 循環

接著是腳本中的循環與控制的技巧,它可以讓我們在 Shell 腳本中有更多的判斷與技巧

探索 Shell 函數與腳本庫 | Shell 結構化 & 函數

這裡你將會學在到結構化腳本的重要技巧「函數」,它可以讓你建立可重複利用的腳本,以節省我們之後開發的時間

Shell 掌握參數處理與用戶輸入技巧 | Shell 結構化 &輸入互動

不可互動的腳本有時候相對無趣,這篇文章有分享如何讓腳本與使用者產生交互互動,並依照使用者輸入的參數做讀取

Shell script 進階

Shell 命令輸入與輸出指南:掌握標準文件描述符與重定向 | 臨時文件

掌控 Shell、指令的輸出輸入是成為進階使用 CLI 之人必經的一課,透過這篇文章可以了解到輸出輸入、臨時文件等等資訊

探索 Linux 訊號與後台進程管理:安排定期啟動腳本 | 運行時啟動腳本

信號可以算是 Shell 腳本與 Linux 系統之間的通訊方式,透過這個文章,我們可以了解到信號與 Shell 腳本的安排時間

Linux 硬體規劃:檔案系統、分區

Linux 硬體規劃:檔案系統、分區

最後,這個主題涵蓋了 Linux 系統中硬體結構相關的重要概念…

Shell 文件和目錄操作的常用命令和技巧 | 尋找檔案

這裡介紹了 Shell 中常用的文件和目錄操作命令,包括如何尋找文件和管理文件系統

深入探索 Linux 文件系統與硬體管理 | 分區、檔案系統、邏輯卷 | inode

學習如何管理 Linux 文件系統,包括分區、文件系統和邏輯卷等相關概念,以及文件系統中的 inode 機制

理解 Unix/Linux 設備偵測、建立 | 認識與使用 udevd | SCSI 與 Linux 核心

這裡介紹了 Unix/Linux 系統中的設備偵測和管理,包括如何使用 udevd 和 SCSI 相關的 Linux 核心知識

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

發表迴響