-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make install doesn't complain when files cannot be overwritten #2
Comments
This issue seems related Homebrew/legacy-homebrew#8224 AFAIK make in Homebrew uses DESTDIR /usr/local/Cellar/fuse4x/0.8.12 and "make install" installs in this directory without any problem. Then Homebrew creates a symbolic link from /usr/local/Cellar/fuse4x/0.8.12/.. to /usr/local and I suspect that Homebrew fails here. I don't know why but maybe because of permissions (e.g. previous macfuse files were creates by root). I need to check it. |
My suspicion was correct. Homebrew uses --prefix equal to /usr/local/Cellar/fuse4x/0.8.13 and all files (*.pc, headers) are installed in that directory. Then Homebrew creates symlinks (see "ls -l /usr/local/lib/pkgconfig/fuse.pc") and it is where it fails. Homebrew cannot create these links. It is weird because "brew link fuse4x" that aims to fix symlinks shows warning in case if it cannot do it. Do you say that "brew install fuse4x" (or brew link) failed without showing this warning? As of your article - I think the correct way to fix was: brew uninstall sshfs (sshfs was compiled against macfuse, so we need to clean it first) sshfs will be linked against fuse4x, and fuse4x userlib knows where fuse4x kext is stored - thus it'll load it (not macfuse). |
Thanks for the update. brew install fuse4x completed without apparent errors AFAICT. I uninstalled and installed multiple times, and it still left the original files intact. I do think your suspicions about the root permissions make sense; my copy of macfuse had been installed with a third party tool, and I wasn't aware of its presence when I first installed fuse4x. |
If a previous install of MacFuse or a similar package was made, and not fully uninstalled, the make install action does not detect the leftover files and may not update them when run under normal user permissions.
After installing, when this problem scenario occurs, the following error may be seen:
$ sshfs [email protected]: ~/mnt/mysite.me
/Library/Filesystems/fusefs.fs/Support/fusefs.kext failed to load - (libkern/kext) link error; check the system/kernel logs for errors or try kextutil(8).
the MacFUSE file system is not available (71)
Investigating turned up that the fusefs.fs file was left-over from MacFUSE that had been installed in a previously uninstalled tool:
$ ls -ld /Library/Filesystems/fusefs.fs
drwxr-xr-x 4 root wheel 136 Dec 19 2008 /Library/Filesystems/fusefs.fs
I found this when attempting to install fuse4x through homebrew, but since homebrew is just invoking make install, I'm logging this here to provide some notice. (A more full explanation is at http://www.unityisplural.com/2011/11/getting-fuse4x-installed-on-osx-lion.html)
It would be helpful and perhaps save someone a bit of grief if the make install directive checked and reported whenever the files it is attempting to install cannot be written.
The text was updated successfully, but these errors were encountered: