搜尋

搜尋結果

Ubuntu 的簡易日常更新
科技新知
MacauYeah・2025-12-17

早陣子跟新認識的朋友聊天,聽到他們因為要轉伺服器平台,煩惱如何做作業系統層面的定期更新。筆者亦都分享一下自己是如何做 Ubuntu OS 層面的定期維護。 沒錢,就用最原始的方式解決 因為Ubuntu也算是常見的linux品牌,所以基本有有商用軟件可以偵測OS的狀態,並針對它推送更新。不過如果你像筆者一樣,是個貧窮的革命家,那就只有土炮一點自己做鏡像點及做測試。 建立一個 ubuntu 的 deb 包 mirror。手動單次地用步 mirror,確保自己其他 server 同一個時間段都只會取得同一個更新。 停了 ubuntu 的 kernal 自動更新。不然的話,mirror 有更新,ubuntu 亦會偷偷地自動安裝了新的kernal,只是等待你的重啟。 使用一個測試機,先經 mirror 更新到最新的狀態。運行一段日子後,其他機再陸續更新。如果你投産環境有多於一種配置,就考慮要多個不同的測試機。更新指令直接做成 script,方便在其他機器中重複。 輪流 ssh 登入各台機,執行相同的更新指令。更新指令經 git 同步到其他機器。為確保不受 ssh 斷線的風除,必要時還需加入 tmux 。 多機器的煩惱 上述的做法雖然可行,不過當你有十台以上的機器,重複做 ssh, tmux, git checkout, script 互動,也是很累人。考慮一次性地全自動化執行,還是有必要的。筆者對上述的第四步驟,作出一些取捨,以確保更新速度足夠快,可以順暢地執行。 什麼是必需要更新的? 筆者觀察到,在 container 技術出現後,其實很多時安裝應用都不會直接在 OS 層安裝 deb / rpm 包,都是直接經 docker image 去做。所以OS層面,或者很多服務都不會被啟動。筆者亦發現,至少在ubuntu下,只更新kernel,對比無腦全更新所有 deb 包,會快很多很多。 如果可以,我們只更新kernel,再加對應的 container runtime,是不是更新對令相對地穩定,而且可以經外部統一管理。也就是不用在每一台機中進行 tmux + git checkout ,全數在外部推送 ssh 指令? 筆者就用 multipass VM + ssh key,表達一下執行概念。 ssh -i /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa ubuntu@10.115.189.200 -- apt-get autoremove -y ssh -i /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa ubuntu@10.115.189.200 -- apt-get update ssh -i /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa ubuntu@10.115.189.200 -- apt-get install -y linux-generic linux-headers-generic linux-image-generic ssh -i /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa ubuntu@10.115.189.200 -- reboot 上述最大的假設,是第一、三步,更新 kernel 時不會因為網絡問題導致 ssh 斷線,因為它們都是系統級別的改寫,中斷後並不能確保可以重來。第二步就很安全,隨時重來也沒有問題。 這樣,我們就可以在任一台管理機,經過一個 shell script for loop,更新所有其他機器。 如果我們對於網絡還是有些疑慮,我們也可以試用一次性排程式的方式去做。 ssh -i /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa ubuntu@10.115.189.200 echo '/your/script/location' | at 08:00 PM 17.12.2025 這樣的好處是,我們可以連 tmux 的開啟也省略,git checkout 也可以經固定的 script 執行(只是很煩鎖)。但這也會有壞處,就是看不到執行的情況,只能事後檢查系統狀態,是否已更新過。 當然前述 ssh key 的方法也可以加入 git checkout 更加深化不同的更新 script,但這又會增大斷線可能。ssh key 還是以快速完成指令更實際。 註:因為網安原因,筆者把上述 script 中的 S U D O 關鍵字去掉,這樣 blog 才能發出。

地板決定家的風格?三個挑選重點,找到最適合你的質感磁磚
文化創意
Cheers!・2025-11-26

在規劃新家時,地板是佔據視覺面積最大的部分,它的顏色與材質,悄悄決定了空間的整體氛圍。面對市場上眾多選擇,該如何挑選一款既能提升質感,又符合生活需求的磁磚呢? 柏龍工程顧問有限公司,從事進口及轉銷各大名廠瓷磚産品,從多年接觸的經驗中,為您整理出三個重點方向,並分享幾款深受客戶喜愛的磚材,希望能為您的裝修計劃提供一些真實的參考。 重點一:優先考慮「風格營造」,為空間定調 地板的顏色與紋理,是風格成形的第一步。 如果您喜愛明亮、簡約的現代風,可以考慮意大利白石磚。它的色澤純淨,紋理自然,能輕鬆為空間帶來開闊、明亮的基底,讓家具和軟裝成為主角。 若您偏愛帶有個性與藝術感的現代風,西班牙花紋造型地板會是不錯的選擇。其灰色基調與獨特紋理,能瞬間提升空間的視覺層次,營造出低調卻不單調的現代氛圍。  重點二:注重「觸感與氛圍」,提升生活質感 除了視覺,腳下的觸感與空間的氛圍同樣重要。 西班牙啞面磚系列,表面不反光,帶有一種溫潤的質樸感。光線照射下能減少眩光,營造出安靜、放鬆的居家氛圍,無論是客廳還是臥室都很適合。 重點三:考量「實用功能」,為生活把關 美觀之外,地板更需要經得起生活的考驗。特別是對於有小孩、寵物的家庭,或是廚房、浴室等空間,機能性至關重要。 西班牙防水防火磁磚地板,顧名思義,具備了優異的防水與防火性能,為您的家居安全多添一層保障。 喜歡木地板的溫潤質感,但又擔心保養不易?那麼意大利防水木板磚和中國磁磚防水木板磚會是理想的替代方案。它們擁有逼真的木紋外觀,同時具備磁磚的防水、耐磨特性,完美兼顧了美感與實用性。  無論您鍾情於意大利白石磚的純淨、西班牙花紋磚的個性,還是防水木板磚的實用,柏龍工程顧問有限公司都會為您精心準備品質之選。 不僅提供來自全球的優質建材,更以批發價格直送,徹底省去中間代理環節的層層加價,以最物有所值的價格,助您輕鬆奠定家的美好基礎。 還提供免費的工程顧問服務,從材質特性分析、空間風格搭配到實際施工規劃,我們與您一同將理想藍圖,逐步實現為觸手可及的質感生活。歡迎帶著您的空間規劃與需求前來諮詢。 查詢電話:(852) 53222666查詢電郵:parking@dragonpark.com網站:http://dragonpark-macau.com

秋意染黃秘境 § 白川鄉合掌村 §
環宇搜奇
莫雪・2025-10-12

秋意染黃秘境 § 白川鄉合掌村 § 秋收時節, 日本名古屋白川鄉合掌村, 一個被群山環繞的小村落, 除了看染黃染紅的 楓葉點綴的山巒和田野之間, 還有一片一片的金黃稻田。 踏入白川鄉, 感覺穿越在日本古時的美好時光, 接觸動人的秋日黃染一片禾稻秋收圖, 與及大自然原始生態風光, 深吸一口禾稻原野之味、 欣賞著仍保留日本原始風貌的田園風光, 還有那裡獨特一座座三角形茅草屋頂傳統合掌造房屋, 手掌般厚度層層厚厚茅草屋頂角在田園間, 在村鎮上, 都那麼可愛又特別, 茅草襯托住田園翠野, 格外清新又獨特! 令人驚喜的日本文化人文景觀, 現今這裡保存著 100多座大大小小的合掌造房屋, 是日本規模最大的合掌造集村落。 當天剛巧遇上霧雨, 串串雨珠簾垂絲掛於最外層的 茅草合掌屋, 日間與及最裡層的好像不受水氣影響到, 相信遇上冬雪時屋內一樣可以保曖防風, 只是披上白茫茫雪衣外觀, 成為一處處經典的秘境風境線。 往白川鄉合掌村, 須在「名古屋」站步行大約5分鐘, 在「名鐵巴士中心」搭乘高速巴士前往, 在「白川鄉巴士總站」下車,所需時間約2小時50分鐘。 白川鄉完好地保留了日本原始生態風景, 一處被人 稱為秘境的地方, 於1995年被登錄為 聯合國教科文組織的世界遺產, 稱是一生人一定要去看一次的絕色景點之一。 抵達「白川鄉巴士總站」後, 我們先沿田園靠邊僕斜坡 步行登上「城山天守閣展望台」, 沿坡路上 一片綠意金黃稻田之色、茅草合掌屋點睛其中, 原野風光盡收眼底, , 斜坡一處留下一大片紅葉, 像是捕鋪上一層軟軟地毯迎客往上, 相信樹上黃葉、紅葉剛且更替不久。 抵達山頂展望台, 視野居高更為廣闊, 白川鄉山野村落盡收眼底, 只見山下田園間 禾稻田添上一抺抺金黃, 茅草合掌屋站立其中, 把守添彩, 形成一片和諧亮麗風景圖, 環繞於四周的山巒被霧氣披掛一縷, 更添上白川鄉秘境的迷離色彩。 山頂天守閣上除了盡收山下自然風光外, 也有食店和手信店舖, 隨你逗留閒蕩與買買。 天守閣上閒蕩溜瀏覽完畢, 信步下山穿梭遊走山下村落, 其中「神田家」是規模最大,也是唯一被指定為 國家重要文化財的建築物, 這棟3層樓的住宅 現在己成為一座展覽館, 購票可入內參觀。 地面層大廳中庭處仍保留著展示著昔日的四方木柴明火圍爐, 進入的遊客紛紛靠攏圍爐取暖感受一下 日本江戶時代舊時的生活樣貌, 從二樓古老木窗外望出去的田園風景格外優美。 交通: 古屋「名鐵巴士中心」搭乘高速巴士, 直達「白川鄉巴士總站」車程所需時間大約2小時50分鐘 #米蘭 ¶斯福爾紮城堡¶ # #日本廣島四國櫻花怒放# 其它文章, 詳情請點擊澳門科學館「蒸氣誌(電子月刊)」 內之「近代中國科學家事蹟及其精神」 https://www.msc.org.mo/zh/flipbook/55/S-TEAM-ISSUE 本篇文章、相片版權屬作者所有, 經由版權持有人授權CyberCTM.com發表。 聯絡及邀約: irene801802@hotmail.com

免費自用的私人AI助理 | Ollama - 本地大型語言模型
科技新知
MacauYeah・2025-01-06

不知道在澳門的朋友,有多少可以正常接觸openai?因為地方政策問題,像openai這種國外的大型語言模型(下稱LLM),澳門區都沒法接觸到。但隨著時間過去,即使我們不能直接接觸到算力很強的收費AI,我們只要有電腦,也可以佈署一些開源版本的LLM。只要我們可以安裝到ollama這套本地運算軟件就好 ollama是一個giuthub上的開源工具,讓用戶能夠在自己的電腦上運行各種大型語言模型(LLM)。基本上只要電腦是普通的桌上型windows, linux, mac,都可以運行它。下以面就介紹一下筆者的安裝經驗。 windows windows ollama windows 本地安裝ollama,真的很簡單,就是直接去官網下載就好 - https://ollama.com/download/windows 安裝完成後,在windows cmd再加一個基本的模型就可以了 ollama pull llama3.2 之後就可以開始跟llama問問題 ollama run llama3.2 windows openwebui 如果大家不習慣windows cmd的醜醜介面,想經過瀏覽器存取,我們可以再加裝openwebui。但這個必需要經第三方python或docker安裝。openwebui github指引 - https://github.com/open-webui/open-webui 經python pip install open-webui open-webui serve 經docker docker run -d -p 8080:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main 最後,打開browser,訪問 http://localhost:8080,openwebui就會要求大家先設立管理員帳號。 就那麼簡單,大家就有一個真正的私人AI助理。 steamdeck steamdeck 因為很多linux功能都有被限制,所以筆者就直接使用 podman 安裝 git clone https://github.com/macauyeah/ollama-steamdeck-podman.git cd ollama-steamdeck-podman podman compose -f podman-compose.yaml up -d podman exec -it ollama ollama pull llama3.2 同樣地,打開browser,訪問 http://localhost:8080就可以了,因為這個版本已有預設的管理員帳號,立即打開就可以使用了。 Ollama的開源模型 上文中一直提及 llama3.2 其實是 Meta 公司的開源模型,因為它的參數相對少,算力要求較低,可以在沒有GPU的環境下執行。若然大家算力足夠,可以使用其他模型,詳見 https://ollama.com/library 。見到合心水的模型,大家可以經 pull 指令下載。例如:小紅書的網紅們很多都推薦qwen2,我們可以 ollama pull qwen2 備註: openwebui 及 ollama 並不直接支援自己建立自己的資料庫。我們需要其他工具去補完,但筆者觀看各種教學,自己建資料庫的效果都不太好,所以暫時不做任何教學。 只要我們一直經ollama pull,就可以更新語言模型。但如果大家追求即時的網絡最新資料,大家可以看看LLM RAG的相關文章。但筆者亦未有成功的案例,有更新會另作教學。 opewebui並不是PDF閱讀器,但它可以預覽PDF中的文本,我們需要手動複制PDF中的文件後,才能經ollama分析文件內容。 若想切換模型,在指令介面中,我們多開一個分頁就可以了。若經openwebui,則可以在每句對話之前,經左上方選擇不同模型。

概有雲供應商的K8S,為何要自己弄Docker Swarm / 本地K8S ?
科技新知
MacauYeah・2024-11-19

其實筆者寫了這麼多篇docker 的文章,可能有朋友會問,為何要自己從零建立Container環境,使用供應商直接提供的K8S服務不是很好嗎? 按照市場發展,各大雲供應商都越來多,競爭越嚟越激烈,作為用戶方,理應可以得到更合理的價格。不過作為使用VPS多年的筆者,真的沒有覺得雲服務的價格可以便宜到一個不用煩惱的水平,大家還是需要很㥀重地考量自己的業務是不是值得雲端化。 正常來講,在有足夠使用量的前提下,雲端化也是合適的,也真的有產到錢。但問題是大部份情況下公司內部自主開發的應用,都沒有去到這個程度。每個應用去租用一個VPS,即使使用最低配置,用起來的時候覺得不夠快,閒起來的時侯也是浪費錢。 這時,使用 Container 技術,就是讓多個不同的應用,共享同一個或多個VPS的好方法。因為 Container 可以簡易地做到應用之間的隔離,即使不同應用之間有依賴衝突,只要 Contianer 層面沒有衝突就可以共存。 Docker swarm 與 K8S 同為 container 技術,文章最前面,就提到了這個問題,為何不選現有的K8S,反而要自己弄Docker Swarm?其實關鍵亦是價錢的問題。使用K8S固然方便,但就每個節點都得使貴一級的雲端供應商服務,當我們的應用總是流量不足,就更易變得食之無味,棄之可惜。老實講,貴一級的雲端服務,有它存在的價值,很多東西可以做自動化擴展,例如概據流量自動擴容。另外,因為底層 Container 技術有供應商支援,也不用再另外購買支援服務。但這些都是業務有一定流量,才能展現出優勢。 反觀Docker Swarm,就是簡單可入手,初時一個VPS也可以。什至乎不上雲,找幾台舊電腦,實機做也可以。當然K8S也可以實機,不過就簡易程度來講,Docker Swarm 無得輸。待業務真正成長到一個有足夠流量的服務時,才進一步遷移到供應商的原生雲。在初期使用自建的Docker Swarm或小型K8S,可以先加入一些資源統計,以確定是否即裝滿負荷。

何謂 Infrastructure as code - IaC
科技新知
MacauYeah・2024-06-07

在雲端服務出現後,好多新的名字,或許大家都聽過,筆者也稍為再簡介一下。 Software as a Service (Saas)。就像我們的Web App,不用下載體件,可以直接經雲進行業務操作。 Platform as a service (Paas)。這個概念可能最含糊,筆者理解就是,雲端供應商提供一些底層的軟件,供IT人使用。像是資料庫,Web Engine。 Infrastructure as a Service (Iaas)。這個更底層,雲端供應商給出CPU, IP, Memory, Storage等,頂多就再多個預安裝OS的選項。IT人自己去配搭使用。 多得這些彈性服務,雲端應用才真的跟過去租用實體伺服器有所差異。 但對於IT人來講,要使用這麼多不同的服務,實在也不簡單。對於IT消費方,用錢換來實體硬件的靈活性,但因為硬件沒有邊界之後,軟件的量就暴增。管理也不能說是很方便。 在Docker, Kubernetes等Container(容器)出現後,又為這些管理問題帶來另一種希望,就是Infrastructure as code - IaC。它的目標是,管理基礎設施,要像管理原始碼一樣,checkout 就可以回覆到指定狀態。 初聽之下,大家可能覺得好玄,但其實這個概念,在之前筆者的Docker 教學中,已經有出現過。Docker compose 、Docker stack 指令,它們都是基於yaml檔的IaC。 當筆者更新了yaml 檔,執行一次stack deploy ,docker 就會對比之前狀態,如果replica(分身)不夠多,就自動增加所欠數量,如果image 也更新了,就排隊輪流重起換image 。最重要的是,當我們checkout 舊的yaml 檔,回到過去某個狀況,只要還是執行同一句stack deploy ,系統就自然減少所需的replica數量,下戴過去的image。這就代表,我們對於container 構建而成的環境,都可以放入Git等版本控制中,整個管理模式,就像管理程式碼一樣(GitOps)。 對於更進階的Kubernetes更是如些,除了container外,多種不同的network,storage配置,都通過yaml檔進行控制。這樣,架構即使複雜,但只少可以測試、重現和管理。還有一個,它比Docker stack要強的是,它某程度上支緩刪除的概念。雖然不完全,但總比完全沒有方便。 這個IoC的概念,可能還未達到一定廣泛地應用的階段,但它的核心在於,基建項目有檢測試差異的功能,自動去因為這個差異去加或減資源。用Programmer的講法,就是系統有Diff的功能,自動多除少補。