![Kann ich /usr/local zwischen mehreren Linux-Distributionen teilen?](https://rvso.com/image/31643/Kann%20ich%20%2Fusr%2Flocal%20zwischen%20mehreren%20Linux-Distributionen%20teilen%3F.png)
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/local
haben 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/local
sich 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/local
fü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/local
beiden Systemen.
Sie müssen es nicht /usr/local
auf 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 /var
sind 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, /var
die 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, /boot
es 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/local
dies einfach mount --bind /mnt/local/ubuntu /usr/local
bei Ihrer Ubuntu-Installation und mount --bind /mnt/local/suse /usr/local
bei Ihrer Suse-Installation tun.
Ein Vorteil hierbei ist, dass Sie dies über ein bestehendes tun können, /usr/local
ohne das eigentliche /usr/local
Verzeichnis 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 ( glibc
meistens) 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 /home
sollte 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 /home
wie 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/local
wenn Sie aus der Quelle installieren, und z. B. pip
tun Installationen für Python-Module dasselbe. Um Probleme hier zu vermeiden, würde ich /mnt/local
auf jeder Maschine die dafür vorgesehene Partition mounten /usr/local
, Verzeichnisse erstellen ubuntu
und suse
in 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 setupnewsystem
Skript, das alle zusätzlichen Dinge für mich erledigt, einschließlich /etc
der Revisionskontrolle nach der Installation.mercurial