hgm wrote:syzygy wrote:hgm wrote:This CentOS is a bit fishy anyway: make install did crash on it not being case sensitive in file names, so that the command "cp [a-z]* ..." also tried to copy the directory CVS, which produced a fatal error.
What filesystem is being used there? FAT?
Well, I really don't know anything about CentOS or the system at all. It is a VPS that I heve been given the password for, and I access through ssh. I had never heard of CentOS, and don't even know it is a genuine Linux, or just a look-alike like Cygwin. In Cygwin I don't have case sensitivity.
Maybe it is indeed a FAT system. I understand that on a VPS you would be able to configure your own system. I have no idea why anyone would choose FAT for file system, but perhaps they did.
One thing is sure, though: I could not get the 'make install' for the ICS to complete without first deleting all the CVS directories from the source tree.
CentOS is a popular derivative of Red Hat Enterprise Linux. You technically could use a case-insensitive file system for /home on just about any Linux distribution, but it's a foolhardy decision and you'd have to go well out of your way to make it. On the other hand, modern systems will often set a UTF-8 locale by default, which is why I offered that explanation.
This is an aside for anyone who's really curious about this side issue. (I was.) Being in a case-insensitive file system doesn't even make a matches like "[a-z]*" case-insensitive! When the shell matches patterns, it doesn't really know the details of the underlying file system. Here's the experiment I ran:
Code: Select all
[root@coconut ~]# LANG=C
[root@coconut ~]# dd if=/dev/zero of=fs_image count=1024
1024+0 records in
1024+0 records out
524288 bytes (524 kB) copied, 0.0048851 s, 107 MB/s
[root@coconut ~]# mkfs.vfat fs_image
mkfs.vfat 3.0.12 (29 Oct 2011)
[root@coconut ~]# mkdir mount_point
[root@coconut ~]# mount -o loop fs_image mount_point
[root@coconut ~]# cd mount_point/
[root@coconut mount_point]# touch a A b B
[root@coconut mount_point]# ls
a b
[root@coconut mount_point]# ls [a-z]*
a b
[root@coconut mount_point]# ls [A-Z]*
ls: cannot access [A-Z]*: No such file or directory
The "touch" command only created two files, since I was in a case-insensitive filesystem. But [A-Z]* didn't match anything, because the two files in there reported lower-case names. If a program tried to open "A", though, it would open "a".
Moral: Unix tools + case-insensitive file systems can lead to brain damage.
