È possibile installare un programma su un disco esterno?


9

Eseguo Ubuntu 14.04 su un Chromebook Toshiba usando crostino. L'unità su cui è installato il mio sistema operativo è piccola, con solo 3,6 GB di spazio libero. Vorrei installare sagesul mio sistema ma sagerichiede 6 GB di spazio libero sul sistema.

Tuttavia, tengo sempre inserita una scheda SD nell'unità. La scheda ha 175 GB di spazio libero. È possibile installare sagesulla scheda SD?

Il modo in cui sto tentando di scaricare sagecon i comandi

apt-add-repository -y ppa:aims/sagemath
apt-get update
apt-get install sagemath-upstream-binary

come trovato qui .


Come stai installando Sage? Dai pacchetti deb? Disimballando un archivio? Compilando dalla fonte?
Gilles 'SO- smetti di essere malvagio'

@Gilles Ho appena aggiornato la domanda per includere come sto installando sage.
Brian Fitzpatrick,

Risposte:


4

Dividere pacchetti Debian su diversi dischi su un pacchetto per pacchetto è difficile. Non c'è supporto per quello; dovresti invocare dpkgseparatamente i pacchetti che desideri installare in una posizione non predefinita.

Inserire un albero di directory su un disco separato è facile. Fortunatamente per te, per quanto ne so da una rapida lettura, i pacchetti Sage nel PPA installano la maggior parte dei file /usr/lib/sagemath. Puoi facilmente metterlo sulla scheda SD. Diciamo che la scheda SD è montata (quando presente) su /media/sdcard. Crea lì una directory e crea un collegamento simbolico.

mkdir /media/sdcard/sagemath
ln -s /media/sdcard/sagemath /usr/lib/sagemath

Quindi tutti i file installati da dpkg /usr/lib/sagemathfiniranno sulla scheda SD (indipendentemente dal pacchetto da cui provengono).

Se si tenta di utilizzare Sage o di gestire i pacchetti Sage mentre la scheda SD non è presente, verrà visualizzato un messaggio di errore e se si inserisce la scheda SD e si ripete l'azione, non si verifica alcun danno.


Grazie per i suggerimenti Ho seguito i tuoi suggerimenti e installato sage. Tuttavia, emettendo $ sageresi bash: /usr/bin/sage: Permission denied.
Brian Fitzpatrick,

È necessario che l'unità esterna disponga di un file system di tipo UNIX (come ext4, btrfs ecc.) Se sono necessari attributi come "eseguibile" e informazioni sul proprietario / gruppo.
Ned64,

@ Ned64 La mia scheda SD è ext4.
Brian Fitzpatrick,

@BrianFitzpatrick Stavo per dire che hai bisogno di posixovlfs sopra vfat, ma dato che questo è ext4 non dovresti aver bisogno di qualcosa di speciale. Anche se ... come stai montando la scheda SD? Se hai l' useropzione in /etc/fstab, aggiungi l' execopzione.
Gilles 'SO- smetti di essere malvagio'

@Gilles Le mie etc/fstabletture# UNCONFIGURED FSTAB FOR BASE SYSTEM
Brian Fitzpatrick,

4

Questa è una domanda interessante Discutiamo alcuni modi in cui questo potrebbe essere tentato.

Metodo n. 1: manipolazione della posizione durante l'installazione di apt-get

Usando apt-get, non sarebbe possibile farlo. Se stai installando usando i .debfile, di nuovo non è possibile. Il motivo è semplicemente che la posizione per l'installazione è codificata in questi pacchetti.

Per manipolare il percorso di installazione, dovrai compilare sagedal sorgente e modificarlo makefileprima di installarlo. Ciò comporterà un onere nella gestione delle dipendenze.

Tuttavia, ci sono state discussioni in merito. Forse la gente l'ha fatto. Forse hanno in qualche modo manipolato la posizione di installazione. Vedi qui e qui . Se trovi un modo per farlo, aggiungi un commento.

Metodo n. 2: modifica della posizione della cartella / usr

È possibile modificare la posizione della /usrcartella stessa e trasferirla sulla scheda esterna. Di solito questo sarebbe scoraggiato, ma dal momento che stai dicendo che lo tieni sempre inserito, quindi dovrebbe andare bene.

Per fare ciò, ci sono 2 modi:

  1. (Preferibile) Creare una partizione nella scheda esterna e trasferire tutto il contenuto della /usrcartella corrente su quella partizione. Quindi, modifica il tuo /etc/fstabper montare quella partizione come /usrcartella e rimuovi del /usrtutto la vecchia cartella. Per fare tutto ciò, è necessario eseguire l'avvio da un disco di ripristino o da un CD / USB live.

  2. Anche in questo metodo, prima avvia da un disco di ripristino o un CD / USB live, quindi sposta la /usrcartella sulla scheda esterna e quindi crea un collegamento simbolico alla nuova /usrcartella.

PS

Questa è una domanda interessante, qualcosa a cui ho pensato ultimamente mentre il mio hard disk si stava riempiendo. Proverò alcune di queste cose e aggiornerò la mia risposta. I commenti sono invitati a criticare alcuni di questi metodi.

AGGIORNARE

Vedi anche la risposta di @gilles. Il suo suggerimento è migliore. Invece di spostare tutta la /usrcartella sulla scheda esterna, basta spostarla sulla /usr/lib/sagemathscheda esterna perché occupa circa 3,1 GB dell'installazione. Quindi, nel metodo n. 2 , è possibile spostare questa cartella anziché /usr.


Passare /usralla scheda SD renderebbe inutilizzabile il sistema quando la scheda SD non è presente. Questa non è una buona idea.
Gilles 'SO- smetti di essere malvagio'

Sì. Ma l'OP ha menzionato che la scheda sarà SEMPRE inserita. Ho menzionato questo nella mia risposta.
Shivams,

@Gilles Ho solo la tua risposta. Il tuo suggerimento è decisamente migliore.
Shivams,
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.