⚠️ 重要更新說明
由於 ActiveState 營運方針發生重大轉型,該公司目前的焦點已全面轉向「雲端軟體供應鏈安全、資安合規、以及舊版(EOL)語言 Runtime 續命維護」。其商業模式主要服務有著嚴格 DevSecOps 審計需求的大型企業。
對於玩家、個人開發者或小型團隊而言,ActiveState 目前的 ActiveState Platform 流程過於繁瑣、且免費額度限制嚴格,其高昂的企業訂閱價格更是缺乏性價比。
本文保留先前撰寫之教學內容,僅供歷史考證與架構參考。
支援的程式語言與平台現況
ActiveState 過去針對各大高階語言分別推出對應的發行版(如 ActivePerl、ActivePython),在開源社群享有盛譽。
隨著公司全面轉型為雲端資安平台,原本「各語言獨立下載」的模式已成歷史。現在不論任何語言,皆統一整合至 ActiveState Platform 進行雲端編譯與管理。
目前平台雖然仍提供原本的三大起家開源語言:
- ActivePerl
- ActivePython
- ActiveTcl
但時至今日,ActiveState 的核心業務早已不再是單純提供這三種語言,而是轉向全面支援多語言 Runtime 的雲端安全構建、以及全球開源套件供應鏈的資安合規整合 。
🛠️ Komodo IDE 的終點與開源
Komodo IDE 過去是 ActiveState 旗下的多語言開發環境,支援 Perl、Python、Ruby 等語言。它從早期的高昂售價,到後期轉為只要登入 ActiveState Platform 後台即可免費下載。
由於底層架構過於老舊,ActiveState 已於 2022 年底正式將 Komodo 停產,並將其原始碼完全公開在 GitHub 上的 OpenKomodoIDE 專案。
💡 現代玩家建議:
目前開發 Perl 的主流標配已轉向使用免費的 VS Code,並搭配 Perl 相關的擴充插件,這也是生態系最健全的選擇。
客製化運行環境
ActiveState Platform 是 ActiveState 所推出的新服務。程式設計者可以利用這個平台打包自己的開發環境,像是指定 Python 版本 + 選擇特定套件。ActiveState Platform 會將程式設計者打包好的開發環境做成安裝程式,日後就可以快速重建環境。
這個功能對團隊比較有用,對個人開發者的效益就沒那麼大。此外,免費使用時只能用這個開發環境在本地端寫程式,要將開發環境部署到伺服器上要另外收費,詳見後文說明。
使用 State Tool 管理開發環境
State Tool 用來管理開發環境。藉由這個工具,可在不同開發環境間快速切換。每個開發環境間是各自獨立的。像是在 Python 2 及 Python 3 間轉換就很簡單。
安裝 State Tool
請開啟具有系統管理員權限的 PowerShell 終端機,輸入以下指令即可安裝 State Tool:
PS1 > powershell "IEX(New-Object Net.WebClient).downloadString('https://platform.activestate.com/dl/cli/install.ps1')"
檢視系統上的 Project
使用以下指令觀看系統上存在的開發環境:
> state projects
在 ActiveState 的觀念裡,不同開發環境即為不同 project。程式設計者可以自己建立所需的 project,不一定只用 ActiveState 現成的。
安裝新 Project
輸入 state activate 指令即可進入特定開發環境。像是以下指令進入 Perl 5.32 版:
> state activate ActiveState/Perl-5.32
╔════════════════════════════════╗
║ Activating Virtual Environment ║
╚════════════════════════════════╝
Choose Destination
Where would you like to place the project files for ActiveState/Perl-5.32?
> C:\Users\user\ActiveState\Perl-5.32
Other ..
State Tool 會詢問是否要設成預設 project,之後開終端機就可以直接使用:
Default Project
Would you like to make ActiveState/Perl-5.32 your default project?
This will allow you to operate on your project and run executables provided by its runtime without first "activating" i
t.
(y/N)
這可以之後再設置,不需要馬上決定。
離開目前的 Project
State Tool 沒有提供額外的指令,使用系統的 exit 指令即可離開目前的開發環境:
> exit
設置預設 Project
對於常用的開發環境,可以設成預設 project,這樣一開終端機就可以使用,而且該 project 會變成全域指令:
> state activate --default ActiveState/Perl-5.32
搜尋套件
使用 state search 指令可在開發環境中搜尋套件:
> state search Moo
也就是說,State Tool 兼具套件管理程式的功能。由於在 Windows 上編譯延伸套件較為困難,這個功能算是蠻好用的。
檢視套件資訊
使用 state info 指令可觀看套件的資訊:
> state info Moo
安裝套件
使用 state install 指令可安裝套件:
> state install Moo
移除套件
使用 state uninstall 指令可移除套件:
> state uninstall Moo
移除 State Tool
不論為了什麼原因,不想再用 State Tool 了,可以輸入以下指令把整個 State Tool 和安裝的開發環境皆移除:
> state clean uninstall
ActiveState 最近的新產品
在筆者撰文的時候,ActiveState 推出兩個新產品,帶大家來看一下。
ActivePerl 5.32
Perl 即將邁入新的大版本號 Perl 7。而 Perl 7 會以 Perl 5.32 版為基礎去修改。所以,要將手邊的 Perl 程式遷移到 Perl 7 前,應先在 Perl 5.32 測試相容性。
ActiveState 官網中有關 Perl 5.32 的說明在這裡。有興趣的讀者可以自己看一下。
輸入以下指令即可安裝 Perl 5.32:
> state activate ActiveState/Perl-5.32
ActiveState 的營運模式
除了免費服務外,ActiveState 有許多付費服務,像是:
- 建立私有的 project (開發環境)
- 將 project 部署到生產環境上,按節點數量收費
- 將多位開發者加入團隊,按使用人數收費
- 安裝舊版的開發環境
- Python 2 的延長維護
若有需要這些服務,請自行向 ActiveState 購買。站長完全沒有抽成,單純介紹相關服務。