Mon entreprise revend une application dont le nom de marque est mixte, par exemple "ApplicationName".
Le programme d'installation de l'application crée tous les chemins et noms de fichiers dans cette norme. Par exemple, le répertoire principal est /opt/ApplicationName
, le fichier init est appelé ApplicationName
donc je dois exécuter service ApplicationName status
et ainsi de suite.
Pour moi, cela rompt toutes les conventions sensées et je pense que les fichiers et répertoires devraient tous être en minuscules (il existe un précédent dans d'autres applications telles que MySQL, dont les fichiers et les répertoires sont tous appelés mysql
, même des applications comme Apache et Tomcat suppriment les précédentes). lettre majuscule).
Si je soulève cela comme un rapport de bogue, j'aimerais présenter un argument plus fort que simplement "je pense que c'est faux". Est-il donc dicté dans quelque chose comme la norme POSIX que les fichiers système comme celui-ci doivent être en minuscules?
la source
Réponses:
La norme POSIX a une section avec des directives pour les utilitaires conformes (c'est-à-dire, "tels que ceux écrits spécifiquement pour un système local ou qui sont des composants d'une application plus grande") qui dit
[ref: 12.2 Consignes de syntaxe utilitaire ]
On ne sait pas pour moi si l'utilisation des mots « devrait inclure » signifie vraiment « devrait seulement inclure ». (Le consensus dans les commentaires ci-dessous est que cela signifie "ne devrait inclure que").
Une application sur un système Unix qui ne prétend pas être un utilitaire conforme POSIX peut autrement utiliser le nom qu'elle souhaite. Si elle ne prétend pas être un utilitaire conforme POSIX qui fait partie des utilitaires shell POSIX , le texte après les directives de l'article 12.2 indique que « devrait » modifications sens à « doit ».
Pour autant que je sache, il n'existe pas de directive similaire concernant les noms de répertoire. macOS (qui est un produit UNIX 03 certifié lorsqu'il s'exécute sur un ordinateur Mac à processeur Intel) utilise
/Users
comme préfixe les répertoires personnels des utilisateurs, par exemple, ainsi qu'un certain nombre d'autres noms de répertoires à casse mixte.la source
should
comme suit: "Pour une implémentation conforme à la norme IEEE Std 1003.1-XXXX, décrit une fonctionnalité ou un comportement recommandé mais non obligatoire. Une application ne doit pas s'appuyer sur l'existence de la fonctionnalité ou du comportement. Une application qui s'appuie sur une telle une fonctionnalité ou un comportement ne peut être assuré d'être portable sur des implémentations conformes. Pour une application, décrit une fonctionnalité ou un comportement qui est une pratique de programmation recommandée pour une portabilité optimale. "Non, les noms en minuscules ne sont pas spécifiés pour les répertoires d'installation des packages logiciels.
En fait, historiquement, les progiciels installés dans ont
/opt
commencé avec le symbole boursier de toutes les capitales de la société fournissant le progiciel, commeSUNW
pour Sun Microsystems ouORCL
pour Oracle.Ainsi, des packages tels que le système de fichiers QFS de Sun seraient installés dans un répertoire nommé quelque chose comme
/opt/SUNWqfs
.la source
should
essentiellementit is recommended
Outre les directives POSIX, je pense que cela pourrait avoir encore plus de poids dans la tradition des utilisateurs. Les noms de cas comme "ApplicationName" sont devenus populaires avec l'explosion des wikis, habituant certaines personnes (comme moi) à utiliser des majuscules au lieu des tirets, ou pire, des espaces. Mais c'était quelques années après que Linux et les systèmes d'exploitation similaires soient devenus populaires, avec une très longue tradition Unix derrière.
Cette tradition a été (est) toujours la simplicité, non seulement pour suivre les règles que Kusalananda a pointées, même en abrégeant des mots de quatre à six caractères seulement (par exemple,
/usr
pour "utilisateur", ou/srv
pour "servir" ou/mnt
pour "monté") et des significations évidemment plus longues (/sbin
pour les "binaires superutilisateur". Dans cette tradition, en majuscules, vous forcer à appuyer sur la touche Maj, et peut-être accidentellement aussi sur la touche de verrouillage des majuscules, est tout simplement mauvais.Dans une certaine mesure, cela est étonnant car Unixes a été pendant longtemps capable d'écrire des noms de fichiers longs sensibles à la casse, alors qu'en revanche, MS-DOS / Windows était limité aux noms de fichiers courts insensibles à la casse (huit caractères plus trois pour l'extension) mais a rapidement perdu cette simplicité ("Program Files", "My Documents", etc.) lorsque Windows 95 dépasse cette limitation.
Néanmoins, il existe aujourd'hui quelques exceptions comme le
NetworkManager
démon et nous verrons probablement plus de WikiWords à l'avenir. Mais nous détestons toujours la souris et écrivons dans les noms longs du terminal que vous ne pouvez terminer qu'avec l' TabTabautocomplétion. Ou quelqu'un voir un avantage renommantvim
àVisualImproved
?la source
/usr
n'est pas un raccourci pour "utilisateur". C'est un raccourci pour "ressource système Unix"/usr
était à l'origine le répertoire contenant les répertoires personnels des utilisateurs (comme/home
aujourd'hui). Je suis d'accord avec Hobbs.My Computer
n'est pas et n'a jamais été un répertoire. C'est purement une construction shell; vous pouvez l'illustrer en considérant comment, dans une invite de commande ou dans une ancienne application Win16, vous y naviguerez.Program Files
est un gâchis qui lui est propre, avec son nom localisé; J'ai rencontré ce problème hier , littéralement , où un logiciel supposait le nom anglais deProgram Files
mais le nom réel tel qu'il était utilisé était localisé sur le système. Probablement l'une des pires gaffes de Microsoft dans Windows 95./usr
etUnix System Resources
Et, oui, dans les premières versions d'Unix, les répertoires personnels des utilisateurs vivaient également sous `/ usr '