如果Linux有統一的軟體源會怎樣?

時間 2021-05-30 07:37:49

1樓:紳士喵

基本乙個Linux發布版乙個軟體源

Linux 發行版不計其數,就拿 distrowatch 上收錄的算也有千種以上了。乙個發行版乙個源意思是存在上千個(軟體包的)倉庫?稍微想想也知道不可能啊。

Ubuntu 有大約 70% 以上的包是直接同步自 Debian 的,連這兩個最流行的發行版的包都有繼承關係,更不要提各種小眾發行版了。乙個發行版乙個源不要太扯。

還有你說的(從原始碼編譯)依賴問題。開源軟體是不會遇到依賴不存在的,除非這個軟體是半開源的。閉源軟體你也不需要編譯,一般看到閉源軟體跑在該軟體官方沒有發布的發行版上執行是因為有人重新拆包打包過,這在 Archlinux 的 AUR 上非常常見。

Linux 碎片化又不是軟體包格式不同造成的,任何格式的包的元資訊都是很有限的,在乙個發行版上完美安裝另乙個軟體包不要太容易。

但這不表示你能執行。因為乙個發行版的倉庫中的包是基於這個發行版的軟體環境編譯的,你拿 Ubuntu 16 的包放在 Ubuntu 18 上都可能無法執行。這是鏈結庫的版本不同造成的 ABI 不相容,跟格式不同沒有關係。

最後直面你的問題吧。有沒有統一的軟體源?當然有,早就有了,並且有多種。這在其它回答中已經提到了,例如 Flatpak 和 Snap。

但即便如此,不等於發行版們可以於它們構建自己的環境。這種通用的軟體源對於發行版自身而言永遠都是備選項。

除非每個發行版都是基於同樣的包構建出來的,這當然是不可能的。

因為它們會給開源軟體打大量的定製的補丁(特別是基礎軟體)。因為不同的發行版對待軟體包的公升級頻率和幅度不同。簡單的說,它們雖然都是 GNU/Linux ,本質沒變,但環境差異太大。

但這不表示要強制所有發行版統一軟體源,因為它們並不禁止 Snapcraft 或 Flatpak。

2樓:「已登出」

每個distro都有自己的設定,目錄結構也略有不同,這就決定了打包方式必然是不同的。所以,就算是包格式相同,不同distro之間的包依然不能通用,這樣反而會造成混亂。

關於「目錄結構」的乙個比較明顯的例子,intel的clear linux,它的乙個特色是你裝完系統以後/etc幾乎沒東西,clear linux的理念之一是包管理系統的領域和使用者/管理員的領域完全隔離開,預設配置存在於/usr/share,而/etc完全是管理員的領域,也就是說/etc的任何檔案都不被包管理系統所管理。要達到這個目的,不僅不同的打包方式是必須的,甚至很多情況下必須使用不同的編譯選項甚至修改原始碼才可以。

↑而且clr的package只是乙份檔案清單,這個檔案清單中不僅有檔案的路徑,還有雜湊值,所以swupd是直接進行逐檔案管理的。cdn.download.

clearlinux.org/update/30550/files 這是clr的全部檔案清單,裡面每乙個.tar都是乙個單獨的檔案。

另乙個比較明顯的例子,gentoo,gentoo的包是原始碼分發的,這一點就決定了gentoo和其他distro的包是完全不可能相同的。另外gentoo允許同乙個包的不同版本共存,gentoo需要獨特的目錄結構才能實現這一點。

再有乙個比較有趣的例子是puppy,這個distro的包管理機制有點類似於flatpak和snap。

不過講道理,如果你說「debian系和紅帽系為什麼不相互相容一下」,那麼我是非常贊成的,這倆distro太tm像了。

3樓:秦雨貓

不同發行版的ABI和filesystem hierarchy不一樣,二進位製包沒辦法統一。上游原始碼包倒是可以映象,比如Gentoo和FreeBSD都有映象上游的包。不過基於原始碼的發行版太少了,而且部分發行版(尤其是RedHat)採用的是自己的原始碼包打包規範,而且重度patch,和上游有較大的差異。

有些外中國人倒是喜歡拿http://

archive.org

當「軟體源」寫進自己的包管理器裡。

4樓:運維醬尼古拉斯

我覺得應該不會存在完全的統一的軟體源這種情況。

原因:(1) linux系統的開源趨勢所定。系統的開源,決定了很多服務軟體,應用程式都是開源的了,雖然也有收費的,但開源絕對佔大多數

(2) 開源思想深入骨髓。因為開源,所以才會有更多的linux或者類unix的愛好者把自己的研究分享發布,也才會有了如今那麼「good」的linux作業系統和眾多的linux發行版系統,這些都是開源的結果

(3) 統一起來必定會存在個系統之間服務安裝相容所存在的問題或其他我沒有想到的問題:目前還做不到,如果能夠做到肯定會更方便,不管是使用還是維護都是好事,但這工程太大了,還沒有人或組織帶頭開始做

(4) 最好的資訊資源來自官網和社群。沒有什麼訊息不能在這些地方找到的,學會利用好網際網路資源

(5) 你實現不了你想要的需求,是需求不實用?還是資源沒找到?。可能是你想實現的功能不實用,所以才會沒有找到;也可能是你在網上沒有找到而已,所以自己覺得難。

如果你想要更深入的學習linux,又沒有什麼方向的話,建議看一下這個試聽課,希望可以幫到你:

Linux實戰訓練營

linux為什麼沒有統一的包管理器?

蛙二 我的體會,包管理器最大的用處是解決不同軟體的依賴問題。但是依賴問題非常複雜,簡單說有兩大流派 始終用最新的,全部的基礎庫如libc,openssl會一直更新,應用層軟體也始終是最新的。典型就是arch的pacman 固定在乙個經過驗證的版本不動,只做安全補丁,導致應用軟體也會固定在某個版本區間...

全屋需要用統一的燈源嗎?

無羈 如果房子不大,沒有把握的話,盡可能用同一色溫.人眼對光色的變化相對靈敏,如果你3000k色溫的環境中,移動到4000k色溫的環境下,3000k會顯得更黃,4000k會顯得更白,如果是特意營造這樣的氛圍,自然無所謂,若只是擔心亮度問題 一般人覺得4000k看起來比3000k亮 同樣色溫下更換更大...

如果世界語言統一會怎麼樣?

萌新 不可能的,只要有不流動的人群就會產生語言差別。世界語言統一,如果定義為 地球語言統一 的話,幾乎只能是人類星際殖民,地球成為了宇宙帝國的首府,地位約等於乙個省 甚至乙個市 地球上人們充分流動,北京到阿根廷可以通勤那種。這樣地球語言就會慢慢統一,但也不會一模一樣,會統一出比標普川普塑普粵普閩普更...