Comment puis-je installer une version plus moderne des utilitaires GNU (coreutils) sur Debian Linux sans droits d'administrateur?

13

Je voudrais installer une version plus moderne des utilitaires GNU (coreutils) sur un système Linux Debian où je n'ai pas de droits d'administrateur. Y-a-t-il un moyen de faire ça?

La raison en est que j'ai besoin d'une version plus moderne de celle installée dans le système où j'ai l'intention d'exécuter mon analyse. J'essaie d'utiliser "sort -R" ou "shuf" pour randomiser les lignes dans un gros fichier texte.

719016
la source
1
En aucune façon. Pourquoi veux-tu faire cela?
Michael K
4
La raison en est que j'ai besoin d'une version plus moderne de celle installée dans le système où j'ai l'intention d'exécuter mon analyse. J'essaie d'utiliser "sort -R" ou "shuf" pour randomiser les lignes dans un gros fichier texte.
719016

Réponses:

16

Vous ne pouvez pas les installer dans le sens où ils remplacent ceux existants pour tous les utilisateurs du système, mais vous pouvez les compiler et les installer dans votre répertoire personnel et les configurer de PATHsorte qu'ils soient exécutés à la place de ceux du système.

Pour ce faire, téléchargez la dernière version de coreutils depuis le site Web GNU . Ensuite, extrayez l'archive et cddedans, et exécutez les commandes suivantes pour le compiler et l'installer. Notez le --prefixcommutateur qui vous permet de configurer le répertoire dans lequel vous souhaitez l'installer.

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

La plupart des systèmes Debian sont configurés pour s'ajouter automatiquement ~/binà votre PATH. Si tel est le cas, vous pouvez copier les utilitaires dans ce répertoire. Cependant, il peut ne pas être configuré pour exécuter des exécutables à partir de ce répertoire avant de rechercher des répertoires système, ou vous pouvez préférer les conserver dans leur propre répertoire. Dans ce cas, vous devrez modifier votre ~/.profilepour rechercher ce répertoire avant de rechercher ceux du système. Pour ce faire, ajoutez une ligne comme celle-ci:

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

Si vous préférez ne pas les compiler, vous pouvez également les extraire d'un paquet Debian plus récent en utilisant ar vxle .debfichier pour sortir une data.tar.gzarchive tar avec le contenu du paquet. Mais les nouveaux packages peuvent nécessiter des bibliothèques plus récentes non présentes sur votre système.

Patchs
la source
3
Dans PATH=..., des guillemets doubles ou aucuns doivent être utilisés. L'utilisation de guillemets simples entraînera l' insertion du littéral $HOMEet $PATHnon de leurs valeurs.
user1686
@grawity: Wow, quelle erreur stupide, surtout si l'on considère que j'ai été endommagé par la manipulation des chaînes similaires de PHP depuis des siècles. Merci pour le correctif!
Correctifs du