Wie installiere ich Anwendungen auf einer separaten Festplatte?

10

Ich war so gut mit Fenstern, jetzt fühle ich mich wie ein Vollidiot.

Ich habe eine SSD für Ubuntu und möchte die meisten meiner Programme auf einer separaten Festplatte installieren, habe aber keine Ahnung, wie.
Alle Suchanfragen, die ich versucht habe, werden nur bei Dual-Boot-Installationen angezeigt.

  • (BEHOBEN ->) Ich habe auch Probleme, "/ etc /" zu finden. Insbesondere, um Conky zu ändern.
    Wenn Sie nach diesem Begriff suchen, werden nur Fälle angezeigt, in denen Sie aufgefordert werden, auf diese Datei zuzugreifen, und nicht, wie Sie darauf zugreifen können.
Pest Arzt
quelle
1
Werfen Sie einen Blick auf Dies , es wird Ihnen den Einstieg erleichtern.
Mitch
Ich hatte den Eindruck, dass sich alles vom Home-Ordner aus erstreckte. Hoppla. Diese Seite, die Sie verlinkt haben, war in Bezug auf mein Problem nicht hilfreich, aber ich lese sie jetzt durch und lerne viel. Vielen Dank.
Plaguedoctor
Ich habe die Tags mount und fstab hinzugefügt. Sie können das tun, was Sie beschreiben, indem Sie bestimmte Dateisysteme manuell so einstellen, dass sie auf bestimmten Partitionen oder Laufwerken bereitgestellt werden.
Belacqua
@belacqua gibt es einen anderen Weg als den? Ich möchte nicht nur bestimmte Dateisysteme auf einem anderen Laufwerk, sondern alle Dateisysteme bestimmter Programme. Auf diese Weise kann ich sie danach sortieren, wie intensiv sie auf meinem System sind, Spiele / Virtualbox / usw. vollständig auf meiner SSD und Dinge wie libreoffice / thunderbird vollständig auf einer der Festplatten.
Plaguedoctor
Es ist nicht so einfach festzustellen, wo sich eine bestimmte Installation und ihre Dateien befinden könnten - siehe die Antworten unter dem Link, den Mitch erwähnt hat. Sie können auch Symlinks verwenden, aber ich empfehle, einfach zu beginnen. Suchen Sie eine Beispielanwendung, stellen Sie hier eine bestimmte Frage (oder ändern Sie diese, um sie weniger allgemein zu halten), und gehen Sie von dort aus. Oder vorsichtig experimentieren.
Belacqua

Antworten:

22

Es gibt einen großen Unterschied zwischen Windows und GNU / Linux. Unter Windows ist es üblich, dass jedes Programm zusammen mit allen Bibliotheken, von denen es abhängt, in einem separaten Ordner installiert wird. Dies führt häufig zu einer Verschwendung von Speicherplatz, da Bibliotheken für jedes Programm, das sie verwendet, mehrmals installiert werden.

Unter Linux werden Programme nach dem Filesystem Hierarchy Standard (FHS) installiert . Dies bedeutet, dass die Bibliotheken, von denen die Programme abhängen, alle an einem gemeinsamen dedizierten Speicherort installiert sind, sodass sie normalerweise nur einmal installiert werden, unabhängig davon, wie viele Programme sie verwenden. Außerdem sind Programme so aufgebaut, dass sie alle dieselbe Version einer bestimmten Bibliothek verwenden. Dies spart Speicherplatz (und RAM zur Laufzeit), hat jedoch den Nachteil, dass man Programme nicht frei auf verschiedenen Partitionen oder Festplatten installieren kann, zumindest nicht ohne die Systemkonfigurationsdateien (z. B. /etc/ld.so.conf.d) zu bearbeiten um die verschiedenen Bibliotheksordner einzuschließen).

Da das Debian-Paketsystem unter Berücksichtigung der FHS implementiert wurde, gibt es meines Wissens keine einfache Möglichkeit, Debian-Pakete in einem anderen Ordner als dem zu installieren, in dem sie abgelegt werden sollen, und sie funktionieren zu lassen, ohne sie manuell zu verschieben und anschließend Dateien bearbeiten. Dies liegt daran, dass Pfade zur Kompilierungszeit häufig fest codiert sind. Selbst wenn Sie ein Paket in einem anderen Ordner installieren, z. B. dpkg --instdir=folder/ package.debüber die Befehlszeile, sucht das Programm nach seiner Konfiguration in '/ etc', nicht in 'folder / etc', sondern in den Konfigurationsdateien, mit denen geliefert wurde Das Paket wurde natürlich in 'Ordner / etc' installiert ... Das Programm wird auch nicht zum Menü hinzugefügt, da sich Menüdateien in '/ usr / share applications' befinden sollen, nicht in Ordner / usr / share / Anwendungen.

Sie können ein Programm natürlich manuell konfigurieren und aus seinem Quellcode kompilieren , damit es die Binär- und Datenteile installiert, wo immer Sie möchten, während Sie weiterhin Konfigurationsdateien an den FHS-kompatiblen Speicherorten installieren. Dies würde ich jedoch nur empfehlen fortgeschrittene Benutzer. Wenn Sie aus dem Quellcode kompilieren möchten , schauen Sie sich checkinstall an , ein Tool, das automatisch Debian-Pakete erstellt.

Eine andere Option, die unter linuxfromscratch vorgeschlagen wurde , besteht darin, das Paket an einen geeigneten Speicherort zu entpacken und dann symbolische Links zu allen installierten Dateien an den entsprechenden FHS-Speicherorten zu erstellen.

Da Sie sich in den Kommentaren auf Spiele bezogen haben: Viele Spiele, die nicht über Ubuntu Software Center gekauft wurden, werden als ausführbare Installationsdatei geliefert, und diese können dann natürlich in einem beliebigen Ordner installiert werden, normalerweise in einem Unterordner Ihres Home-Verzeichnisses. Windows-Spiele, die mit WINE ausgeführt werden, können auch in einem beliebigen Verzeichnis installiert werden. Für Wein gibt es eine Umgebungsvariable namens WINEPREFIX, mit der Sie zahlreiche unabhängige WINE-Ordner einrichten können, von denen jeder sein eigenes virtuelles Laufwerk C: enthält. Weitere Informationen finden Sie auf der Manpage WINE.

Selbst wenn Spiele / Programme als Debian-Pakete geliefert werden, können Sie den Paketinhalt in Ihrem bevorzugten Archivmanager anzeigen. Wenn das Spiel in / opt installiert werden soll, können Sie es normalerweise sicher in einem anderen Ordner installieren, da / opt häufig als Installationsort für Programme verwendet wird, die nicht FHS entsprechen.

Seelenquelle
quelle
Richtig und würdig für Upvotes O
Rinzwind
1
Trotzdem ist es nicht vollständig, da ich nicht im Detail erklärt habe, was erforderlich wäre, um ein Paket an einem beliebigen Ort zu installieren, welche Dateien bearbeitet werden müssten und welche Umgebungsvariablen festgelegt werden müssten. Ich fürchte nur, dass es dann ein mittelgroßer Roman wird ...
Seelenquelle
1
Ich würde mich nicht darum kümmern. Montieren Sie einfach / etc / anderswo. Es nimmt 90% der Disc-Last von der SSD.
Rinzwind
5

TL; DR

  1. Booten Sie das externe USB-Laufwerk mit der gerade installierten Ubuntu-Version, und ich gehe davon aus, dass /dev/sdaes sich um Ihre SSD und /dev/sdbIhre Festplatte handelt.

  2. Erstellen Sie mit gparted eine Partition auf Ihrer Festplatte, die alle Anwendungen enthält, die Sie installieren möchten (z. B. 64 GB). Ich gehe davon aus, dass dies die dritte Partition ist, die Sie auf Ihrer Festplatte erstellen ( /dev/sbd3)

  3. Führen Sie die folgenden Befehle aus:

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  4. sudo nanodas fstabon /dev/sda1/etc/, um direkt nach dem /Eintrag Folgendes einzuschließen (das Stammverzeichnis)

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  5. Neustart und Test

Die lange Version:

Unix / Linux / Ubuntu wurde nachträglich als Server-Betriebssystem mit Desktop konzipiert, während Windows als Desktop-Betriebssystem konzipiert wurde und der Server als nachträglicher Einfall.

Mit dem Linux- Dateisystem-Hierarchiestandard können Sie also eine unbegrenzte Anzahl von Laufwerken / Partitionen an einem beliebigen Ort finden und diese mit vollständiger Transparenz für den Benutzer an das richtige Laufwerk oder die richtige Partition binden, während das Windows-Betriebssystem auf maximal 24 zugängliche Laufwerke beschränkt ist. Partitionen ( C:durch Z:als A:und B:sind für Disketten reserviert.)

Die meisten Anwendungen, die Sie selbst installieren, werden in /opt/und /usr/bininstalliert. Installieren Sie Ubuntu also normal und führen Sie dann die folgenden Schritte aus, bei denen ich davon ausgehe, dass /dev/sdaes sich um Ihre SSD, /dev/sdbIhre Festplatte und /dev/sddIhren USB-Stick handelt:

  1. Booten Sie das externe USB-Laufwerk mit der gerade installierten Ubuntu-Version.
  2. Erstellen Sie mit gparted eine Partition auf Ihrer Festplatte, die alle Anwendungen enthält, die Sie installieren möchten (z. B. 64 GB). Ich gehe davon aus, dass dies die dritte Partition ist, die Sie auf Ihrer Festplatte erstellen ( /dev/sbd3)
  3. Hängen Sie diese Partition in ein temporäres Verzeichnis ein:

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    
  4. kopiere das vorhandene /optund /usr/bindorthin:

    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  5. sudo nanodas fstabon /dev/sda1/etc/, um direkt nach dem /Eintrag Folgendes einzuschließen (das Stammverzeichnis)

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  6. Neustart und Test

  7. Wenn alles richtig funktioniert, starten Sie den USB-Stick erneut und löschen Sie alles im /dev/sda1/optund /dev/sda1/usr/bin, um den Speicherplatz zurückzugewinnen, der derzeit noch verwendet wird. Veraltete Verzeichnisse, die bereits an einer anderen Stelle bereitgestellt wurden.

Warnung: Der letzte Befehl kann auch dazu führen, dass Ihr System abstürzt, wenn /dev/sbd3es aufgrund eines HW-Fehlers unwahrscheinlich ist, dass es nicht bereitgestellt wird

Fabby
quelle
Windows bietet seit etwa einem Jahrzehnt die gleiche Unterstützung für das Mounten von Laufwerken auf Nicht-Root-Pfaden. Diese Laufwerksbuchstaben können auch pro Benutzer zugeordnet werden, sodass H: \ ein Basisverzeichnis pro Benutzer sein kann. Kein Wunder: Die Windows NT-Reihe ist von VMS inspiriert, einem Mehrbenutzersystem. Unix war auch nicht als Server-Betriebssystem konzipiert: AT & T stellte Telefonschalter her. Und UNIX unterscheidet sich speziell von seiner Inspiration Multics dadurch, dass es zunächst weniger auf mehrere Benutzer ausgerichtet ist - dies war bei einem Telefonschalter einfach nicht erforderlich.
MSalters
@MSalters Wow, ich kannte das AT & T-Telefonschalterbit nicht ... Ich erinnere mich an den VMS / NT-Teil und daran, dass M $ DECs Principle Engineer und den OS / 2-Teil engagiert hat, aber vorher war es ein Single- Benutzer präventiv Multitasking Desktop-Shell. > :-) Aktualisiert!
Fabby
1
Windows unterstützt auch Nicht-Schreiben - Laufwerke ( 1:, !:usw.), da einige Versionen von DOS haben (mit anderen Charakteren, [:etc.). Windows ist nicht auf 24 Partitionen beschränkt (siehe Volume-Mount-Punkte). Frühere Windows-Versionen (vor 95) verwendeten kooperatives Multitasking, nicht präventiv, zwischen Windows-Prozessen. Nur DOS-VMs wurden präventiv mit mehreren Aufgaben ausgestattet (im erweiterten Modus).
Stephen Kitt
1
Ich habe bei AT & T in der UNIX-Gruppe gearbeitet. Es begann nicht als Telefonschalter.
stevegt
@MSalters Unix scheint nichts mit Telefonschaltern zu tun zu haben, abgesehen davon, dass das verantwortliche Unternehmen beide entwickelt hat; und es scheint sehr früh Mehrbenutzer gewesen zu sein, ungefähr zu der Zeit, als der Name geprägt wurde. Siehe diese Antwort auf SE RC.
Peter - Stellen Sie Monica am
2

Die Lösung, die ich für mein Chromebook verwendet habe, besteht darin, keine Pakete zu installieren, sondern deren Gegenstück .tar.gz herunterzuladen.

Dies ist möglicherweise nicht das, wonach Sie suchen, aber wenn Sie ein sehr kleines Laufwerk haben und Ihre wichtige Software (GNOME-Desktop, Webbrowser) von Ihrer zusätzlichen Software (GIMP, IDE, Spiele) trennen möchten, um lokalen Speicherplatz zu sparen und Damit Ihr Computer ohne externes Laufwerk funktioniert, ist dies die bisher beste Lösung, IMO.

acerspyro
quelle