21 votes

Quels sont les inconvénients de mettre les coreutills GNU en premier dans ${PATH} ?

Je passe de Linux à MacOS, et beaucoup de mes scripts supposent des versions GNU des utils fournis dans GNU coreutils .

Je pourrais simplement mettre les GNU coreutils bin dans le répertoire précédent dans $PATH que /bin .

Est-ce que cela se fait couramment ? Si je le fais, à quels inconvénients/ruptures dois-je m'attendre à l'avenir ?

20voto

nohillside Points 82672

Cela cassera tout script qui attend des utilitaires de style BSD (arguments différents, fonctionnalité partiellement différente).

Mais vous pouvez installer coreutils avec Homebrew ou Macports qui leur donnera un préfixe g ( gcp etc). Et ensuite adapter vos scripts pour les utiliser (en fonction de la plateforme qu'ils exécutent).

20voto

ddrjm Points 151

Alors que l'utilisation de coreutils non préfixés a le potentiel de casser tout script s'attendant à des programmes de style BSD, j'utilise des coreutils non préfixés depuis presque 8 ans maintenant, et je n'ai jamais rencontré un seul problème. Étant donné la nature anecdotique de ce rapport d'expérience, vous devriez le prendre avec un grain de sel, mais mon expérience a été que les dangers signalés de la non-préfixation sont exagérés.

3voto

Oskar Skog Points 137

Je pense qu'il est plus sûr de ne pas avoir les GNU coreutils en premier dans PATH, mais je ne connais pas vraiment MacOS.

Une façon relativement simple de faire en sorte que vos scripts existants utilisent GNU coreutils est de redéfinir PATH au début de chaque script.

export PATH=/path/to/coreutils:$PATH

De cette façon, vous n'aurez pas à renommer (ou à ajouter le chemin complet) à toutes les commandes d'un script.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X