首頁  >  文章  >  後端開發  >  為什麼軟體包在本地安裝而不是集中連結?

為什麼軟體包在本地安裝而不是集中連結?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-24 08:11:30441瀏覽

Why Are Packages Installed Locally Instead of Linked Centrally?

為什麼要在本地安裝套件而不是集中連結?

Conda 和其他套件管理器通常在隔離環境中安裝套件。用戶可能想知道為什麼套件不簡單地連結到一個中心位置,因為 conda 快取了下載的套件。

Conda 的硬連結機制

事實上,conda 已經使用了這個策略。 Conda 軟體包安裝在硬連結目錄中,這意味著多個目錄似乎包含軟體包的唯一副本,但實際上共享相同的基礎資料。

節省空間

A常見的誤解是每個環境都會佔用大量空間。然而,由於硬連結機制,實際的磁碟使用量比看起來低得多。為了進行演示,我們可以使用 du 命令來檢查未更正的(每個環境)和更正的(硬鏈接)空間使用情況:

# Uncorrected
$ for d in envs/*; do du -sh $d; done

# Corrected
$ du -sh envs/*

輸出顯示大部分空間已被節省。

共享套件

大多數硬連結都指向儲存共享套件的 pkgs 目錄。這種共享位置減少了重複並最大限度地減少了各個環境的大小。將pkgs 目錄納入分析中,可以看出環境本身相對較小:

$ du -sh pkgs envs/*

結論

Conda 的硬連結機制有效減少了包裝和包佔用的磁碟空間。環境。雖然隔離安裝方法乍看之下可能效率低下,但它在幕後提供了顯著的節省空間的好處。

以上是為什麼軟體包在本地安裝而不是集中連結?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn