Unix 的包依賴是如何形成的?

時間 2021-05-30 20:58:34

1樓:zpan

因為開源的那幫人都有強迫症,希望所有的庫在系統裡只有乙份。

不過 Linux 也已經在逐漸改變這一情況了,前有 Docker,後有 FlatPak 和 Snap。

2樓:路名

避免重複造輪子,好多功能都有現成的開源庫,這樣能讓開發人員把更多的精力花費在自己原本要實現的功能上。況且現各種包管理軟體已經做的很完善了。

3樓:pansz

任何程式設計師寫程式都有可能會依賴一些別人已經寫成的庫,所以幾乎一定規模的程式必然有依賴。

不同體系用不同的方法解決依賴問題。

GNU/Linux:通常這個系統大多數軟體是自由軟體,換句話說,他們通常依賴的庫也是自由的,所以軟體開發者認為你可以自由的獲取這些依賴庫,自然就不需要自己再提供了。由系統「發行版」負責維護屬於這個系統的所有依賴庫,並且安裝軟體時確定依賴。

這個體系的特點是:

系統依賴通常是統一的,如果有多個程式依賴同乙個庫,在這個系統中通常是同乙份。

具有龐大的資源。例如 Debian 系現成的可依賴軟體多達 30G,所以通常不可能預先把所有依賴都安裝全,但龐大的依賴庫給程式設計人員提供了很多方便。

你安裝的軟體越多,共同依賴所體現出的價值越高,解決依賴問題就越簡單(因為當你安裝足夠多軟體時,主流的依賴已經全部在你系統了)。

由於巨大的共同依賴庫存在,軟體本身可以很小。

Windows:通常而言,這個系統的軟體是商業軟體,因此,他們依賴的庫也很有可能是商業軟體,所以,不可能要求使用者自行獲取這些依賴,這些依賴通常在發布軟體的時候提供。如果你安裝的軟體少,這個體系很方便。

不過這造成了一些缺點:

沒有乙個龐大的公共庫,很多功能以及基礎庫都是每個公司自己實現一套,浪費很多勞動力,程式設計人員到每個公司得學習一套不同的庫,給程式設計人員帶來不便。

所有應用程式都自己帶依賴,因此很可能有許多程式同時附帶了相同的依賴,並且這些相同依賴還有可能是不同的版本,這會造成許多混亂。

由於所有應用程式都自己提供所有依賴,每個軟體體積都很龐大。

系統中安裝的軟體越多,越容易出問題。

OSX 理論上是兩者的結合,具體我沒有認真研究過,請懂的人說說。

4樓:馮東

首先,「包依賴」是某些 Linux 發行版上比較嚴重的現象,與一般意義上的 Unix (包括 OS X) 無關。

其次,「包依賴」是懼怕 redundancy 的想法發展為惡趣味之後的產物。

第三,在 OS X,商業 Unix,和 Windows 中也多多少少有「懼怕 redundancy」的思維,為什麼沒有形成嚴重的包依賴局面呢?這是因為在多方提供安裝包的情況下,象 dependency management 這樣複雜的機制是根本無法運轉的。到了某些 Linux 發行版上,它們的所有 installation package 其實都是這個發行版的開發者自己進行二次封裝的。

有了這個基礎,他們才開始樂此不疲的玩起「包依賴」藝術來。

Unix時間戳是如何處理閏秒的?

仲晨 The Unix time number is zero at the Unix epoch,and increases by exactly 86400 per day since the epoch.正閏秒時,閏秒的unix time就跟後一秒相同 負閏秒時,unix time就會跳過閏秒...

海洋是如何形成的?

終是傑友還是傑友 首先需要乙個問題先有陸地還是先有海洋和他們之間的變化聯絡,或則說還要明確地球是乙個動態的行星。因為相比於現在地質過程緩慢的地球,早期的地球是乙個動力活躍的地方,地殼是乙個不斷生成的過程,由於地幔對流和板塊運動,新的洋盆不斷產生,舊的洋盆不斷被破壞。我們現在能找到的最老的洋殼僅有幾億...

石油是如何形成的?

饕餮有悔 看完以下三點,大家也許會得出最靠譜的推論。1 地球上的石油來自植物 動物屍體腐化物形成已經被完全推翻,舉例 1 世界上大的油田,大多處在熱帶地區,這種地區,腐化物很快就被自然降解,根本沒有產生石油的條件,2 知友提出比如 以世界上最大的油田 沙特的加瓦爾油田為例,按照石油化石學說,要生成該...