我可以在多個 Linux 發行版之間共用 /usr/local 嗎?

我可以在多個 Linux 發行版之間共用 /usr/local 嗎?

我嘗試了 Ubuntu 12.04,根據我的理解,我做了以下分割區:

  • 2GB 交換(我有 2GB RAM)
  • 1GB /boot,因為我將安裝不同的核心版本(我正在開始核心開發)
  • 35GB/var
  • 40GB/usr/local
  • 407GB/home
  • 15GB /(根)

現在我想將 OpenSUSE 12.2 與 Ubuntu 12.04 一起安裝。我可以在兩個作業系統之間共用/var和嗎?/usr/local我知道它們是兩個不同的發行版,具有不同的軟體包,但是有什麼方法可以共享磁碟空間嗎?這樣兩個作業系統都可以/usr/local在同一個分割區擁有自己的作業系統或類似的東西嗎?

答案1

你可以分享/usr/local。有時,兩個發行版會有不同版本的可用函式庫,因此您可能需要在一側或另一側或本身安裝一些庫/usr/local。安裝奇怪的額外庫的負擔可能會因為不必在/usr/local.

如果您只想在/usr/local其中一個系統上安裝某些程序,則可以做出不同的安排:不共用/usr/local,而是共用一個存放/usr/local儲存庫,並在兩個系統中建立符號連結。

您不需要放置/usr/local單獨的分割區來共用它。您可以將其儲存在一個系統的系統分割區上,將其安裝在另一個系統上您想要的任何位置,並建立符號連結。

你不能分享/var。目錄的排列方式略有不同,且每個發行版都有自己的使用者 ID。您也許可以分享 的部分內容/var,例如郵件池。

35GB 已經/var很大了。對於基本系統,您不需要它。如果您要在那裡放置大量資料(例如,因為那是您的 Web 伺服器根目錄所在),請根據您的資料調整檔案系統的大小。/var從根分區拆分沒有意義,因此將它們合併起來。您沒有/usr在清單中提及:這也不需要從根分割區分割出來。只要為每個作業系統建立一個系統分割區,再加上一個共享的/home.系統分割區確實需要 15GB 以上,除非您對要安裝的程式非常保守。創建一個50GB的系統分割區就可以了。

/boot除非您有其他要求(例如加密系統分割區),否則不需要單獨的分割區。

答案2

除了符號連結之外,您還可以使用bind mountshttp://docs.1h.com/Bind_mounts

基本上,您可以擁有一個分割區和一個檔案系統(類似於 Anthon 的設定)。在這種情況下,假設您已經安裝了檔案系統,/mnt/local只需mount --bind /mnt/local/ubuntu /usr/local在 ubuntu 安裝和mount --bind /mnt/local/suse /usr/localsuse 安裝上執行即可。

這樣做的好處之一是您可以在現有目錄上執行此操作,/usr/local而無需破壞/移動實際/usr/local目錄。

這是一個例子:

# mkdir foo
# touch foo/nowyouseeme
# mkdir bar
# touch bar/nowyoudont
# ls foo
nowyouseeme
# mount --bind ./bar ./foo
# ls foo
nowyoudont
# umount foo
# ls foo
nowyouseeme

答案3

/usr/local(即本地編譯/安裝的軟體)應該可以正常工作,只要所使用的系統庫相容。這意味著您可能會透過大致同期的「桌面使用」發行版來擺脫這種情況。如果你嘗試混合搭配 Fedora 和 RHEL/CentOS 的話全部建構在舊函式庫(本例中為 RHEL/CentOS)的發行版上,因為基礎函式庫(glibc大部分)具有相當的向後相容性。你將要遇到 C++ 問題(C++ 運行時在版本之間往往會發生很大變化),一些圖形庫確實會隨意更改介面。任何與桌面環境相關的東西(無論是 KDE 還是 Gnome 或其他什麼)都可能是不可能的。

答案4

如何在一台電腦上設定多個安裝取決於您使用這些安裝的風格。另一個要記住的是,除非您要使用真實分割區執行一些漂亮的虛擬機器工作,否則這兩個安裝將無法同時運作。

根據我的經驗,該/home分區應該是可共享的,沒有太大問題。任何專門為應用程式(dovecotfetchmail)創建的用戶,但任何一個系統通常都沒有/home像「普通用戶」那樣的真實目錄。我確實在不同的 Ubuntu 版本之間共用登入名,但這有時會導致回到舊安裝時出現問題,因為主目錄中的設定檔會自動轉換。為了解決此類問題,我在 下使用不同的主目錄進行相同的登錄/home,但使用相同的使用者 ID 和群組 ID 來共享資料。您始終可以在特定子目錄(例如包含您的音樂的子目錄)之間建立鏈接,這樣就不存在不相容/不可逆升級的風險。

自從在 80 年代中期使用 PDP 11/70 以來,我沒有單獨的分區,所以我不知道為什麼你的朋友推薦這樣做。此外,如果您從原始程式碼安裝,則某些程式將預設安裝到/usr/local,例如pippython 模組的安裝也會執行相同的操作。為了防止問題,我會/mnt/local在每台機器上掛載指定的分割區/usr/local,在該分割區中建立目錄ubuntususe軟連結(ln -s /usr/local /mnt/local/ubuntu)。機器。這樣您就可以共享該分割區上的空間,而不會遇到意外覆蓋的風險。您稍後可以隨時在您明確想要分享的內容之間建立連結。

我可以建議的另一件事是為每次安裝所安裝的內容保留某種日誌(我在更改日誌模式下使用emacs,並為每個電腦發行版本組合建立一個檔案),這樣如果您升級並且您可以重做安裝不必記住您安裝了哪些額外的東西。我現在有一個setupnewsystem腳本可以為我完成所有額外的事情,包括/etc安裝後置於修訂控制之下mercurial

相關內容