昨天,老馮的一篇文章《》收到一條評論, 評論者稱是高校開源鏡像站的管理員(清華 TUNA),向老馮提出批評抗議,內容如下:
作為高校開源鏡像站管理員,我想要提醒作者,文中“躺平”“沒有擔當”的措辭是很不負責任的、令人心寒的指控。
![]()
老馮的感想
收到消息后呢,我去清華 TUNA 源上看了一眼,PostgreSQL 倉庫里已經有最新的 PG 18 的包了,不過 “Last Update” 時間戳還是 2025-05-16,應該是手工同步的。 總的來說是件大好事,除了老馮的 PIGSTY 倉庫[6] 之外,國內總算又多了一個能提供相對及時 PGDG 鏡像的節點,這一點我要為 TUNA 點個贊。
![]()
其實在老馮的 PG 發行版 Pigsty 里,原來使用的是阿里云的 PostgreSQL 鏡像站,并沒有直接從 TUNA 拉 PG 包。 “躺平”“沒有擔當”這些情緒上的評價,最初更多是沖著阿里云這種有資源的大廠去的 —— [7] 的保留節目。 畢竟阿里云作為互聯網大廠和本土云計算一哥,從開源攫取了巨大價值,搞個開源鏡像站卻長期不維護 PG 倉庫,實屬拉垮。 結果在這次風波里,反而是清華 TUNA 的同學先站出來表達了不同看法,這一點我也理解。
![]()
這里說一句公道話:不管是阿里云鏡像站還是 TUNA 鏡像站,我在原文里多次強調過 —— 作為免費的服務提供方,在法律和道德上確實沒有義務去做這件“慈善”。 但這并不妨礙每個人對現實結果有自己的看法和評價。“躺平”“沒有擔當”是我當時的主觀感受,現在回頭看,用在高校志愿者身上,確實容易誤傷人。 所以我已經把措辭調整為“停止維護”“長期未更新”這類事實性的表述,把情緒收回來,避免誤傷一線維護的同學。
為什么老馮會有這種感覺呢?我在發現 [8] 之后,第一時間就 [9](當然阿里云現在還沒修)。 同時,我也順手看了一圈國內其他鏡像站,發現清華 TUNA 鏡像站也有這個問題,就在他們的郵件列表里發了一封提醒。 結果有同學回復說:“你發的這個是阿里云的問題,跟本站無關”。我解釋這是所有鏡像站共有的問題,然后就再沒有任何回應。
![]()
大概又等了一個月左右,老馮實在是不想等了,就自己搭建了 PGDG 中國區域的鏡像倉庫,放在騰訊云上,和 Pigsty 自己的倉庫放一起。 移除了對阿里云 PostgreSQL 鏡像站的上游依賴,至少在 PostgreSQL 制成品分發上,實現了完整的自主可控供應鏈。 老實說,如果不是因為國內鏡像站在這件事上的整體表現,老馮可能也不會這么快去做這件事。
這里有一個身份差異:我不是一個使用鏡像站的普通用戶,而是同樣在做發行版、維護鏡像倉庫的開源貢獻者。 站在這個位置上,看見上游鏈路出了問題、反饋沒人接,情緒會比較直接地表現在文字里。 老馮對云廠商說話一向不太客氣,但這不意味著我不理解志愿者的難處 —— 尤其是對于高校開源志愿者,整體上我覺得應該多一點呵護,少一點道德化的指責,這也是我后來主動調整措辭的原因。
開源與信任
實際上老馮自己也剛剛經歷過類似的事情。我也維護了幾個開源項目,還有不少 PostgreSQL 生態里的工具。 比如說 pg_exporter[10] —— PG 的 Prometheus 指標導出器,有一些 PG 廠商也在用。 前天我才注意到,9月份有人在上面提了一個 Issue[11] 寫到:
你好,雖然我知道這是一個開源項目,但我一個月前提交的兩個問題至今仍未得到任何回應,這實在令人失望。我對 pg_exporter 1.0 版本以及 PG 郵件列表上的公告都充滿期待,甚至考慮過貢獻代碼。但我不愿把希望寄托在一個維護者缺席的項目上。希望這只是暫時的,也希望他一切安好。 我沒有任何怨言,衷心祝愿這個項目和維護者一切順利
![]()
老馮九月份在新疆自駕了一個月,沒怎么用電腦,Issue 點開看過但后面就忘掉了。 “缺乏維護” 導致這位用戶對老馮的開源項目失去了信任,而他本來也許可以成為項目的貢獻者。 辜負了他的信任與期待,確實讓老馮感到非常遺憾與愧疚。 所以我就放下手頭的事兒,把他提的問題修了一遍,然后發布了一個新版本 1.0.3[12]。
將心比心,當我發現我所依賴的上游鏡像站出現問題,而你反饋了也沒人理、沒人修時,我自己也會有這位用戶一樣的感受:
“我不愿把希望和信任寄托在一個維護者缺席的項目上”。軟件供應鏈
在那篇《》中,老馮提出過一個觀點:
“開源” 確實并不要求你向用戶提供可靠穩定的二進制制成品,但真正重要的不是開源,而是信任。開源只是構建信任的一種形式,持續的投入,交付的承諾,專注的熱情,面對問題的擔當。想要成為值得信賴,受人尊敬的社區參與者,有許多東西比丟一份源代碼到倉庫要重要得多。
把開源鏡像站辦起來,說好聽一點,也是某種公共慈善。 這位管理員同學的委屈我是能理解的: “我們又沒拿報酬,還要扛合規和安全風險,犧牲個人時間來維護。你不說謝謝就算了,怎么反過來用‘躺平’‘沒有擔當’這樣的詞來說我們?”
這里有一個現實卻不太好聽的點:
?對維護者而言:“我沒收錢,所以我沒有義務”,在內心是一個很自然的防線;?但對用戶而言:只要你把服務掛在公開的地址上,大家自然就會把它當成“某種可以依賴的基礎設施”。
這種期待未必完全合理,但是真實存在。
鏡像站與普通開源項目有一個重要區別:它處在軟件供應鏈的中間 —— 是從上游到下游的通路,直接影響生產環境, 而不像單純開源項目那樣 “我寫個工具,你愛用不用”。
而供應鏈天然就會出現分層:
?有可靠的,有不可靠的;?有愿意給出承諾、出 SLA 的,也有只愿意盡力而為的;?有愿意把“這事算我頭上”的,也有明確表示 “別指望我” 的。
做到好、長期維護、有清晰的預期管理,就會積累聲望、信任、影響力,成為別人可以安心依賴的關鍵節點; 做不好,交付過時或不可靠的結果,自然也要面對用戶信任的流失。
當這位同學寫下:“與商業鏡像站不同,國內全部的高校鏡像站都沒有任何服務承諾和保證” 這句話本身從維護者視角看,非常誠實。 但換一個視角 —— 生產運維負責人聽到這句,大概會在腦子里立刻畫一個叉:“沒有任何服務承諾和保證,那就沒法出現在生產供應鏈上游。”
所以,我并不想去指責高校鏡像站“沒有擔當”,而是要提醒下游用戶 ——在嚴肅的生產環境里,你不能依賴一個明確說“我不提供任何保證”的上游。
質量與承諾
清華 TUNA 提供的很多鏡像服務是有價值的。比如 pypi 和 homebrew 鏡像,我個人電腦上就一直在用,它們完全勝任“加速訪問”的角色。 在 Pigsty 的早期版本里,我也用過部分 TUNA 的 PostgreSQL 鏡像。 后來遇到過幾次莫名其妙的 403 封禁,這對自動化部署來說不太友好,于是就全部改成阿里云的鏡像。
整體上看,阿里云鏡像站過去的表現是比較穩定可靠的,直到這次 PGDG 切斷 rsync 之后,PG 倉庫一直停在幾個月前的版本,至今還沒有修復。這件事削弱了我對它的信任,所以我選擇自己托管 PGDG 鏡像,把這部分供應鏈從它身上剝離出去。 操作系統層面的鏡像,我目前仍然在用阿里云。如果哪一天阿里云在 Linux 系統鏡像上的表現也開始頻繁翻車,那我也很可能會考慮自建 Rocky / Ubuntu / Debian 的鏡像源。
在這件事里
?清華 TUNA 管理員很坦率地表示:高校鏡像站不提供服務承諾。這個立場本身沒有問題,但下游看到這句話,自然會據此調整對你的使用邊界;?阿里云沒有明確說,但從過往表現來看,我們可以暫時把它當成“部分負責的大廠”:如果繼續出問題,那老馮回去催它/批評它,或者在自己的體系里換掉它;?老馮的 Pigsty / PGDG APT / DNF 倉庫,會明確給出承諾:如果倉庫出問題,我會去修;如果修不好,那我自己信譽掃地,對付費客戶來說,這也意味著 SLA 違約責任。
鏡像站、倉庫、發行版,這些都是“基礎設施中的基礎設施”。是否愿意為自己的服務說一句“出了問題算我頭上”,決定了你在這個生態里的角色 ——只是好心的志愿者,還是真正能被依賴的關鍵節點。
當高校鏡像站把丑話說在前面,下游又應當如何自處?當別人告訴你“別指望我”,最穩妥的回應永遠是“那我自己來”。
寫文章不打廣告約等于沒寫,也許老馮提供的服務正好能幫到你。以下三個國內鏡像倉庫,免費對公眾提供服務: 這些倉庫提供 Cloudflare 全球版本與國內云墻內版本,可以方便的使用 pig / apt / dnf 啟用。 更詳細的介紹請參考 https://pgext.cloud/repo
PGDG鏡像
定期同步全球 PostgreSQL 開發組官方軟件倉庫(el 7-10, debian 11-13, ubuntu 20-24) 最近同步于今天,每周更新,中國大陸區域鏡像地址: https://repo.pigsty.cc/apt/pgdg / https://repo.pigsty.cc/yum/pgdg
PIGSTY PGSQL
PIGSTY PGSQL 倉庫:提供 幾款不同風味的 PG 內核分支[17] (PolarDB, IvorySQL, Babelfish, OrioleDB, OpenHaloDB, Percona TDE, Supabase,... ) ,與 PGDG 官方倉庫配合使用,提供多達 437 個 PG 擴展插件[18] 與生態常用工具。支持 14 個 Linux 發行版大版本[19]。
![]()
PIGSTY INFRA
提供各類 Linux 大版本無關的組件,包括數據庫,相關工具,Grafana,Prometheus,VictoriaMetrics 可觀測性全家桶,以及各類常用 Exporter。
![]()
References
[1]從PG“斷供”看軟件供應鏈中的信任問題:/pg/pg-mirror-pigsty/[2]回復與評論:https://vonng.com/pg/pg-mirror-pigsty/[3]恢復了和上游的同步:https://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/yum/18/[4]向 TUNA 郵件列表反饋問題:https://groups.google.com/g/tuna-general/c/BU8P7X3y4sI[5]修改措辭:https://github.com/Vonng/blog/commit/916697a88f143679d658dc52338827ce603444fd[6]PIGSTY 倉庫:https://pgext.cloud[7]云計算泥石流:https://vonng.com/cloud[8]全球鏡像站出現同步問題:/pg/pg-mirror-break[9]給阿里云發郵件反饋了這個問題:/pg/pg-mirror-pigsty[10]pg_exporter:https://github.com/pgsty/pg_exporter[11]Issue:https://github.com/pgsty/pg_exporter/issues/79[12]1.0.3:https://github.com/pgsty/pg_exporter/releases/tag/v1.0.3[13]從PG“斷供”看軟件供應鏈中的信任問題:/pg/pg-mirror-pigsty/
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.