2010-07-02 3 views
4

Habituellement, chaque fois que `make install 'est exécuté, les fichiers ne sont pas placés dans un répertoire spécifique comme/usr/prog1. Au lieu de cela, les fichiers sont placés dans des répertoires où les fichiers d'autres programmes sont déjà dans/usr/lib et/usr/bin. Je crois que c'est une pratique courante depuis longtemps. Cette pratique augmente sûrement la probabilité de collision de nom de fichier.Structure de répertoire Unix: gestion de la collision de noms de fichiers

Depuis que ma recherche n'a pas donné de bonnes discussions à ce sujet, je me demande ce que les gens font pour gérer la collision de noms de fichiers? Est-ce qu'ils essaient simplement tel ou tel nom et si quelque chose ne va pas, un bogue est classé par l'utilisateur et le développeur choisit un autre nom? Ou préfèrent-ils simplement les noms de leurs fichiers? Quelqu'un est-il au courant d'une bonne discussion à ce sujet?

Répondre

4

Habituellement, les gens choisissent le nom qu'ils veulent et si quelque chose entre en collision alors le problème est résolu par la distribution. C'est ce qui s'est passé avec ack (ack dans Debian, convertisseur Kanji) et ack (ack-grep dans Debian, utilitaire de recherche de texte).

Les collisions ne semblent pas si fréquentes. Une recherche rapide sur le Web devrait vous indiquer si le nom est utilisé quelque part. Si ce n'est pas une recherche, elle n'est probablement pas incluse dans de nombreuses distributions, ce qui signifie que vous n'êtes pas susceptible d'entrer en conflit.

+0

Une collision peut se produire si vous souhaitez installer plusieurs versions du même programme *. –

+0

Ensuite, vous faites très probablement cela pour une raison spécifique. La plupart des changements de "grande version" peuvent coexister (comme "php4" et "php5") dans les distributions populaires. Les bibliothèques ont une solution de versionnement connue pour les versions majeures et mineures. Si vous avez besoin de vous recompiler et de gérer plusieurs versions simultanément, jetez un oeil à 'nixos' qui peut le faire, ou simplement l'installer dans'/opt/software-version' – viraptor

3

En général lors de la compilation des programmes, vous pouvez spécifier un chemin généralement préfixe comme ceci: ./configure --prefix=/usr/local/prog1 ou ./configure --prefix=/opt/prog1 (si vous utilisez /usr/local ou /opt n'a pas vraiment). Puis lors de l'exécution make install il va mettre les fichiers dans le chemin de préfixe spécifié. Vous pouvez alors soit 1) ajouter /opt/prog1/bin/ à votre PATH ou vous pouvez faire un lien symbolique vers le fichier exécutable dans /usr/local/bin qui devrait déjà être dans votre PATH.

La meilleure chose à faire est d'utiliser votre gestionnaire de paquets de distributions.

Questions connexes