緯育 2026-0331

出自頂極製作所
於 2026年3月31日 (二) 03:16 由 Kuyohong留言 | 貢獻 所做的修訂 (建立內容為「== 軟體套件及其相關的知識 == 本次於2026-03-31的講座系統性說明在Linux(並以Windows作對照)環境下的套件安裝觀念與實務,…」的新頁面)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)

軟體套件及其相關的知識

本次於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)與相依差異。

2026-0331-02.png