安裝 Windows 11 有感 – 為了更充分支援 Linux 子系統

前篇文章提及了如何在 Windows 10 環境下執行 Linux GUI Apps,所使用的方法是透過 RDP 遠端連結 WSL 內的 Linux。就近再爬許多文,還發現到如果安裝了 MobaXterm,因為該應用程式內建了 X-Server,所以透過 MobaXterm 也可以直接執行 Linux GUI Apps。而更甚者,如果是安裝 Windows 11 系統,因為其內建的 WSL2 同時就併入 WSLg (Windows Subsystem for Linux GUI),這使得在 Windows 環境下更可以無縫式的直接執行 Linux GUI 應用程式。

其實考量到 Windows 11 是去年底才釋出,不免一堆 Bugs 存在,原來是打算今年底待釋出重大更新後才來安裝,但為了能更完整地整合 WSL 環境,所以還是提前給重新安裝。不過沒想到安裝過程並不太順利,主要原因是 Windows 11 要求主機需要設定為安全啟動 (Secure Boot)開啟 TPM (Trusted Platform Module) 模組,以及切換至 UEFI 模式,這意味著原來硬碟磁區必要要從 MBR 轉換為 GPT;然後還需要把原來相容的 CSM (Compatibility Support Module) 模組關閉掉,總之若要直接升級 Windows 10 原有系統,那會相當麻煩,乾脆直接整顆硬碟重灌、BIOS 設定上述條件會比較省事許多。

我的 PC 桌機為去年升級的 AMD Ryzen 3700x + Asus Tuf Gaming B550M Plus 主機板,在重新安裝前先把 BIOS 作番韌體更新 (結果竟然整個 BIOS 設定回復為初始狀態,還要重新設定超頻等設定,真是麻煩)。重新開機後進入 BIOS 更改安全啟動、選擇 TPM 模組、關閉 CSM 模組。

閱讀全文 »

[設定摘要] Windows 10 WSL2 執行 Linux GUI (XFCE)

安裝完 Windows 10 WSL2 (Windows Subsystem for Linux version 2),就可以透過 Windows Terminal 執行已安裝的 Linux (如 Ubuntu)。不過只能執行 Console 模式,如果要執行 Linux 版的桌面環境,Windows 11 是已經有內建可以直接執行 Linux GUI 應用程式,可以參考:「在 Windows 子系統 Linux 版 (預覽版上執行 Linux GUI 應用程式)」。

而 Windows 10 截住目前版號應該還是無法執行執行 Linux GUI App,需要再另行安裝設定。一般是有兩種方式:

  • 使用 RDP (Remote Desktop Protocol)。這是 Windows based 內建的通訊協定,所以並不需要另外安裝應用程式。
  • VcXsrv (Windows X Server)。這是第三方基於 xorg 的 Windows X Server,需要另行下載安裝。

我是採用 RDP 方式設定連接 WSL2 的 Ubuntu XFCE,設定算是蠻簡單且不需安裝其它套件。具體設定可以參考:

至於採以 VcXsrv 方式連接,我就沒有試過,也無從比較相對於 RDP 的效能、穩定度等。其具體設定可以參考:

底下是個人安裝 WSL2 下的 Ubuntu (20.04.4 LTS) XFCE 桌面環境設定摘要:

閱讀全文 »

SourceTree 使用 SSH 連結 GitHub 與載入 SSH Key 設定摘要

GitHub 為了安全性議題,已從 2021/08/13 強制要求用戶登入 (authentation) 機制只能採用 SSH 或 Persoan access token,傳統使用賬號/密碼登入方式已不再支援。可參考:「Token authentication requirements for Git operations」。

關於 PAT (Personal Access Token) 具體相關操作,可參考官網文件:「Creating a personal access token」。但該方式還要做相關的權限設定,實在麻煩,所以使用 SSH 登入只要做一次設定相關方便許多。關於 GitHub 使用 SSH 相關設定,可參考國外這篇文章,包括基本原理都有說明,值得參考收藏:「How to Generate SSH Keys for GitHub」。

已安裝好原生 Git,並使用內建的 Bash 終端機,執行「ssh-keygen」命令,如在 Win10 環境下,即會在「/Users/login-account/.ssh」資料夾內 (若為 Linux 則為 ~/.ssh) 產生公/私鑰,然後再把公鑰內容複製貼上至 Github → Setting → SSH and GPG Keys 內所新增的 Key 內容即可,就可以使用 SSH 連線,相當簡單。

如果只使用原生 Git Bash 透過 SSH 連線 Clone 遠端 GitHub 儲庫就可以正常存取了,但是若透過 SourceTree 卻需要另一番設定方可 (而且還有些繁瑣),主要原因是 SourceTree 目前版本只支援使用 PuTTY 格式所儲存的 Key,所以要嘛先透過已有安裝的 PuTTY (或 WinSCP) 設定好 SSH,否則就需在該應用程式內執行下述設定。

閱讀全文 »

{筆記} Word 文件插入程式碼高亮顯示與列出行號

原來是使用 Notepad++ 安裝了 NppExport 外掛後可以將各種程式語言的程式碼連同高亮 (highlight) 的樣式一併可以複製到 Word 文件內,但相較 VSCode 可以直接複製含高亮的樣式略顯不便,且 Notepad++ 高亮的樣式還是感覺比較陽春,使用 VSCode 複製程式碼應該是目前使用過效果最好的。不過原來在 VSCode 環境內使用「One Dark Pro」Theme,直接複製貼到 Word 文件內程式碼背景是深色的,與原來編輯的文件比較不搭,所以要貼到 Word 前,最好改為淺色系的主題,如「Atom One Light」。

程式碼高亮格式貼到 Word 文件內現在可以很直覺方便,但有一個問題,如果要顯示行號 (Line number),是不建議在 VSCode 內使用外掛或巨集為程式碼內容內加上行號,爾後要從 Word/轉PDF 文件內複製程式碼會相當不方便,所以最好的作法是為該段程式碼在 Word 內加上行號,但不能使用編號方式,會把整個文件搞亂掉。

閱讀全文 »

使用 Docker 建置多個網域的 WordPress 站台開發 (運行) 環境

問題 (Problem)

我想使用 Docker 容器的虛擬化技術,可以在本機端建立多個 WordPress 站台的開發環境,然後只透過一個 Nginx Web Server,負責接收多個網域 (multiple domain) 的 Http Request (例如 "blog1.localhost", "blog2.localhot"), 並自動將該網域的需求指向對應的 WordPress 站台,如此可以便於託管運行多站台或是方便本機端的開發。

如何有效設定 Docker 的虛擬開發環境,且不會影響到 Host 本機系統的干擾,如此可以方便方便移轉與部署開發環境至其它主機或對外運轉的系統上?

解決方案 (Solution)

  • 建置一個使用 Nginix Reverse Proxy Server Docker 專案。可以採用已建置完整反向代理設定自動化的 jwilder/nginx-proxy 的映像檔。
  • 建置一個完整的 WordPress 開發環境的 Docker 專案,內含 MySQL、phpmyadmin、Wordpress 等 Docker Image。

主要實作步驟

主要實作的方法參考這篇:「Host Multiple Websites On One VPS With Docker And Nginx」。當然對於 Docker 多個容器的配置檔 (docker-compose.yml) 設定,肯定要查找官方文件指引與其它網路設定分享文的。過程期間常要不斷地 Try-Error 才得以配置好 Docker 多個容器的開發環境。

在 WSL2 的 Docker 專案目錄結構參考如下:

首先需要先創建一個 Docker 網絡,如此得以將下列所有這些容器 (container) 橋接 (bridge) 在一起。打開終端機 (terminal),輸入下列指令:

$ docker network create nginx-proxy

接著就是可以參考上述的專案目錄結構,來創建兩個專案 (Nginx and WordPress),並為各自的資料夾編輯配置設定。

閱讀全文 »

Windows 安裝 Rime 輸入法框架與設定詞典同步

我在 Windows 10 系統試用了起碼有五套以上的注音輸入法,但全都不滿意。直到去年在 PTT IME 看板 看到有版友推薦對岸開發的開源輸入法框架 - Rime,才總算碰到順手的輸入法 (其實應該說是輸入法框架,因爲它可以支援多種不同的輸入法)。引用 RIME.TW 線上文檔的介紹:

RIME | 中州韻輸入法引擎 為一款開放原始碼的輸入法引擎,開發者為佛振。

不止於拼音、注音、倉頡、速成、五筆、雙拼、粵拼、吳語、中古漢語拼音、五筆畫、Emoji、國際音標、宮保拼音……。

更可設計出屬於自己的獨特輸入方案,讀《方案設計書》,親手來創作,將輸入法變成理想的模樣。

RIME 之所以叫做「輸入法引擎」的原因就是如此,RIME 作為「引擎」,可以驅動各種不同的輸入方案!

其實我也只會使用注音輸入法而已,而且已有熱心高手提供了 - 電腦-RIME 設定檔『 注音 洋蔥 純注音 版』,更能貼近原來使用的注音習慣,好用的不得了,且輸入的詞彙可以持續記憶,打越久會越用越順。

使用 RIME 還有個很重點的功能就是支援多平台 (Winodws, Mac, Linux, Android),且可以把用戶的設定檔與辭典設定至雲端 (如 Google 硬碟) 儲存位置上同步,這點太重要了!

閱讀全文 »

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal