是否可以將貼上套件/軟體複製到 Linux 中的另一台機器上?

是否可以將貼上套件/軟體複製到 Linux 中的另一台機器上?

這是一個範例場景:

從新目錄開始,例如 /myapps 。安裝一個單獨的(預編譯或來源)python 到 ./usr/bin (相對於安裝目錄而不是系統 /usr/bin),並將各種 Egg 安裝到這個自訂 python 中。這可以使用諸如 buildout 之類的東西來完成。

現在另一個使用者俱有相同的作業系統版本,只是 rsync 的資料夾維護了確切的資料夾結構,他是否能夠像其他使用者一樣使用 python 。他真的必須再次安裝東西嗎?

我認為大多數 Linux 套件管理器的工作方式與 /myapps 類似,與 /usr 類似,即檔案保存位置的預設約定。編譯不是強制的,除非你想像gentoo安裝那樣進行最佳化。換句話說,我認為大多數套件管理器所做的是:

1)需求檢查

2) 將預先編譯的內容複製/貼上到標準位置,例如 /usr/lib /usr/bin

3)更新選單

第一台機器的一些先決條件:

將所有內容安裝在此目錄內,而不是在其外部。它以普通用戶身份運行,無需 sudo 。

在 Windows 中,我認為這將具有挑戰性,因為註冊表等我不確定是否像正常的檔案系統概念一樣。但在 *nix 中這應該這麼簡單嗎?

答案1

這是完全可能的(但通常你透過製作 virtualenv 並捆綁整個 virtualenv 根來達到相同的結果)。如果某些 python 套件需要外部程式庫而其他使用者沒有安裝它們,你會遇到麻煩(這就是為什麼你通常使用 virtualenv 和 pip bundle/pip freeze 來做到這一點)。

套件管理器運行所謂的安裝腳本。它們可以包含任何程式碼,但通常它們會新增所需的使用者/群組,編輯其他一些配置(因為您無法在配置中「安裝」一行;將所有*.conf 拆分為*.conf.d 的操作會有所幫助,但是我們還沒有接近完成它)但是對於大多數 python 包來說,你會沒事的。

相關內容