Kann ich /usr/local zwischen mehreren Linux-Distributionen teilen?

Kann ich /usr/local zwischen mehreren Linux-Distributionen teilen?

Ich habe Ubuntu 12.04 ausprobiert und nach meinem Verständnis die folgenden Partitionen erstellt:

  • 2 GB Swap (ich habe 2 GB RAM)
  • 1 GB /boot, da ich verschiedene Kernel-Versionen installieren werde (ich beginne gerade mit der Kernel-Entwicklung)
  • 35 GB/var
  • 40 GB/usr/local
  • 407 GB/home
  • 15 GB /(Root)

Jetzt möchte ich OpenSUSE 12.2 neben Ubuntu 12.04 installieren. Kann ich es zwischen den beiden Betriebssystemen teilen /var? Ich weiß, dass es sich um zwei verschiedene Distributionen mit unterschiedlichen Paketen handelt, aber gibt es eine Möglichkeit, den Speicherplatz gemeinsam zu nutzen? So dass beide Betriebssysteme ihren eigenen in derselben Partition /usr/localhaben oder so etwas in der Art?/usr/local

Antwort1

Sie können gemeinsam nutzen /usr/local. Manchmal sind für die beiden Distributionen unterschiedliche Versionen von Bibliotheken verfügbar, sodass Sie möglicherweise einige Bibliotheken auf der einen oder anderen Seite oder in /usr/localsich selbst installieren müssen. Der Aufwand für die Installation der einen oder anderen zusätzlichen Bibliothek wird wahrscheinlich dadurch ausgeglichen, dass Sie nicht zwei Installationen jedes Programms in verwalten müssen /usr/local.

Wenn es Programme gibt, die Sie nur /usr/localfür eines der Systeme aktivieren möchten, können Sie eine andere Regelung treffen: nicht freigeben /usr/local, sondern freigeben einesverstauenRepository und erstellen Sie symbolische Links zu den /usr/localbeiden Systemen.

Sie müssen es nicht /usr/localauf einer separaten Partition anlegen, um es freizugeben. Sie können es auf der Systempartition eines Systems speichern, es an beliebiger Stelle auf dem anderen System mounten und einen symbolischen Link erstellen.

Sie können nicht freigeben /var. Es gibt geringfügige Unterschiede in der Anordnung der Verzeichnisse und jede Distribution hat ihre eigenen Benutzer-IDs. Möglicherweise können Sie Teile von freigeben /var, beispielsweise den Mail-Spool.

35 GB /varsind riesig. Das brauchen Sie für ein Basissystem nicht. Wenn Sie viele Daten dort ablegen möchten (z. B. weil sich dort das Stammverzeichnis Ihres Webservers befindet), passen Sie die Größe des Dateisystems Ihren Daten entsprechend an. Es hat keinen Sinn, /vardie Root-Partition abzutrennen, also kombinieren Sie sie. Sie erwähnen es in Ihrer Liste nicht /usr: Auch diese muss nicht von der Root-Partition abgetrennt werden. Erstellen Sie einfach eine Systempartition für jedes Betriebssystem und eine gemeinsam genutzte /home. Sie benötigen mehr als 15 GB für die Systempartition, es sei denn, Sie sind bei der Installation von Programmen sehr konservativ. Erstellen Sie eine 50 GB große Systempartition und alles ist in Ordnung.

Eine separate Partition ist nicht erforderlich, /bootes sei denn, Sie haben zusätzliche Anforderungen, wie beispielsweise die Verschlüsselung der Systempartition.

Antwort2

Zusätzlich zu symbolischen Links können Sie auch Folgendes verwenden bind mounts: http://docs.1h.com/Bind_mounts

Grundsätzlich können Sie eine Partition mit einem Dateisystem haben (ähnlich wie bei Anthons Setup). In diesem Fall würden Sie, vorausgesetzt, Sie haben das Dateisystem gemountet, /mnt/localdies einfach mount --bind /mnt/local/ubuntu /usr/localbei Ihrer Ubuntu-Installation und mount --bind /mnt/local/suse /usr/localbei Ihrer Suse-Installation tun.

Ein Vorteil hierbei ist, dass Sie dies über ein bestehendes tun können, /usr/localohne das eigentliche /usr/localVerzeichnis zu zerstören/verschieben.

Hier ist ein Beispiel:

# 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

Antwort3

/usr/local(d. h. lokal kompilierte/installierte Software) sollte einwandfrei funktionieren,solange die von dem, was auch immer da ist, verwendeten Systembibliotheken kompatibel sind. Das bedeutet, dass Sie mit ungefähr zeitgleichen Distributionen für den Desktop-Einsatz möglicherweise davonkommen. Wenn Sie beispielsweise Fedora und RHEL/CentOS mischen und anpassen möchten,alleAufbauend auf der Distribution mit den älteren Bibliotheken (in diesem Fall RHEL/CentOS), da die Basisbibliotheken ( glibcmeistens) einigermaßen abwärtskompatibel sind. SieWilleProbleme mit C++ (die C++-Laufzeitumgebung ändert sich zwischen den Versionen ziemlich stark), einige Grafikbibliotheken ändern ihre Schnittstellen wahllos. Alles, was mit Desktop-Umgebungen zu tun hat (sei es KDE oder Gnome oder was auch immer), kommt wahrscheinlich überhaupt nicht in Frage.

Antwort4

Wie Sie mehrere Installationen auf einer Maschine einrichten, hängt von Ihrem Arbeitsstil mit diesen Installationen ab. Außerdem sollten Sie bedenken, dass diese beiden Installationen nicht gleichzeitig funktionieren, es sei denn, Sie führen raffinierte virtuelle Maschinenarbeiten mit realen Partitionen durch.

Meiner Erfahrung nach /homesollte die Partition ohne allzu große Probleme gemeinsam nutzbar sein. Alle Benutzer, die speziell für Anwendungen ( dovecot, fetchmail) erstellt wurden, aber eines der Systeme normalerweise keine echten Verzeichnisse unter hat /homewie die „normalen Benutzer“. Ich teile Anmeldenamen zwischen verschiedenen Ubuntu-Versionen, aber das führt manchmal zu Problemen bei der Rückkehr zu einer älteren Installation, da Konfigurationsdateien in Ihrem Home-Verzeichnis automatisch konvertiert wurden. Um solche Probleme zu lösen, habe ich denselben Anmeldenamen mit verschiedenen Home-Verzeichnissen unter /home, aber mit derselben Benutzer-ID und Gruppen-ID, um die Daten gemeinsam zu nutzen. Sie können immer einen Link zwischen bestimmten Unterverzeichnissen (z. B. denen mit Ihrer Musik) erstellen, für die kein Risiko inkompatibler/irreversibler Upgrades besteht.

Ich habe keine separate Partition mehr, seit ich Mitte der 80er an einem PDP 11/70 gearbeitet habe, also weiß ich nicht, warum Ihr Freund das empfohlen hat. Außerdem werden mehrere Programme standardmäßig installiert, /usr/localwenn Sie aus der Quelle installieren, und z. B. piptun Installationen für Python-Module dasselbe. Um Probleme hier zu vermeiden, würde ich /mnt/localauf jeder Maschine die dafür vorgesehene Partition mounten /usr/local, Verzeichnisse erstellen ubuntuund susein dieser Partition einen Softlink ( ln -s /usr/local /mnt/local/ubuntu) für jede Maschine erstellen. Auf diese Weise teilen Sie den Speicherplatz auf dieser Partition, ohne Gefahr zu laufen, dass er versehentlich überschrieben wird. Sie können später immer noch Links zwischen Dingen erstellen, die Sie ausdrücklich teilen möchten.

Außerdem kann ich empfehlen, eine Art Protokoll darüber zu führen, was Sie bei jeder Installation installiert haben (ich verwende Emacs im Changelog-Modus mit einer Datei für jede Kombination aus Maschine, Distribution und Revision), damit Sie die Installation bei einem Upgrade wiederholen können und sich nicht merken müssen, welche zusätzlichen Dinge Sie installiert haben. Ich habe mittlerweile ein setupnewsystemSkript, das alle zusätzlichen Dinge für mich erledigt, einschließlich /etcder Revisionskontrolle nach der Installation.mercurial

verwandte Informationen