Come installare le applicazioni su un hdd separato?


10

Ero così bravo con Windows, ora mi sento come un completo idiota.

Ho un SSD per Ubuntu e voglio installare la maggior parte dei miei programmi su un HDD separato ma non ho idea di come.
Tutte le ricerche che ho provato vengono visualizzate solo con installazioni a doppio avvio.

  • (RISOLTO ->) Ho anche problemi a localizzare "/ etc /". In particolare, per modificare Conky.
    La ricerca di questo termine rivela solo casi in cui le persone ti stanno dicendo di accedere a questo file, non come raggiungerlo.

1
Dai un'occhiata a This , ti farà iniziare.
Mitch

Ho avuto l'impressione che tutto si estendesse dalla cartella principale. Ops. Quella pagina che hai collegato non è stata utile per quanto riguarda il mio problema, ma ora sto leggendo tutto e sto imparando molto, quindi grazie.
plagio

Ho aggiunto i tag mount e fstab; puoi fare quello che stai descrivendo impostando manualmente particolari filesystem da montare su partizioni o unità particolari.
belacqua,

@belacqua c'è altro modo? Non voglio solo file system particolari su un'altra unità, voglio tutti i file system di programmi particolari. In questo modo posso ordinarli in base alla loro intensità del mio sistema, avendo giochi / virtualbox / etc interamente sul mio SSD e cose come libreoffice / thunderbird interamente su uno degli HDD.
plaguedoctor,

Non è così facile determinare dove risiedano una determinata installazione e i suoi file - vedi le risposte nel link menzionato da Mitch. Puoi usare anche cose come i link simbolici, ma la mia raccomandazione è di iniziare in modo semplice. Trova un'applicazione di esempio, fai una domanda specifica qui (o modifica questa in modo che sia meno generale) e vai da lì. O sperimenta con cautela.
belacqua,

Risposte:


22

C'è una grande differenza tra Windows e GNU / Linux. Su Windows è comune che ogni programma insieme a tutte le librerie da cui dipende sia installato in una cartella separata. Questo porta spesso a sprecare molto spazio su disco a causa dell'installazione di librerie più volte, per ogni programma che le utilizza.

Su Linux, i programmi sono installati seguendo il Filesystem Hierarchy Standard (FHS). Ciò significa che le librerie da cui dipendono i programmi sono tutte installate in una posizione dedicata comune, in modo che vengano solitamente installate una sola volta, indipendentemente dal numero di programmi che le utilizzano. Inoltre, i programmi sono costruiti in modo tale da utilizzare tutti la stessa versione di una determinata libreria. Ciò consente di risparmiare spazio su disco (e RAM in fase di esecuzione), ma presenta lo svantaggio di non poter installare liberamente programmi su partizioni o dischi rigidi diversi, almeno non senza modificare i file di configurazione del sistema (ad esempio /etc/ld.so.conf.d per includere le diverse cartelle della libreria).

Dal momento che il sistema di pacchetti Debian è stato implementato pensando all'FHS, per quanto ne so non esiste un modo semplice per installare i pacchetti Debian in una cartella diversa da quella in cui erano destinati e farli funzionare senza spostarsi manualmente e modifica dei file in seguito. Questo perché i percorsi sono spesso codificati in fase di compilazione. Quindi, anche se installi un pacchetto in una cartella diversa, ad esempio usando dpkg --instdir=folder/ package.debdalla riga di comando, il programma cercherà comunque la sua configurazione in '/ etc', non 'folder / etc', ma i file di configurazione che sono stati spediti con il pacchetto ovviamente è stato installato in 'cartella / etc' ... Il programma non verrà aggiunto al menu, dal momento che i file di menu dovrebbero essere in '/ usr / share applicazioni', non nella cartella / usr / share / applicazioni.

Naturalmente puoi ovviamente configurare e compilare manualmente un programma dal suo codice sorgente per farlo installare le parti binarie e di dati dove vuoi, mentre installi i file di configurazione nelle posizioni conformi a FHS, ma questo è qualcosa che consiglierei solo per utenti avanzati. Se stai per compilare dal sorgente, dai un'occhiata a checkinstall , uno strumento che crea automaticamente pacchetti debian.

Un'altra opzione, che è stata suggerita su linuxfromscratch , è quella di decomprimere il pacchetto in una posizione adatta e quindi creare collegamenti simbolici a tutti i file installati nelle posizioni FHS corrispondenti.

Dato che nei commenti ti riferivi ai giochi: molti giochi che non sono stati acquistati tramite Ubuntu Software Center sono eseguibili come installer e, naturalmente, possono essere installati in qualsiasi cartella, in genere una sottocartella della tua home directory. I giochi Windows, che vengono eseguiti utilizzando WINE, possono anche essere installati in qualsiasi directory desiderata. Per il vino esiste una variabile d'ambiente chiamata WINEPREFIX con la quale è possibile impostare numerose cartelle WINE indipendenti, ognuna con la propria unità C: virtuale. Leggi la pagina man di WINE per maggiori informazioni.

Anche se i giochi / programmi arrivano come pacchetti Debian, puoi guardare il contenuto del pacchetto nel tuo gestore archivi preferito. Se il gioco verrà installato in / opt, di solito puoi installarlo in modo sicuro in una cartella diversa, poiché / opt viene spesso usato come posizione di installazione per i programmi che non aderiscono a FHS.


Corretto e degno dei voti positivi O
Rinzwind

1
Tuttavia, non è completo, dal momento che non ho spiegato in dettaglio cosa sarebbe richiesto per far funzionare un pacchetto in una posizione arbitraria, quali file si dovrebbero modificare e quali variabili d'ambiente dovrebbero essere impostate. Temo solo che sarebbe diventato un romanzo di medie dimensioni ...
fonte di anime

1
Non mi preoccuperei. Basta montare / etc / altrove. Prende il 90% del carico del disco dall'SSD.
Rinzwind,

5

TL; DR

  1. Avvia il disco USB esterno con la versione di Ubuntu che hai appena installato e suppongo /dev/sdasia il tuo SSD ed /dev/sdbè il tuo HDD.

  2. Crea una partizione sul tuo HDD per contenere tutte le applicazioni che vuoi installare (diciamo 64 GB) usando gparted e suppongo che questa sarà la terza partizione che creerai sul tuo HDD ( /dev/sbd3)

  3. eseguire i seguenti comandi:

    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 nanol' fstabon /dev/sda1/etc/per includere quanto segue subito dopo l' /ingresso (la directory root)

    /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. riavviare e testare

La versione lunga:

Unix / Linux / Ubuntu è stato concepito per essere un sistema operativo server con un desktop come ripensamento, mentre Windows è stato concepito per essere un sistema operativo desktop e il server è stato ripensato.

Quindi lo standard di gerarchia dei filesystem di Linux consente di disporre di un numero illimitato di unità / partizioni da posizionare ovunque e di collegarle all'unità o alla partizione corretta con totale trasparenza per l'utente, mentre il sistema operativo Windows è limitato a un massimo di 24 unità accessibili / partizioni ( C:tramite Z:as A:e B:sono riservate ai floppy disk.)

La maggior parte delle applicazioni in cui ti installi viene installata /opt/e /usr/bin, quindi installa Ubuntu normalmente e quindi usa i passaggi seguenti in cui sto affermando che /dev/sdaè il tuo SSD, /dev/sdbè il tuo HDD ed /dev/sddè la tua chiavetta USB:

  1. Avviare il disco USB esterno con la versione di Ubuntu appena installata.
  2. Crea una partizione sul tuo HDD per contenere tutte le applicazioni che vuoi installare (diciamo 64 GB) usando gparted e suppongo che questa sarà la terza partizione che creerai sul tuo HDD ( /dev/sbd3)
  3. Montare quella partizione in una directory temporanea:

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    
  4. copia quello esistente /opte /usr/binlì:

    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  5. sudo nanol' fstabon /dev/sda1/etc/per includere quanto segue subito dopo l' /ingresso (la directory root)

    /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. riavviare e testare

  7. Se tutto funziona correttamente, riavviare nuovamente sulla chiavetta USB ed eliminare tutto in /dev/sda1/opte /dev/sda1/usr/binper recuperare lo spazio su disco ancora in uso da directory ormai obsolete già montate altrove.

Avvertenza: l'ultimo comando potrebbe anche causare l'arresto anomalo del sistema nel caso improbabile di /dev/sbd3non montaggio a causa di un errore HW


Windows in realtà ha lo stesso supporto per montare unità su percorsi non root, ormai da circa un decennio. E quelle lettere di unità potrebbero anche essere mappate per utente, quindi H: \ potrebbe essere una home directory per utente. Nessuna grande sorpresa: la linea di Windows NT è ispirata a VMS, molto un sistema multiutente. Né Unix è stato concepito come un sistema operativo server: AT&T ha realizzato switch telefonici. E UNIX differisce in modo specifico dalla sua ispirazione Multics nell'essere inizialmente meno orientato all'utente multi-semplicemente - non c'era semplicemente bisogno di quello in un interruttore del telefono.
Salterio

@MSalters Wow, non conoscevo il bit di commutazione del telefono AT&T ... Ricordo la parte VMS / NT e che M $ ha assunto l'ingegnere di principio DEC e anche la parte OS / 2, ma prima era un shell desktop multi-tasking preventivamente dell'utente. > :-) Aggiornato!
Fabby,

1
Windows supporta anche unità non letterali ( 1:, !:ecc.), Così come alcune versioni di DOS (con altri caratteri, [:ecc.). Windows non è limitato a 24 partizioni (cercare i punti di montaggio del volume). Le prime versioni di Windows (prima del 95) utilizzavano il multi-tasking cooperativo, non preventivo, tra i processi di Windows; solo le VM DOS sono state preventivamente multitasking (in modalità avanzata).
Stephen Kitt,

1
Lavoravo in AT&T, nel gruppo UNIX. Non è iniziata la vita come un interruttore del telefono.
stevegt,

@MSalters Unix non sembra avere nulla a che fare con gli interruttori del telefono, a parte il fatto che la società responsabile ha sviluppato entrambi; e sembra essere stato multiutente molto presto, all'epoca in cui il nome fu coniato. Vedi questa risposta su SE RC.
Peter - Ripristina Monica il

2

La soluzione che ho usato per il mio Chromebook non è installare pacchetti, ma piuttosto scaricare la loro controparte .tar.gz.

Questo potrebbe non essere quello che stai cercando, ma se hai un disco molto piccolo e vuoi dividere il tuo software vitale (desktop GNOME, browser web) dal tuo software aggiuntivo (GIMP, IDE, giochi) per risparmiare spazio locale e mantieni il tuo computer funzionante senza l'unità esterna, è la soluzione migliore finora IMO.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.