
我的電腦上會有很多虛擬環境,我希望有一個地方可以儲存它們。不知何故,$HOME
和 子目錄似乎不太好;太暴露了。有什麼建議或理由說明我的想法是錯的嗎?
我正在考慮/var/venv/
。有什麼想法嗎?
答案1
對於 venv,您可能希望它們位於 $HOME 的子目錄中,以避免 apparmor 或 docker 等容器中的安全限制問題。
請注意此文件中的限制:
/etc/apparmor.d/abstractions/python
理論上,您可以將它們放在 /opt 中,但 venvs 實際上是特定於使用者的,並且應該位於使用者主目錄中。由於其他發行版限制以及 /usr 被官方假定由 LSB 在網路上共享的事實,本地不是一個選項。
我個人遵循 golang 結構的修改版本。
~build/
+$language/
+bin/
| venv/
| |---Python2.7
| +---Python3.6
+pkg
+src/
|
+--- my_work/..
| |---repo1
| +---other_project
|
+-- external-repo.com/..
這使得尋找和移動內容變得很容易,而且它與安全模型、cgroups等限制所施加的限制相容,隨著容器的普及,這些限制將變得更加重要。
請記住,venvs 最初旨在包含在專案目錄中。雖然核心作業系統依賴項和主要版本變更的現實增加了它們的使用,但最好還是讓它們盡可能接近單一套件、進程或使用者。