Conséquences d'avoir une longue variable d'environnement $ PATH?

La fonctionnalité dont j'ai vraiment besoin est de pouvoir créer des "directorys virtuels" en fusionnant une collection de directorys réels (de sorte que votre /usr/bin soit réellement une chose virtuelle qui pointe vers un tableau de directorys).

Cependant, cette fonctionnalité, bien que disponible dans certains systèmes d'exploitation, n'est pas très répandue, et vous ne pouvez pas vous attendre à ce qu'elle soit prise en charge dans l'OS que vous utiliserez l'année prochaine, par exemple.

Pour l'instant, j'utilise la variable $ PATH comme solution de contournement, en y stockant toute la collection de directorys que je souhaite "merge" (et prévois d'utiliser d'autres, comme $ MANPATH, pour les pages de manuel, ainsi que des équivalents analogues pour les bibliothèques).

Je ne rencontre pas de problème de performance pour l'instant, car la collection de "directorys fusionnés" n'est pas grande, mais je me request si je pourrais rencontrer des problèmes au cas où le nombre arriverait à des centaines d'annuaires je ne sais pas si un si grand nombre va arriver, cependant).

Le nombre prévu de directorys "fusionnés" que je devine pour l'avenir prévisible est d'environ 40 à 50 .

Les solutions de contournement que j'ai trouvées pour cette fonctionnalité sont principalement basées sur la gestion des liens symboliques, mettant ainsi en miroir efficacement tous les files de tous les directorys fusionnés en tant que liens symboliques les pointant vers le directory «unifié». Cependant, une telle approche me semble une complexité écrasante. Il ne ressemble pas à une solution propre et rangée.

Pensez-vous que je pourrais continuer avec l'approche $ PATH, ou devrais-je arrêter, reconsidérer et étudier d'autres options?

Le shell met généralement en cache les informations sur l'location des utilitaires externes, ce qui signifie qu'il n'a besoin d'effectuer qu'une seule search pour chaque utilitaire non mis en cache.

Je ne m'attends pas à ce que le fait d'avoir un $PATH long impose des problèmes de performances sérieuses en cas d'utilisation d'un shell sensible.

Pour une solution alternative, jetez un oeil à GNU Stow .

La solution $PATH dépend fortement du fait que $PATH soit correctement configuré au démarrage, ce qui rend l'set de l'installation défaillante si la configuration de l'environnement est endommagée / supprimée d'une manière ou d'une autre.

La méthode des liens symboliques est plus robuste car elle est essentiellement autonome, bien qu'un peu plus complexe à mettre en place.

Le projet GNU Stow et nixOS sont deux façons d'utiliser la méthode des liens symboliques que vous pouvez utiliser ou examiner pour en savoir plus sur son fonctionnement pratique.