15 ms·
I really like the idea of snaps. I really don't like a lot of the execution decisions around them. Snaps break debain's stable release model. They allow upstre
by psanford 7y ago
I really like the idea of snaps. I really don't like a lot of the execution decisions around them.
Snaps break debain's stable release model. They allow upstream to ship updates outside of the normal 6 month ubuntu releases. There are times when you might want this, but it should be opt in not mandatory. I thinking specifically of lxd which is only shipped via snaps.
The snap store's trust model is confusing. Its hard to tell who is making the packages and how they are sandboxed. If I'm going to install a proprietary piece of software I want to know exactly what it can and can't do. Lately I've been using firejail when I need to run things like this.
And now for a minor complaint that also feels most user hostile to me: why do the snap developers think its ok to require a non hidden directory in $HOME? Seriously my home directory is MINE, if you have to store application state there at least have the decency to do it in a hidden directory.
- Avshalom 7y ago>And now for a minor complaint that also feels most user hostile to me: why do the snap developers think its ok to require a non hidden directory in $HOME? Seriously my home directory is MINE, if you have to store application state there at least have the decency to do it in a hidden directory. 4 years old now. https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1575053 https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1575053
- encom 7y agoUnrelated to Snap, but on Windows, trying to use the My Documents folder for your actual documents is frustrating, because a huge number of apps and games like to use the folder for all sorts of nonsense, instead of using %appdata% like they're supposed to.
- RMPR 7y agoThis behavior is such normal for all the apps (especially games) that at one point I thought it was a specification.
- CamperBob2 7y agoThe problem in Windows' case is that there never was a clear specification regarding what kinds of files should go where. The directory structure and environment in every version of Windows is a little different, and it's hard to write an app (or an installer) that does the right thing on all of them.
- Too 7y agoAs long as you follow knownfolderid nothing has changed since Vista, or CSIDL constants go even further back. https://docs.microsoft.com/en-us/archive/blogs/patricka/where-should-i-store-my-data-and-configuration-files-if-i-target-multiple-os-versions https://docs.microsoft.com/en-us/archive/blogs/patricka/wher... https://docs.microsoft.com/en-us/windows/win32/shell/csidl https://docs.microsoft.com/en-us/windows/win32/shell/csidl .NET has its own set which is also very old and goes back to .NET 1.0 (as old as Win98) https://docs.microsoft.com/en-us/dotnet/api/system.environment.specialfolder?view=netframework-1.1 https://docs.microsoft.com/en-us/dotnet/api/system.environme...
- CamperBob2 7y agoI think the combination of complexity and obscurity of those two links reinforces my point more than it refutes it. There's a reason why basically no one gets this stuff 100% right, including some of Microsoft's own first-party applications.
- Andrex 7y agoI feel like in 2000 or before, My Documents was the "home" folder and you were supposed to put your own subdirectories inside of that. Might be wrong about that though.
- jannes 7y agoAt least on Windows you can mark folders hidden without having to change the name. (i.e. the app that created the folder will still find it)
- abrowne 7y agoCreate the file ~/.hidden and with the line "snap". It will then be hidden from your file manager.
- im3w1l 7y agoIf it's still visible in ls, it's not a fix.
- snazz 7y agoMake an alias that adds ls --hide the same way you do for ls --color.
- jabirali 7y agoThe issue is that you have to continue "fixing" lots of individual utilities. In addition to your file manager and `ls`, what about tools like `fd`/`rg`/`ag` (requires adding `snap` to `~/.ignore` or `~/.gitignore`), `fzf` navigation in the terminal (may require updating `FZF_DEFAULT_COMMAND`), "open file" and "save file" dialogs in non-GNOME apps (like Zotero), and so on. The `snap` directory keeps popping up in new places, and discovering all the different ways to hide a non-dot-file is exhausting. In contrast, adding that initial dot to the `snap` directory would avoid the problem entirely. I have still been using `snap` for the past year, and have mostly been happy with it. It works well for apps like `spotify` and `zotero`, it's a better solution than `ppa` for third-party software, and I like that it tries to introduce a permission model. But not following the dotfile convention is annoying, and not prioritizing a search-and-replace of `~/snap` to e.g. `~/.snap` in the code after four years is strange when this is their most upvoted bug.
- laumars 7y ago
- badsectoracula 7y agoAFAIK one common reasoning is that it is a writable folder that is easy for the users to find when they need to contact support.
- Wowfunhappy 7y agoI've always liked OS X's concept of the Library folder, particularly back in Snow Leopard when it wasn't hidden by default. Applications need a place to save state, and you don't really want it to be hidden, because sometimes I as a user do need to change it manually for any number of obscure reasons. So you make a subfolder that's designated for apps to write to. There's no good way to put this into the existing Linux model though. All you'd do is add yet another standard a la https://xkcd.com/927/ https://xkcd.com/927/
- psanford 7y agoYou as a user can still access hidden directories. Most new applications are nice enough to respect the XDG specification.
- Wowfunhappy 7y agoOh, for sure, but it's mildly annoying. Especially when a . is used to make the directory hidden, because I can't unhide that specific directory without changing the name apps expect.
- brobinson 7y agoYou can press cmd-shift-g to open a "Go to folder" prompt which has some basic tab completion. This also works in file selection dialogs. Hopefully this saves someone as much time as it has saved me over the years. I get into the Library folder by doing: cmd-shift-g -> ~/Library -> enter
- mulmen 7y agoI don’t have any experience with snaps so this is all new to me. Snaps install software at a system level right? Why on earth would there be anything in a user home directory? What if you have multiple users? Does snap get confused?
- coolspot 7y agoSnap stores user-specific application data in /home/user/snap/ folder. Like when packaged application wants to write into $HOME, snap gives it some sub-folder inside /home/user/snap.
- mulmen 7y agoAh ok I understand now. Sibling comments reference the MacOS Library and *NIX ~/.local approaches. Both of those seem to make a lot more sense. Is there a config for Snaps to store user data in a different path, like ~/.local/snap/?
- jasonjayr 7y agoNo; they use some magic with security policies and mounts so $HOME/snap is hard coded. Some of the early comments in that "4 year old bug" linked here explain it.
- matthewbauer 7y agoMost likely they download some things when you first run the software. This pretty common but usually opaque to the user due to it being in .local or .cache.
- mceachen 7y agoSnaps run out of a squashfs partition, but the app may save app config in the user's home directory (if they request the HOME interface, I believe). After fighting with node, vlc and ffmpeg snaps not working reliably, I had to add a warning for my PhotoStructure users on Ubuntu to avoid those packages (and how to install them via apt). I agree with a bunch of people here: snap promises some great features, but in practice the horrible performance, additional resource consumption, and spotty reliability led to me actively avoiding snap packages and looking for an alternative installation.
- buzzert 7y agoDoes anybody know why lxd is shipped via snaps? It's kind of confusing, because it seems like snap should be built on top of lxd. If you're running a container inside of lxd inside of snap, does that mean it's two layers of sandboxing?
- bscphil 7y agoMy understanding is that the actual features needed to provide containers are part of the Linux kernel. What LXD provides is tooling and a daemon running as root that are used to manage containers. There's no reason why these can't be part of a snap, it doesn't introduce another layer of sandboxing for the actual containers. (That said, I would still prefer that they not be.)
- yjftsjthsd-h 7y ago> Snaps break debain's stable release model. They allow upstream to ship updates outside of the normal 6 month ubuntu releases. In fairness, I think that's the point, just like RHEL streams. > There are times when you might want this, but it should be opt in not mandatory. I thinking specifically of lxd which is only shipped via snaps. Yeah, decent idea, poor execution. Especially for system/infrastructure software like LXD. I want a stable kernel, a stable glibc, a stable LXD/Docker/k8s/whatever, and then on top, bleeding-edge applications that will not break the world if they autoupdate at random to a less-tested version.