--- title: '安裝套件 PKMS' disqus: kyleAlien --- 安裝套件 PKMS === ## Overview of Content 如有引用該文章請標明 :smile_cat: 這個章節介紹 Linux 的工具套件的安裝,每個 Linux 發行版都有不同的包管理系統(`Package managerment system`, PMS) > 我個人習慣稱為 PKMS,避免讓我跟 Power manager system 搞混,所以以下都使用 **PKMS** 簡稱 :::success * 如果喜歡讀更好看一點的網頁版本,可以到我新做的網站 [**DevTech Ascendancy Hub**](https://devtechascendancy.com/) 本篇文章對應的是 [**探索 Debian 系統上的套件管理系統(PKMS 概念)| 套件倉庫**](https://devtechascendancy.com/debian-pkms-overview_pms/) ::: [TOC] ## 認識系統 PKMS 每個 Linux 發行版都有不同的包管理系統(Package managerment system, PMS),但他們仍有相同的功能(如下) * 當前系統已安裝的套件工具 * 每個套件工具個使用了什麼文件 * 每個安裝的套件版本 Linux 透過 PKMS 來取得工具、套件,而 PKMS 又會透過訪問網路來取得工具包,這些工具都由一個倉庫(repository)集成 (概念圖如下) >  :::info * 每個發行版的 Linux 它的 PKMS 工具都有很大的差異,而 **Linux 中廣泛使用的主要有兩種:^1.^ `dpkg`、^2.^ `rpm` 工具** 1. **`dpkg`**:基於 Debian 的發行版基本上都是使用 dpkg 工具 2. **`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-get`、`apt` 的命令來處理與遠端 repository 通訊 * **以下看幾個 dpkg 常用的操作** 1. 查看軟體包安裝了哪些文件在你的系統 ```shell= dpkg -L vim-common ``` > `-L`: List files installed to your system from package-name > >  2. 反向操作,**查看某文件是屬於哪個軟體包**(該文件內哪個應用、指令使用) :::info 可能一個文件有多個文件共享 ::: ```shell= dpkg --search /usr/lib/mime/packages ``` 如下圖,查看有哪些指令、應用依賴於 `/usr/lib/mime/packages` >  ### aptitude 指令:GUI 查找/搜尋/安裝 ```shell= ## 先安裝 aptitude 工具 sudo apt install aptitude ## 啟動文字介面 aptitude ``` * `aptitude` 工具是一種交互式介面,可以輕鬆查看當前裝置所安裝的所有軟體包、待升級的軟體包、未安裝... 等等訊息 >  * 以下有幾個 `aptitude` 常用命令 | 功能 | 命令 | | - | - | | 查找 | aptitude show <package name\> | | 搜尋 | aptitude search <package name\> | | 安裝 | aptitude install <package name\> | 1. **`show` 查詢軟體包**:如果已經知道你要使用的軟體包,也可以直接查詢相關訊息 ```shell= ## 查看 lvm2 軟體包 aptitude show lvm2 ``` >  2. **`search` 搜尋相關軟體包**: ```shell= ## 查詢 wine 相關軟體 aptitude search wine ``` > 前面的字母代表 `p、v` 可以安裝,`p、i` 尚未安裝 > >  3. **`install` 安裝軟體包**:(需升級到管理員權限) ```shell= ## 查詢 wine 相關軟體 sudo aptitude install wine ``` ### aptitude 指令:升級/卸載 * aptitude 安裝軟體工具時有不同的依賴關係,**隨意升級的話可能會導致系統不穩定**;以下列出幾個 aptitude 升級的方式 | 功能 | 命令 | | - | - | | 安全升級 | aptitude safe-upgrade | | 不檢查就升級 | aptitude full-upgrade | ```shell= sudo aptitude safe-upgrade ``` >  :::success * 使用 `apt` 命令 **`apt` 命令解決了軟體包之間的依賴關係,可以安全的升級** ```shell= sudo apt upgrade ``` ::: * **aptitude 卸載包** 命令如下 | 功能 | 命令 | | - | - | | 卸載 | aptitude purge <package name\> | ```shell= # 解除 wine 應用包 sudo aptitude purge wine ``` ### 倉庫來源設置 * 我們知道 PKMS 會從遠端倉庫(repository)中取得軟體工具,那就一定會有一個網址來源,這個網址來源就存在 `/etc/apt/sources.list` > 如果有要添加倉庫網址那也可以放入 `/etc/apt/sources.list` 文件中 ```shell= cat /etc/apt//sources.list ``` > 如下圖所示,Ubuntu 22 倉庫如下 > >  每個倉庫資訊出顯示的內容不同,其格式如下: ```shell= # 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 :::success * **systat 工具**:該工具可以用來監看系統上的許多事件 [**systat 下載連結**](http://sebastien.godard.pagesperso-orange.fr/download.html) ```shell= ## 使用只領下載 tarball wget http://pagesperso-orange.fr/sebastien.godard/sysstat-12.7.2.tar.gz ``` >  ::: * 手動安裝步驟如下 1. 解壓縮、進入軟件包目錄 ```shell= ## 解壓縮包 tar -xvf sysstat-12.7.2.tar.gz cd sysstat-12.7.2/ ``` 2. **檢查、編譯**:按照文檔所說的步驟去安裝軟體套件 :::info * 不知道如何安裝可以查看 `README.md` 文件,通常會有教你如何安裝的步驟 >  ::: ```shell= ## 檢查當前環境是否有缺少啥依賴,如果有缺少則須先安裝 ./configure ## 編譯源碼 (最終會產生一個二進制文件) make ``` > 這個步驟結束後通常就可以使用了,不過只有在你進入該資料夾時才可以使用 3. **安裝**:透過 `make install` 就可以將軟體安裝進你常用的目錄之下 ```shell= sudo make install ``` ## Appendix & FAQ :::info ::: ###### tags: `Linux Shell`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up