aur-malware-check

Detection and analysis tools for the atomic-lockfile supply-chain attack on the Arch User Repository (AUR), generalized to a campaign-based architecture that handles multiple concurrent and historical attack waves (CHAOS RAT 2025, Russian spam packages, and future campaigns declared via campaigns.json).

簡單的說,有人把惡意代碼放到 AUR 已經沒維護的套件裏面,然後上傳 。所以安裝了以後,就被惡意代碼植入了,也因為是 npm 套件的關係,相依性相對複雜,影響層面也較為廣泛。

社群因應此狀況,開了一個 repository 放檢測腳本:https://github.com/lenucksi/aur-malware-check

使用方法如下

# 安裝 uv
pacman -S uv

# 下載代碼
git clone https://github.com/lenucksi/aur-malware-check.git

# 進入目錄
cd aur-malware-check

# 建立 python venv 環境,並安裝模組
uv sync

# 執行
uv run python -m aur_check --refresh --list

其他使用方法可以參考 repository README.md 裡的 quickstart

如果發現了被植入惡意代碼,可以參考 repository 裡的 What to do If I Infected

  • 保留系統:不要關機,改用可信媒體進行鑑識擷取。
  • 重設所有憑證:Discord、GitHub、npm、Slack、Teams、SSH 金鑰、Vault token、雲端供應商金鑰。
  • 檢查持久化:systemctl list-units --type=service --state=running(查看是否有不明服務)。
  • 檢查 eBPF rootkit:ls -la /sys/fs/bpf/hidden_*
  • 使用可信媒體清理:從 Arch ISO 開機,掛載檔案系統,移除惡意的 systemd 單元。
  • 考慮重裝:rootkit 會讓系統失去可信度。
  • 回報發現:https://lists.archlinux.org/archives/list/aur-general@lists.archlinux.org/

容器平台複製檔案

oc/kubectl 指令提供了方便的 cp ,可以把檔案複製到容器內,或是把容器內的檔案複製出來,但這需要容器內有 tar 指令配合才行。

若沒有的話,可以用 exec 來替代,技巧是利用 cat 的 stdin ,例如下面這行可以把檔案從 host 端複製到容器內部。

cat local.file | oc exec -i <pod> -- sh -c "cat > /target/path/remote.file"

反之,可以用 cat

oc exec -i <pod> -- sh -c "cat some_file" > /target/path/remote.file"

UxPlay

之前是使用 RPiPlay ,讓家裡的 linux 桌機可以當作 Macbook Pro 的螢幕鏡像輸出。

去年電腦重灌,忘了裝上去,今年看的時候,發現 RPiPlay 停滯了,改推薦 uxplay 。上網找了文章,看介紹:

安裝方法可參考官方文件:https://github.com/antimof/UxPlay#running-uxplay

在 Ubuntu 24.04 已經內建,所以用 apt 就可以輕鬆安裝

sudo apt install uxplay

使用上很簡單,執行 uxplay 就可以。

uxplay

但我遇到偶爾會有畫面出不來的情況,上網查,說要調整輸出

這邊我是新增了 ~/.config/uxplayrc ,放入以下內容。

vs "autovideosink"
as 0

再重新啟動 uxplay

後續為了方便使用,我是把 uxplay 放到登入自動啟動的設定裡。

helm-dashboard

可以管理 helm chart 的網頁工具。

https://github.com/komodorio/helm-dashboard

有兩種使用方式

  • 指令列
  • 用 helm 佈署到容器平台

指令列

安裝 (以下假定你已經安裝 helm)

helm plugin install https://github.com/komodorio/helm-dashboard.git

使用

helm dashboard -b --bind=0.0.0.0 -p 8080

這會在 port 8080 啟動一個網頁伺服器,然後就可以用瀏覽器存取了。

用 helm 佈署到容器平台

加入 helm repo

helm repo add komodorio https://helm-charts.komodor.io

更新 helm repo

helm repo update komodorio

取出 chart 可設定的參數

helm show values komodorio/helm-dashboard >values.yaml

修改 values.yaml,主要修改以下內容

  • ingress:我使用 tailscale ,所以 ingress 設為 tailscale
  • service:port 調整為 9090,這改不改沒關係
  • dashboard:因網頁介面內可以直接 upgrade chart,所以把 allowWriteActions 設為 true

ingress:
enabled: true
className: “tailscale”
hosts:
– host: “”
service:
port: 9090
dashboard:
allowWriteActions: true

安裝

helm upgrade --install helm-dashboard komodorio/helm-dashboard \
  --namespace helm-dashboard \
  --create-namespace \
  -f values.yaml

安裝以後,就可以使用 ingress 的 address 登入了。

畫面可參考:https://github.com/komodorio/helm-dashboard/blob/main/images/screenshot.png

電影流水帳(2024/08/01~2025/12/31)

一口氣做個總結。

中文片名 (台灣譯名)原文 / 英文片名IMDb英文維基百科 (Wiki)
死侍與金鋼狼Deadpool & WolverineIMDBWikipedia
龍與地下城:盜賊榮耀Dungeons & Dragons: Honor Among ThievesIMDBWikipedia
終棘警探Hot FuzzIMDBWikipedia
詐團圓ScamsgivingIMDBN/A
尼羅河謀殺案 (2022)Death on the NileIMDBWikipedia
王牌冤家Eternal Sunshine of the Spotless MindIMDBWikipedia
吸血鬼特助:雷菲爾RenfieldIMDBWikipedia
魔鬼總動員 (1990)Total RecallIMDBWikipedia
新幹線驚爆倒數 (2025)Bullet Train Explosion (Netflix)IMDBWikipedia
美國隊長:無畏新世界Captain America: Brave New WorldIMDBWikipedia
雷霆特攻隊ThunderboltsIMDBWikipedia
朱爾斯JulesIMDBWikipedia
私刑教育The EqualizerIMDBWikipedia
私刑教育2The Equalizer 2IMDBWikipedia
壞傢伙們 (韓)나쁜 녀석들: 더 무비IMDBWikipedia
白頭山:半島浩劫백두산IMDBWikipedia
騙徒 (韓)IMDBWikipedia
猛毒最終章:最後一舞Venom: The Last DanceIMDBWikipedia
驚奇4超人:第一步The Fantastic Four: First StepsIMDBWikipedia
辣手神探 (港)Hard BoiledIMDBWikipedia
巨洪 (韓)대홍수IMDBWikipedia
奧本海默OppenheimerIMDBWikipedia
愛愛愛上你Anyone But YouIMDBWikipedia
當殺手戀愛時Hit ManIMDBWikipedia

Deadpool & Wolverine

死侍系列第3集,延續前面的黑色笑話風格。這次牽涉到時光變異局跟金鋼狼,死侍想加入時光變異局,時光變異局派給他任務,說因為金鋼狼死了,要找新的定錨者,豈料後來整個錯拍。死侍與金鋼狼落入 VOID ,VOID 是個奇妙的世界,被X教授的妹妹諾瓦掌管,在裏面遇到許多角色,像是霹靂火、金牌手等等的。兩人進去以後搞得天翻地覆,最終是發現了時光變異局悖論先生的陰謀。

沒有特別想重看。

Dungeons & Dragons: Honor Among Thieves

將 RPG 遊戲改編為電影的小品,我滿喜歡的。

主角本來是豎琴手,後來轉職為盜賊,跟幾個搭檔一起偷了蠻多東西。太太早逝,跟野蠻人女戰士一起撫養女兒長大。後來在偷到復活石版後,其中一個搭檔變心,轉而成了領主,並把他的女兒帶走。領主跟紅袍巫師結為同盟,各為其利。領主是要權力跟與財富,紅袍巫師則是要完成之前巫妖的術式。

接下來的冒險就是盜賊要找到女兒,他跟著野蠻人女戰士,遇到了德魯依、法師、聖騎士等人,一同冒險,找到了領主,並且擊敗了領主跟紅袍巫師,成功救回女兒。

最後,令人心碎的是,野蠻人女戰士在與紅袍巫師的戰役中,受了重傷。原本想要拿復活石版復活太太的盜賊,非常猶豫該不該救野蠻人女戰士,在與女兒溝通後,兩人都認同應該要救野蠻人女戰士,於是就讓野蠻人女戰士復活了,為整個冒險畫下了句點。

Hot Fuzz

這重看好幾次了,很有趣的故事,冰淇淋三部曲之一,是在講警察的故事。

尼可拉斯是個精實的警察,但在倫敦太過認真,反倒讓長官覺得困擾,於是將他調到鄉下的小市鎮去。

他在鄉下覺得太清閒,只能辦些小事,但慢慢的,他發現這個小鎮怪怪的,因為這個小鎮太平靜了。經過幾次兇殺案後,他終於發現,這個小鎮的社區巡視聯盟會為了要讓小鎮平靜,把惹事生非的人處理掉。尼可拉斯嚇到了,決定阻止社區巡視聯盟這樣做,就跟警長的兒子丹尼,一同阻止了社區巡視聯盟的人。

詐團圓

這在 2024 年春節時看的。

在美國的詐騙三人組王芸、Jason、華仔得知陶林企業董事長莊黃淑美來美國設展跟找兒子,就想辦法攀上關係。在設定為偶然的情況下,讓董事長遇到王芸跟 Jason,並把王芸角色設定為董事長兒子的妻子,Jason 則設定為孫子,在認祖歸宗後,兩人就跟董事長一同回到了台灣。

回到台灣以後,大家族裡的每個人都想,怎麼突然多了這兩人來分財產呢?就試著要拆穿他們。

結果最後,王芸跟 Jason 真的就是董事長兒子的妻子跟孩子,然後我不太記得了。

Death on the Nile

改編自克莉斯蒂推理女王的小說。

電影中規中矩,把該交代的都交代了。簡單的說,永遠不要假設兇手只有一個人。

Eternal Sunshine of the Spotless Mind

台譯片名真的是…不知道該怎麼說。

之前看過了,是因為 Netflix 又上了,特別又點開來看。

故事帶著淡淡的哀傷。男人和女人在一起,是必然還是偶然?如果你跟現在的愛人分手,完全遺忘了,那麼之後遇到,還有可能再一起嗎?

喬爾在某天早上上班,到了火車站,突然覺得自己必須要搭火車去蒙托克,就毅然決然請了假,上了火車。Montauk 在紐約東邊,查了一下路程,從曼哈頓搭火車過去差不多要兩小時多。喬爾在火車上巧遇了克蕾婷,緣份就是這麼令人難以捉摸,兩人陷入熱戀。沒多久,就又分手。

接下來的電影片段,開始交織著之前的殘光片影,娓娓道出整個事情的經過。

原來兩人之前就已經是一對,只是兩人分手後,喬爾與克蕾婷都去了失戀診所做了失憶手術,要讓自己忘記所有關於對方的事情。時間點不一樣,所以才導致了前面所說的再次相遇。

支線的霍華德博士與瑪麗的婚外情、派屈克與斯坦的失職,也讓整個故事更加的生動。

所以,愛情是什麼呢?

Renfield

黑色喜劇,超多血腥暴力畫面,超B級的。我是因為有尼可拉斯·凱吉而看的。剛剛看兩個主角,這麼巧都叫作尼可拉斯。

Renfield (尼可拉斯·霍特飾演)是吸血鬼 (尼可拉斯·凱吉飾演)的手下,經常需要出門幫主人找鮮血,超能力也是由吸血鬼賦予。後來他出門遇到了心儀的女子,開始有了不一樣的心態,想要離開吸血鬼。吸血鬼知道了,當然不想讓這麼忠心耿耿的手下離開,就開始了各種壓迫,而手下為了救心儀的女子也展開反抗。

印象中,最後是吸血鬼老闆步入墳墓做終。

Total Recall

剛好 Netflix 上了這片,趕緊來看這部科幻經典。(應該算吧,哈)

阿諾一直做去火星的夢,所以在某天,他就決定去能植入記憶的公司,做植入記憶,這樣就會以為自己去過火星。結果上了手術台還沒做,他就失控掙脫了。這下可好了,他以為自己是火星特工。回家路上被追殺,靠著不明所以的好身手,將這些人擊退。

他回到家以後,收到自己留下的線索,覺得必須去火星看看,就去了。到了火星,才發現有更大的陰謀,這些就是導致他自願植入記憶回到地球的原因。最後,事情真相大白。

故事有趣的地方在於記憶的部份,如果記憶可以植入,那麼阿諾所經歷的的一切到底是真還是假呢?很難說,這也是這部電影故事有趣的地方。

Bullet Train Explosion

找不到以前的推。

這部電影故事很單純,新幹線有炸彈,列車長、駕駛以及指揮中心等人要力保乘客安全。

這個部份我很喜歡,可以看到日本人實事求是的處事,在緊迫的時間裡,去推演跟找出最適解,就有點像是正宗哥吉拉那樣。

放炸彈的兇手也出人意表,讓人意想不到,他的過往也讓人心疼,最後是該救的人都救到了,順利落幕。

Captain America: Brave New World

雖然看過這部,但,沒什麼深刻的印象。

山姆成為美國隊長以後,獵鷹也有了新的繼任者。羅斯成了新的總統,請他們兩人去調查一些事情。去調查以後,發現這些人都是被控制的,對於做了什麼一無所知。

最後調查主謀是史登斯,之前他意外沾染浩克的血液,得到驚人的智力發展。羅斯總統因為心臟衰竭,請他研發藥物來治療,原本是答應史登斯在藥物研發成功後,就讓他離去,但羅斯擔心之後無法再獲得藥物,就不放人。史登斯因而不爽,才策劃了所有事情。

後來羅斯也因為藥物的關係,獲得了類似浩克的能力,可以變身為紅浩克。山姆在引他到櫻花樹,讓他回想起女兒以後,解除變身。

Thunderbolts

復仇者聯盟4以後,最喜歡的角色是黑寡婦的妹妹-葉蓮娜。

葉蓮娜在彈指事件以後,失去重心,感覺上不被需要了,所以不知道如何自處,就靠著持續接德芳亭派的任務撐下去。

在一次的任務中,他遇到了「前」美國隊長、幽靈、摹仿大師跟鮑伯,打的你死我活,這才發現都是德芳亭的陰謀。德芳亭派了大軍追殺他們,後來

幸運逃出之後,跟紅色衛兵會合。鮑伯留了下來,在四面楚歌的情況下,爆發了超能力。德芳亭看到他的潛力,將他捧為超級英雄。葉蓮娜等人則是去找德芳亭算帳,卻被鮑伯打退。後續是鮑伯的黑暗面浮現,一堆人都被他拉到虛無空間去。葉蓮娜自願進入空間,他知道鮑伯本性不壞,想救出他來。後來紅色衛兵等人也一同進去,合力解除了鮑伯的黑暗面。而德芳亭則趁勢把這些人組合為雷霆特攻隊,也就是新復仇者聯盟,掌握了權力。

這邊有打動我的地方是關於葉蓮娜感到失去重心的那段,不管是什麼人,即使受過特訓,都還是會有需要人去承接他的地方,也因此,在後面鮑伯黑化的時候,他才能去把鮑伯的良善面拉出來。

Jules

這片很有意思,是溫馨的小品。

三個老人家都很孤單,也想試著去社交,讓自己的老年生活不寂寞。

有一天,有個外星人掉到後院,改變了他們的生活,他們跟外星人變成了好朋友,三人有了共同的祕密,也成了好朋友。這段過程特別有趣,因為人家以為他們快要老人癡呆了,再加上他們三人的誤打誤撞,擦撞出不少笑料。美國是有特別的組織在調查外星人的,這次的墜落當然也在關注,所以後來三個老人掩護外星人修好飛船,就讓外星人回家去了。

The Equalizer

一個退役的特種保鑣,在過著他的退休生活。生活中遇到不平的事情,他看不慣,就出面處理。

故事很簡單,但看的就是那種打擊不平的爽感。

這次主要是拯救一個為生活所迫而被逼去賣淫的女子,還有幫助一個是有志考取警衛的同事。好像還有一個人,但我忘記了。

The Equalizer 2

基本概念跟前集一樣。

這次是幫助之前的同事,之前同事去德國調查案件,結果卻被殺死,經過調查,才發現是自己認識的人,也是前同事,於是就把他們解決了。

另外就是住在同社區的黑人少年,他把這個黑人少年拉住,讓他繼續往繪畫方向走,不要走到歧途,去幫人殺人。

나쁜 녀석들: 더 무비

壞傢伙們,馬東石的動作片。

一個警官找了三個罪犯一起辦案,結果案子愈查牽扯愈大,牽扯到警察局長跟國外的毒販,最後很颯爽的解決了。

백두산

白頭山-半島浩劫。

科學家跟政府說,火山要爆炸啦,這次的爆發會影響到整個半島。經過討論後,覺得應該可以在白頭山的礦場深處放置炸彈,就可以阻止火山爆發,所以政府就派了趙仁昌一行人去白頭山。

這組人奉命要先救出北韓的特務李俊平,因為他對北韓比較熟悉,所以需要他當嚮導。合作並不順利,李俊平一直想逃走去找女兒,幾次磨合下來,大家開始能夠有一致的口徑,前往白頭山。

俊平後來在普天找到女兒,但卻被美軍跟中國人包圍了。仁昌為了要讓俊平能帶路,啟用了核彈,嚇阻了美軍跟中國人。最後仁昌跟俊平兩人進入礦坑,放置核彈。俊平因為受了傷,決定捨命引爆核彈,讓仁昌離開,並要他好好照顧他女兒。仁昌開車離去,俊平引爆核彈,阻止了白頭山火山爆發。

電影最後,仁昌退役,跟太太還有剛滿一歲的兒子跟俊平的女兒一起吃飯,以溫馨的畫面作終。

騙徒。

這片是在 Youtube 車庫娛樂頻道上看的。

主角的父親因為一個詐騙事件而自殺,鄰居也因為跟著投資的關係,也都很慘。

轉眼經過十幾年。

有個檢察官朴希秀利用詐欺師在辦案,很有名氣,在高層也很吃的開。這時有個詐欺師黃智成出現了,被這個檢察官逮到。檢察官朴希秀發現智成在找的人跟他一樣,於是就利用他來找。

整個過程蠻刺激、緊張的,而且有抽絲剝繭的感覺。最後是一個蠻大的反轉,黃智成所找的對象其實不是朴希秀要找的人,你覺得會是誰呢?

Venom: The Last Dance

這次是遇到噬界獸,猛毒跟其他共生體一同對抗噬界獸的故事。

沒什麼印象。

The Fantastic Four: First Steps

我對這部漫威英雄電影的印象就是中規中矩,好看,但不到非常喜歡。

一開始就介紹了驚奇四超人的起源,然後直接帶入正題。銀色衝浪手來到地球,驚奇四超人透過銀色衝浪手得知有星球毀滅者,四人追蹤了訊號,前往星球毀滅者,試圖想要提早解決問題。但星球毀滅者的威能遠超過驚奇四超人想像,四人沒辦法應付,改為談判。星球毀滅者感應到蘇肚子裡的孩子,發現這孩子正是他所需要的,就提出了用孩子換取不吞食地球的要求,四人當然不肯,就逃回地球。

逃回地球以後,地球上的人以為事情解決了,但四人說明了情況後,地球人反倒怪起驚奇四超人,怎麼能因為孩子而不顧地球安危呢? 後來蘇再次說明了情況,總算取得大家的理解。李德想到或許可以利用之前的瞬移將地球轉移到安全的地方去,就出面說明,請所有人動員,在地球各地蓋了瞬移裝置。

在瞬疑裝置完成,要啟動時,銀色衝浪手來破壞,強尼追上衝浪手,跟衝浪手說聽懂了之前說的話,並且動之以情,期望衝浪手能幫助他們。衝浪手的心產生動搖,但她沒多說什麼,就這麼回去。

這時驚奇四超人又想到了新的計畫,因為還剩下一個瞬移裝置,他們想到可以直接把星球毀滅者瞬移到遙遠的地方去,爭取時間。那要怎麼吸引星球毀滅者來呢?他們想到可以把嬰兒放到瞬移裝置中間來吸引。

轉眼星球毀滅者也到了,驚奇四超人依計進行,但星球毀滅者實在很強大,並且看穿了四超人的手法,奪取了嬰兒。這時蘇發動母性的超強威能,硬是把星球毀滅者逼到裝置範圍裡,並要李德把嬰兒救走。星球毀滅者真的很強,進去以後,還可以掙脫,這時衝浪手出現,再次把星球毀滅者推進去。世界恢復和平,為之後的漫威電影再次埋下伏筆。

辣手神探

周潤發跟梁朝偉演的。

梁朝偉是警局派去的臥底,幹了不少壞事。周潤發是警察,發現梁朝偉其實也是。

後來就聯手把黃秋生的軍火組織給掀了。

這片聽說是吳宇森去好萊塢之前的最後一片,動作場面跟爆破場面毫不含糊,也可以看到年輕的毛舜筠跟梁朝偉,好看。

대홍수

巨洪。

原本以為是災難片,但看到中間的時候,從不斷的循環裡,就理解到,這其實是一部科幻片了。

簡單的說,小孩是為了情感實驗製作出來的複製人,媽媽則是一個實驗室的研究員,負責研究複製人的情感系統。這天的早上,媽媽剛被孩子叫醒,說外面有大游泳池。對,外面淹了大水,地球因為一顆大隕石擊中南極,導致海平面上升。媽媽帶著孩子逃走,但往下走不行,往上走又被逃難的人塞住。這時候有個男人呼喊了她,要他們往上走,說有直昇機會去接他們。後來終於逃到樓頂,直昇機接走媽媽,孩子被留在樓頂,男人則被射殺了。媽媽被帶到了太空船,發射到了外太空。太空船被隕石擊中,岌岌可危,媽媽說讓我來完成複製人的實驗。後面就是持續的循環三人遇到洪水逃上樓頂的過程。

故事沒有交代這個複製人情感實驗的用途是什麼,所以也無從得知重要性是什麼。

但這個循環的過程,其實跟爸爸與小孩相處是一樣的。媽媽懷胎十月,在懷胎時,就付出了情感。但對爸爸來說,要持續的相處,就會創造出愛的感覺跟親暱感。就跟電影裡的媽媽與小孩一樣,因為小孩是複製人,其實媽媽一開始對小孩子其實很陌生,也會排斥,但透過一次次的循環,媽媽也動了真感情。或許是因為這樣才會說這是情感實驗吧。

故事的最後,是媽媽理解了孩子的用心,以一個水裡的畫面做終,沒有多做解釋。

Oppenheimer

奧本海默的故事,類紀錄片的形式。

因為故事是交錯的敘事,我對不太起來。我的理解是,奧本海默一開始親共,後來沒了,但卻因為這樣被人陷害,被調查。這個調查的過程與他帶領小組研發核彈的過程交叉地敘述,交織在一起。

最後是奧本海默在投彈日本廣島後,深深覺得這個武器不應該被應用,走上反核的道路。

可能要多看幾次才會比較理解吧。

Anyone But You

愛情喜劇,改編自莎士比亞的「無事生非」。

Ben 跟 Bea 一見鍾情,但卻因為誤會以為對方不愛自己。過了幾年後,再次在好友的婚禮上相遇,被迫假扮情侶,試著打發掉彼此的父母,過程引發不少趣事。

最終兩人解開誤會,確認彼此的愛意,終成眷屬。

有看到花邊新聞,說戲外的兩人有擦出火花,但後續沒在追,也不知道怎麼了。女主角Sydney Bernice Sweeney是真的蠻漂亮的,也有不少花邊新聞。

Hit Man

故事很有意思。

蓋瑞是大學教授,兼差警局的工作。警局工作的內容主要是扮演誘餌,把可能會犯罪的人約出來,先做預防。

這次蓋瑞扮演了殺手,遇到了一個人妻,這個人妻因為丈夫是爛人,會打人,想殺掉他,所以約了殺手出來。

蓋瑞試著勸退他,並且約了幾次出來,然後他發現已經愛上她了。

後面的故事在蓋瑞不能說太多,持續跟人妻熱戀,又被警局同事嫉妒的情況下發展。不過印象中最後是皆大歡喜的樣子,蓋瑞跟人妻順利在一起,嫉妒的警局同事被幹掉,畫下了句點。

Archlinux上的postgresql升級

官方有說明,依照說明進行就可以:https://wiki.archlinux.org/title/PostgreSQL#Upgrading_PostgreSQL

但,我太久沒去注意,所以依照程序進行時,發現我舊的資料庫是 16,目前版本是 18。升級程序需要舊的 16 的檔案才可以,所以這邊紀錄過程:

取得資料庫檔案所使用的版本

cat /var/lib/postgres/data/PG_VERSION

    停止服務

    因為是服務無法啟動才發現 postgresql 需要升級,所以就不需要停止服務。

    安裝新版的檔案

    這步驟也跳過了,因為每次都是全機升級,所以已經安裝好了。

    搬移檔案

    主要是把原來的 /var/lib/postgres/data 更名,並建立新的資料目錄。

    sudo mv /var/lib/postgres/data /var/lib/postgres/olddata
    sudo mkdir /var/lib/postgres/data /var/lib/postgres/tmp
    sudo chown postgres:postgres /var/lib/postgres/data /var/lib/postgres/tmp

    改用 postgres 使用者身份建立資料庫

    sudo -u postgres -H /bin/bash
    cd /var/lib/postgres/tmp
    initdb -D /var/lib/postgres/data --locale=C.UTF-8 --encoding=UTF8 --data-checksums

    升級

    一樣是 postgres 使用者身份,執行 pg_upgrade 來升級

    pg_upgrade -b /opt/pgsql-16/bin -B /usr/bin -d /var/lib/postgres/olddata -D /var/lib/postgres/data

    我是在這步驟出錯的,因為我已經升級到 18。 /opt/pgsql-16/bin 這個目錄是安裝 postgresql-old-upgrade 套件才會有的,通常安裝了 postgresql 18,postgresql-old-upgrade 裡面的檔案就是 /opt/pgsql-17/bin

    參考了 Grok 的回答,對 postgresql-old-upgrade 進行降級了,先到 https://archive.archlinux.org/packages/p/postgresql-old-upgrade/ 下載舊版的檔案 postgresql-old-upgrade-16.10-1-x86_64.pkg.tar.zst ,然後安裝

    sudo pacman -U postgresql-old-upgrade-16.10-1-x86_64.pkg.tar.zst

    再次執行 pg_upgrade,會發現有以下錯誤

    error while loading shared libraries: libicui18n.so.76
    error while loading shared libraries: libicuuc.so.76

    只能再次安裝 icu76,Grok 說可以用 yay 安裝,此時要離開 postgres 身份來安裝。

    yay -Ss icu76

    安裝後,再次切換為 postgres 使用者帳號執行 pg_upgrade,這時候是說少了 libLLVM.so.20.1。又再離開 postgres 身份,用以下指令安裝 llvm 20

    yay -Syu llvm20

    再切換為 postgres 身份,執行 pg_upgrade,就順利完成了。

    啟動服務

    執行 exit 離開 postgres 身份,檢查以下檔案,主要是跟之前 /var/lib/postgres/olddata 目錄下的做比對。

    /var/lib/postgres/data/postgresql.conf
    /var/lib/postgres/data/pg_hba.conf

    設定改好以後,啟動 postgresql 服務。

    sudo systemctl start postgresql

    清理

    切換為 postgres 身份,執行清理

    /usr/bin/vacuumdb --all --analyze-in-stages --missing-stats-only
    /usr/bin/vacuumdb --all --analyze-only
    

    依照升級後的指令,執行

    ./delete_old_cluster.sh

    刪除 olddata 跟 tmp

    sudo rm -rf /var/lib/postgres/olddata
    sudo rm -rf /var/lib/postgres/tmp

    至此,大功告成。

    電影流水帳(2024/06/01~2024/07/31)

    Seven

    即將退休的警察 Somerset 跟一個剛到任、熱血的警察 David 一起辦詭異案件的故事。案件的凶手採用的手法挺殘忍的,經過精心設計,Somerset 發覺這可能跟宗教有關係,往這方面去追查。這邊讓我難忘的一段是 Somerset 拿了一筆錢去餐廳找了一個線人,之後才跟 David 解釋說,CIA 有在監控去圖書館借書的人,透過借閱紀錄去找到可能的凶手。乍聽之下很扯,因為在那個時間點,資訊科技並沒有像現在這麼進步,要進行這樣大規模的監控,其實很花費人力。但就陰謀論來說,其實還蠻合情合理。

    最後的結局令人扼腕,David 跟他的家人落入凶手的算計之中,David 最後殺了凶手。

    Death on the Nile

    主角是白羅,這次案件是在尼羅河上。如果以為凶手是一個人的話,那麼可能會無法找出凶手是誰。跳脫「凶手只有一人」的既定印象以後,就可以依照線索來推斷,白羅就是這樣找出凶手的。整體來說,電影中規中矩,看來是想把阿嘉莎·克莉絲蒂推理女王的小說陸續搬上大螢幕,就來慢慢看囉。

    Proxmox LXC設定

    LXC是輕量級的容器,Proxmox 直接提供了這功能,等於是可以拿 LXC 來當 VM,這樣可以更壓榨硬體的效能出來。

    這邊主要是紀錄用的時候遇到的一些狀況:

    1. Tailscale
    2. podman

    Tailscale

    因為我 Proxmox 網路設定是用NAT,再加上沒有第二張網卡,所以就簡單用 Tailscale 讓外部可以連到 Proxmox 裡面的 LXC 跟 VM。VM 用 tailscale 沒什麼問題,但 LXC 就遇到不能用的情況。

    這邊要在 lxc 容器設定 (Proxmox 主機裡的 /etc/pve/lxc/<id>.conf 裡加上以下內容

    lxc.cgroup2.devices.allow: c 10:200 rwm
    lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file

    podman

    podman 本身就容器,等於是容器裡的容器,這邊要處理 rootless 的情況,一樣,在 lxc 容器設定 (Proxmox 主機裡的 /etc/pve/lxc/<id>.conf 加上以下內容

    lxc.idmap: u 0 100000 165536
    lxc.idmap: g 0 100000 165536
    

    還有 /etc/subuid

    root:100000:200000

    /etc/subgid

    root:100000:200000

    參考資料

    電影流水帳(2024/04/01~2024/05/31)

    Fast X

    就動作片。從 6 以後,我就失去對這系列的興趣了。

    這集其實我也沒完整看完,大致故事是第五集反派的手下,出來襲擊了第九集反派,取得他的資源,來打擊唐老大。唐老大的兒子被綁走,為了要救他兒子,所以團隊跟之前的敵人攜手合作。最後的鏡頭是在水壩那邊拍攝的,原本是探員的 Aimes 實際上是反派的人,唐老大陷入危機,水壩要爆炸了,唐老大迫不得已開車帶著孩子開下水壩,鏡頭就停在這裡,擺明要大家買單下一集。

    ゴジラ-1.0

    這片拍的很好,故事寫的很好,特效也很不錯。

    時間點抓在二次大戰末的時候,飛機駕駛敷島其實是逃兵,他不想飛去自殺,獨自飛回島上的補給基地。飛回去後的隔天,就遇到了哥吉拉,他僥倖逃過一劫。

    回到日本以後,戰後的蕭條打擊了整個日本,敷島遇到一個帶著孩子的女人,兩人一起展開了生活。原本以為日子可以隨著戰後的復甦,可以越走越順。可是,哥吉拉再次出現。敷島認清自己始終要面對,決定鼓起勇氣,找了以前的舊識,也找到飛機,再次向哥吉拉挑戰。挑戰的過程艱辛,但透過集體的計畫,最終讓哥吉拉沉入東京灣。

    The Union

    動作片。

    男主角 Mike 是個工人,在小鎮生活著,原本以為就這樣了。在好友要結婚的前夕,高中的前女友 Roxanne 來找他,兩人聊的挺開心,原本以為會重續前緣,豈料才一轉眼,Mike 起身就到了倫敦。

    原來 Roxanne 在高中畢業後就加入了特務組織,這次來是因為上個任務失敗,懷疑可能是有內鬼,需要生面孔,所以才找上他。Mike 的確不負前女友的眼光,有成為特務的潛力。經過訓練以後,開始了任務。但這任務並非想像中簡單,因為特務組織裡面發生的變化,有人有了二心。我記得反派是詐死的,他是 Roxanne 的男友 Nick。最終兩人克服了困難,解決了這個反派,也重續了前緣。

    Page Eight

    是因為看電影神搜推薦,所以才找來看的。這部電影沒有動作,可是男主角就是帥~

    第一次看到這男主角是因為 About time,他飾演爸爸,就是他跟兒子說,我們家族可以讓時間倒回的。

    Johnny 參加了一場會議,他注意到報告裡面的第八頁有古怪,所以展開了調查,並確信首相等高層有涉入。調查過程中,遭受阻攔,甚至自己的上司也死去。這期間遇到鄰居 Nancy,他也是個有故事的人,弟弟被誣賴而被定罪。Johnny 後來知道了,順勢利用這個,來處理第八頁的事件。最終並不算解決,而是透過利益的交換,達成了自身的安全,以及 Nancy 伸張正義的機會。