Linux: système de fichiers insensible à la casse

13

Quelles méthodes existe-t-il pour rendre le système de fichiers Linux insensible à la casse?

J'ai des applications asp.net développées sur Windows, mais il y a toujours des problèmes de capitalisation / orthographe sur mono lors de la mise sur Linux.

Une façon consiste à monter un partage SMB localhost sur / var / www. Y en a-t-il d'autres?

Dilemme
la source
14
Ne serait-il pas plus facile de réparer l'application que de pirater le système d'exploitation pour contourner l'application cassée?
Aaron Tate
2
Si cette application Web est diffusée via apache, vous pouvez utiliser mod_speling.
Zoredache
2
Cela ressemble à un cas assez évident de "Ou vous pouvez apprendre à vos développeurs Web à être cohérents avec leur nom de fichier, sous peine de douleur"
Shadur

Réponses:

15

Si vous parlez de l'insensibilité à la casse UNIQUEMENT dans les applications fonctionnant sous Mono, vous pouvez utiliser la IOMAPvariable d'environnement pour dire à mono d'ignorer la casse comme Windows le fait.

Voir les détails sur son utilisation ici: http://www.mono-project.com/IOMap

tylerl
la source
15

Il y a un pilote ext3 insensible à la casse , mais, franchement, l'exécution d'une telle chose en production me ferait un peu peur, car vous lancez votre propre noyau personnalisé avec des pilotes corrigés. (Ouais, ouais - nous l'avons fait tout le temps "dans la journée", mais c'était, comme, 1997 ...)

Il existe une implémentation FUSE, ciopfs , qui implémente également l'insensibilité à la casse. Ce serait beaucoup moins effrayant pour moi d'utiliser en production qu'un noyau corrigé.

Vous pouvez également utiliser un système de fichiers insensible à la casse, comme VFAT, pour la /var/wwwhiérarchie des dossiers. J'utiliserais un montage en boucle dans ce cas, de sorte que vous n'ayez pas à vous soucier du partitionnement de votre disque.

Evan Anderson
la source
ciopfs est de la merde, je l'ai essayé, il ne fait que mapper les minuscules en minuscules, en ignorant les majuscules ...
Quandary
1
@Quandary Run awk '/^ciopfs/ {print $2}' /proc/mountset qui affichera le nom du répertoire à utiliser. Après avoir exécuté, ciopfs a/ b/vous ne devez pas accéder ni modifier les fichiers sous a/.
@Quandary la contrainte minuscule est écrite directement sur la page du projet et est assez évidente tbh, avez-vous essayé de l'améliorer pour gérer votre cas d'utilisation ou au moins RTFM avant utilisation?
Michael Shigorin
8

Nécromancement.
Répondre à ma propre question.
C'est en effet possible.
Variante 1:
Créez un fichier .dsk de taille X-MB (avec dd), puis créez un système de fichiers JSF sur ce fichier, avec l'option O (compatibilité OS2 - = insensible à la casse)
Puis montez en boucle ce fichier dans un dossier souhaité .

(apt-get install jfsutils)
dd if=/dev/zero of=jfs.dsk bs=1048576 count=150
mkfs.jfs -O jfs.dsk
mkdir -p /mnt/jfs
mount /volumes/jfs.dsk /mnt/jfs -t jfs -o loop
umount /mnt/jfs/

Variante 2:
lorsque vous installez le système d'exploitation, partitionnez manuellement le disque et créez une autre partition au format JFS, que vous montez à l'endroit où vous le souhaitez.
Lorsque tout est opérationnel, vous pouvez reformater cette partition avec (avertissement - cela effacera toutes les données sur cette partition - assurez-vous que vous avez sélectionné la bonne, et que vous n'avez pas encore de données dessus):

démonter la partition montée

umount /web

reformater:

mkfs.jfs -O /dev/hda5

remonter la partition

mount /dev/hda5 /web

Maintenant, lancez

blkid

et vous obtenez le nouveau partition-uuid.
Allez maintenant dans / etc / fstab et remplacez l'ancien uuid pour / dev / hda5 par le nouveau.

Si vous vous trompez, consultez également
Bienvenue en mode de démarrage d'urgence ...

Dilemme
la source
Vous vous occupez donc de cela depuis sept ans et demi?!?! On pourrait penser que les "développeurs" avec lesquels vous avez affaire seraient sortis de l'école primaire / élémentaire.
Andrew Henle
3
@Andrew Henle: Non, nous avons en fait choisi une autre solution - une partition Windows sensible à la casse (ext3). Maintenant, le problème a refait surface avec .NET Core, et c'est la solution que j'ai trouvée. Maintenant, j'ai une partition Linux insensible à la casse sans avoir besoin de fusible / ciops, smb, hfs / hpfs +, un extX-fs piraté, un montage en boucle ou quoi que ce soit de ce genre. C'est la bonne façon. Et jusqu'à présent, personne n'a répondu à la question de manière satisfaisante au cours des 7 dernières années, alors j'ai pensé que oui.
Quandary