Maison >développement back-end >Tutoriel Python >Pourquoi les packages sont-ils installés localement au lieu d'être liés de manière centralisée ?
Pourquoi les packages sont-ils installés localement au lieu d'être liés de manière centralisée ?
Conda et d'autres gestionnaires de packages installent généralement des packages dans des environnements isolés. Les utilisateurs peuvent se demander pourquoi les packages ne sont pas simplement liés à un emplacement central, étant donné que conda met en cache les packages téléchargés.
Le mécanisme de liaison matérielle de Conda
En fait, conda l'utilise déjà stratégie. Les packages Conda sont installés dans des répertoires liés en dur, ce qui signifie que plusieurs répertoires semblent contenir des copies uniques des packages, mais partagent en réalité les mêmes données sous-jacentes.
Gains d'espace
A L’idée fausse la plus répandue est que chaque environnement consomme une quantité importante d’espace. Cependant, en raison du mécanisme de liaison matérielle, l'utilisation réelle du disque est bien inférieure à ce qu'elle paraît. Pour le démontrer, nous pouvons utiliser la commande du pour examiner l'utilisation de l'espace non corrigée (par environnement) et corrigée (liée en dur) :
# Uncorrected $ for d in envs/*; do du -sh $d; done # Corrected $ du -sh envs/*
La sortie montre qu'une grande partie de l'espace est enregistrée.
Packages partagés
La majorité des liens physiques pointent vers le répertoire pkgs, où sont stockés les packages partagés. Cet emplacement partagé réduit la duplication et minimise la taille des environnements individuels. L'inclusion du répertoire pkgs dans l'analyse révèle que les environnements eux-mêmes sont relativement petits :
$ du -sh pkgs envs/*
Conclusion
Le mécanisme de liaison matérielle de Conda réduit efficacement l'espace disque consommé par les packages et environnements. Bien que l'approche d'installation isolée puisse sembler inefficace à première vue, elle offre des avantages significatifs en matière d'économie d'espace en coulisses.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!