緯育 2026-0331
出自頂極製作所
軟體套件及其相關的知識
本次於2026-03-31的講座系統性說明在Linux(並以Windows作對照)環境下的套件安裝觀念與實務,統整三種安裝方式:原始碼編譯安裝、預編譯安裝、與預編譯輔助安裝,並深入示範原始碼編譯流程的完整實作與常見工具。內容涵蓋套件與相依性概念、編譯環境準備、不同作業系統(Ubuntu、CentOS/SamOS/SameOS)差異、版本匹配策略、資安事件下的更新流程、實務用語(如「Turbo安裝」)與常見打包格式(.tar、.tar.gz/.tar.q1/.tar.q2)。
講座以兩個範例說明編譯實作:單檔案的2048(以GCC直接編譯)與具完整流程的MyMan(含./configure偵測、make、make install),並示範將執行檔放入/bin或/sbin以成為系統可直接呼叫的指令,同時補充常見make操作(make、make install、make clean、make check)與授權注意事項(如GPL)。強調在職場需正確辨識版本、使用官方來源、以工具檢測與安裝、必要時以Root權限操作,並針對資安風險建立更新流程。
套件(package)基礎與內容構成
- 定義與形式
- Linux中的package相當於Windows的軟體,是整合的打包或壓縮檔;解包後取得執行檔、主態檔、函式庫(dependencies)、說明文件(man、README)等,以提供服務或指令。
- man文件的動態性
- 系統man頁並非全包;安裝對應套件後才會出現其man頁(如安裝Nginx後可查到man nginx)。
- 編譯器與語言環境
- 下載原始碼需備妥相對應編譯器與語言環境(如GCC、Python、Perl);此為原始碼安裝的前置難點。
- 相依性套件(Dependencies)
- 缺少相依項會導致安裝或執行失敗;Linux相依性管理是安裝流程核心。類比Windows中的DirectX。
- 權限需求
- 多數安裝需寫入系統目錄,通常需Root權限以降低阻礙。
三種套件安裝方式與適用情境
- 原始碼編譯安裝
- 流程:下載原始碼 → 準備編譯環境 → 編譯 → 安裝至指定目錄 → 設定與測試。
- 優點:取得、指定與回溯任意版本;可審視與修改原始碼(開源特性)。
- 缺點:需投入環境與相依處理;編譯耗用CPU/記憶體/磁碟,若只編一次可能資源浪費。
- 適用:需「超新」或特定版本(系統庫無或版本落後)、需自訂修改。
- 預編譯安裝
- 定義:由作業系統或第三方在相同OS/版本編譯後打包,直接安裝。
- 要點:需與OS及版本精準匹配(如Ubuntu 24.04使用對應包;CentOS/SamOS包不可在Ubuntu用)。
- 優勢:省略編譯與環境準備;安裝包記錄路徑與檔案放置,自動處理。
- 預編譯輔助安裝
- 定義:在預編譯基礎上加入安裝前檢測與相依自動補齊(如apt、yum等)。
- 行為:解包/安裝時檢測缺失並詢問或自動安裝相依;一行指令可能連帶安裝多個相依套件。
- 缺點:便利但抽象化細節,教學常以一行指令略過脈絡。
作業系統差異與安裝策略
- OS與版本差異
- Ubuntu與SamOS/CentOS等在安裝方式、主態檔、設定與指令均有差異;需按系統選用正確來源與工具。
- 相同套件在不同系統的版本不同(例:VI、nano),影響策略與選版。
- 版本匹配策略
- 預編譯安裝需精準匹配OS與版本;跨系統包通常不可用。
- 套件管理工具預設裝最新版,若需舊版則改用預編譯包尋找歷史版本;若需最新版且庫未提供,改用原始碼編譯。
原始碼編譯安裝:概念、流程與工具
- 概念與作者提供功能差異
- 原始碼不可直接執行;作者可能提供或不提供環境偵測(./configure)、編譯(make)、安裝(make install)與主態檔。
- 一般流程
- 研究與選包:先評估專案來源、分支品質與維護狀態(GitHub常有多分支/派生)。
- 下載與解包:wget下載 → tar解壓(-xvf;gzip壓縮加-z)。
- 環境偵測:./configure檢查環境,期待OK,避免Fail/Error/No並依提示補齊。
- 編譯與安裝:make → make install(建立目錄與放置檔案)。
- 主態檔設定、執行與測試;必要時make clean清理、make check檢查。
- 指令與工具
- 下載:wget。
- 解壓:tar -xvf、-xzvf(視壓縮格式)。
- 編譯:make(依Makefile)。
- 安裝:make install。
- 清理/檢查:make clean、make check。
實作範例
- 2048(單一C原始檔)
- 編譯環境:Ubuntu以apt install gcc,CentOS/SameOS以yum install gcc。
- 編譯與執行:gcc -o 2048 2048.c;以./2048在當前目錄執行。
- 成為系統指令:將執行檔搬至/bin或/sbin,之後可直接輸入「2048」呼叫。
- MyMan(小精靈,完整流程)
- 下載與解壓:tar解包後進入目錄檢視內容。
- 相依安裝:以apt或yum安裝make、gcc與其他需求(相依項較多)。
- 流程:./configure → make(warning可忽略,error需處理) → make install。
- 安裝後可於任意目錄直接輸入「myman」執行;初次啟動顯示版權資訊。
- 常用維護:make clean清理、make check檢查;必要時重編。
- PATH與系統路徑
- ./ 程式名執行當前目錄;直接輸入程式名則需位於PATH目錄(如/bin、/sbin)或自行加入PATH。
- /bin為共用指令,/sbin為系統管理指令;可將自編程式置於其下以便系統層級呼叫。
- 授權與修改
- GPL等授權需遵循散佈與二次開發規範;可在合規下調整顏色、字型等進行個人化或二次開發。
系統與套件更新流程(資安情境)
- 事件識別與盤點
- 遭遇資安新聞時,先盤點公司是否使用該套件與版本;再查官方公告或可信來源確認受影響版本與修補方案。
- 更新與風險
- 依官方指引更新;未更新將曝露於網路掃描與利用鏈(掃描→識別版本/服務→嘗試漏洞利用),需及時修補以降風險。
「Turbo安裝」與打包格式實務
- 名詞與用法
- 「Turbo安裝」實務上指原始碼編譯安裝;TAR為打包(不壓縮),「Turbo」意涵為「包起來」的檔案。
- 職場常用語:「你就Turbo裝就好」、「去下載Turbo」=到官方下載原始碼打包檔。
- 檔案尾綴
- .tar(未壓縮)、.tar.gz/.tar.q1/.tar.q2(壓縮形式不同);解包後閱讀README與需求清單,作者通常不提供個別支援。
Windows對照(輔助理解)
- 安裝方式對比
- 官方網站、Microsoft/Windows Store或第三方集合站下載;型態包含安裝檔(向導)、免安裝、解壓後直接執行。
- 相依性範例
- DirectX支援圖形/音效/控制器;完整安裝會自動處理,相較手動/破解流程需自行補齊。
教材與課程節奏
- 教材結構
- 檔案與步驟對應兩套系統(CentOS與Ubuntu):單一原始碼到編譯器(2048)與完整流程,可擇一或兩者皆做以比較差異。
- 操作建議
- 示範一次可節省時間;若允許,於另一OS重做以體會套件管理器(apt/yum)與相依差異。