-
-
Notifications
You must be signed in to change notification settings - Fork 563
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
Union/overlay "filesystem" using LD_PRELOAD #267
Comments
Just a quick look: unionfs_by_intercept seems to be only intercepting preload.c is definitely interesting, but, being just a https://wiki.debian.org/FakeRoot is also an interesting unionfs-fuse is absolutely great, but IIRC it starts a There was also a ptrace-based FS redirector somewhere. user-union (which I co-authored) was the most |
So when I was dealing with this (and that was long ago) |
The interesting thing is that you already had it in your Then it should build and work. |
Thanks. can you give your opinion on preload.c vs. user-union, do you see clear upsides/downsides of one over the other? |
Unfortunately I don't see a list of features of |
So if we are talking only about the FS redirection |
Well, as long as this ticket is called "Union/overlay "filesystem" using LD_PRELOAD" |
Kinda: I can use it to "overlay" the contents of the AppImage over / with the result that if I launch $APPDIR/usr/bin/foo and it calls /usr/bin/bar, then bar works. But strangely it seems to be half-implemented because a directory listing or file open dialog box for /usr/bin will ONLY show the contents of $APPDIR/usr/bin at /usr/bin but NOT in combination with the real /usr/bin... bug or feature or just not implemented? |
What is "then bar works"? |
/usr/bin/bar works; clarified my comment above. |
Is this really what you want?
If it doesn't run $APPDIR/usr/bin/bar then there is |
I think I like some aspects of user-union better, but it is much more complicated to use. What is great about preload.c is that a) it is just one file, b) you export one LD_PRELOAD variable and one UNION_PRELOAD variable and be done with it. In contrast, user-union comes with a convoluted bash wrapper script. Maybe you can help me to make it as easy? |
So what kind of overlay is this? |
I would like
Special directories like |
user-union supports mount points. I.e. you can overlay
Are you sure?
That's because user-union supports a very complex
Seems not implemented, same in user-union. :) |
You are right, I corrected my typo above. Yes, I'm sure user-union is much more powerful, maybe too powerful for our simple usecase? |
So I guess if you have just one mount To avoid the script, you can do the trick: -n will just print the needed env vars and exit. |
If you have just the basic requirements and
The description says: Doesn't sound like it supports overlay mounts. |
I just like to understand the options we have :-) |
Then you can try the -n trick of user-union |
Found an issue with This recipe does not work correctly with
The difference is that with With Unlike with Nor does it work with this recipe: |
We should try to find out why. Binpatch is pretty much a hack, using the union file system is cleaner and we don't have to apply this |
Also check https://github.com/Barthalion/hai which uses union-fuse and fakechroot. |
We experimented with this for klik 9 years ago:
https://www.winehq.org/pipermail/wine-devel/2007-November/060627.html
Someone else seems to have had some success with this idea:
http://algoholic.eu/unionfs_by_intercept/
deb2snap seems to be going down that path, too:
https://github.com/mikix/deb2snap/blob/master/src/preload.c
Actually the whole deb2snap thing could be massaged into a deb2appimage thing relatively easily, it seems.
Discussion:
https://lists.ubuntu.com/archives/snappy-devel/2015-February/000282.html
user-union:
http://www.dwheeler.com/user-union/ (thanks for the hint @stsp)
Or we could use FUSE:
https://github.com/rpodgorny/unionfs-fuse
CARE/PRoot:
https://packages.debian.org/unstable/main/care
"PRoot is basically better fakeroot-ng plus fakechroot, or schroot minus root privilege"
http://www.slideshare.net/cvinc02/proot-improvedkernelcompat
https://github.com/proot-me/PRoot
Unmaintained?
cde:
cde ls
creates an empty cde-package directory where I can add (not overwrite!) an AppDir, then run it with cde-exec appname. It does an overlay/unionThe text was updated successfully, but these errors were encountered: