概念

Lazyscripts 為延續 Lazybuntu 的易用性,在使用者介面上幾乎完全保留,使用過Lazybuntu的使用者,除了進階功能,不需要再花心力學習新的操作方式。而在介面下隱藏的卻是腳本散佈,控管的複雜設計,目前雖非盡善盡美,但已略達到原先設計初衷。

本章節將說明 Lazyscritps 的系統模型,魔鬼,都隱藏在細節裡。

名詞定義

腳本 (Script)

安裝套件、客製作業系統。

腳本庫 (Scritps Pool)

其實就是 Git Repository,用來存放腳本。

腳本清單 (Scripts List)

控制Lazyscritps可以使用的腳本,以及版本。

使用者 (End User)

使用Lazyscripts進行客製化安裝。

腳本開發者 (Scripts Developer)

使用任何程式語言開發安裝或客制化腳本。

腳本庫維護者 (Scripts Pool Mantainer)

接受、審核腳本提交,並製作Scripts List。

主程式開發者 (Core Developer)

開發、修正主程式、文件撰寫。

社交網站 (Lazyscripts Social Web)。

類似Mozilla Firefox 收藏集 (尚未實作)。

系統架構

Note

Lazyscripts Social Web 尚未開始實作!

_images/lazyscripts_model.jpg

腳本(Script)版本控制模型

Note

閱讀本本章節前,必須熟捻Git的版本模型。

Lazyscripts 啟動後,會讀取腳本清單(Scripts List)得知所選用的腳本版本(Commit Id),並且從腳本庫取出Scritps實體,腳本庫(Scripts Pool)其實就是一個Git Repository, 而檔案(Git Blob)視為腳本(Script),目錄(Git Tree)被視為一個腳本集合(Scritp Set)。 腳本集合(Script Set)可以用很多Script(Git Blob)。

所有的腳本庫(Scritps Pool)必須要有兩個branch - master, stable,以方便腳本開發控管,Lazysripts 在執行時,預設會採用stable branch的腳本,除非腳本清單(Scripts List)有另外指定,可參閱下圖了解完整的流程。

_images/lazyscripts_scriptversion_model.jpg

分支目的說明

  1. master:

    開發中的腳本(Script)。

  2. stable:

    經過測試,穩定版本的腳本(Script)。

腳本(Script)散佈模型

Note

閱讀本章節前,必須熟捻Git專案管理方式。

_images/lazyscripts_scriptspool_model.jpg

Fork 意味著製作腳本庫分支,除了保留上游腳本庫(Scripts Pool)大多數的腳本(Script)外,新的腳本庫分支還會擁有為特定目的所收納的腳本(Script)。

腳本庫(Scripts Pool)通常會因下列原因而進行Fork。

  1. 不同Linux發行版本

    Ubuntu/Debian、Fedora、OpenSuse、等等

  2. 相同Linux發行版本,但是因不同語系的使用者而Fork。

    中文使用者、英文使用者、日文使用者等等...

  3. 相同Linux發行版本,但是因不同背景的使用者而Fork。

    教育背景使用者、數位藝術背景使用者、音樂創作背景使用者等等...