Come posso installare una versione più moderna dei programmi di utilità GNU (coreutils) su Debian Linux senza diritti di amministratore?


13

Vorrei installare una versione più moderna dei programmi di utilità GNU (coreutils) su un sistema debian linux in cui non ho diritti di amministratore. C'è un modo per farlo?

La logica è che ho bisogno di una versione più moderna di quella installata nel sistema in cui intendo eseguire la mia analisi. Sto cercando di usare "sort -R" o "shuf" per randomizzare le righe in un grosso file di testo.


1
Non c'è modo. Perchè vuoi fare questo?
Michael K,

4
La logica è che ho bisogno di una versione più moderna di quella installata nel sistema in cui intendo eseguire la mia analisi. Sto cercando di usare "sort -R" o "shuf" per randomizzare le righe in un grosso file di testo.
719016,

Risposte:


16

Non è possibile installarli nel senso che sovrascrivono quelli esistenti per tutti gli utenti del sistema, ma è possibile compilarli e installarli nella propria directory home e configurarli in modo PATHtale che vengano eseguiti anziché quelli di sistema.

Per fare ciò, scarica l'ultima versione di coreutils dal sito web GNU . Quindi, estrarre l'archivio e cdal suo interno ed eseguire i seguenti comandi per compilarlo e installarlo. Nota l' --prefixopzione che ti consente di configurare la directory in cui vuoi che sia installata.

./configure --prefix=/home/avilella/coreutils/
make
make install

La maggior parte dei sistemi Debian sono configurati per essere aggiunti automaticamente ~/binal PERCORSO. In tal caso, è possibile copiare i programmi di utilità in quella directory. Tuttavia, potrebbe non essere configurato per eseguire eseguibili da quella directory prima di cercare le directory di sistema, oppure potresti preferire tenerli nella loro directory. In tal caso, dovrai modificare il tuo ~/.profileper cercare quella directory prima di cercare quelle di sistema. Per fare ciò, aggiungi una riga come questa:

PATH="$HOME/coreutils/bin:$PATH"

Se preferisci non compilarli, puoi anche estrarli da un nuovo pacchetto Debian usando ar vxil .debfile per generare un data.tar.gztarball con il contenuto del pacchetto. Ma i pacchetti più recenti potrebbero richiedere librerie più recenti non presenti sul tuo sistema.


3
In PATH=..., è necessario utilizzare virgolette doppie o nessuna. L'uso di virgolette singole causerà l'inserimento del valore letterale $HOMEe $PATHnon dei loro valori.
user1686

@grawity: Wow, che stupido errore, specialmente considerando che sono stato danneggiato al cervello dalla gestione simile delle stringhe di PHP da anni. Grazie per la correzione!
Patch
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.