systemd / zram-generator

Systemd unit generator for zram devices
MIT License
575 stars 48 forks source link

provide a sane, usable default setup out of the box #151

Closed fabiscafe closed 2 years ago

fabiscafe commented 2 years ago

Hi. I just found out about the project and wanted to try it. Just after visiting the git readme I completely lost interest in it because there is something I need to configure that I don't know anything about. Instead of just leaving I want to give this some form of feedback from a "stupid users viewpoint"(my words)

I think that zram-generator should come with a usable configuration right out of the box. After installation the maximum a user should have to do is to enable/start the service. It's very nice that zram-generator can do many things and does have a lot of options and/or advanced features, but it would be even better if it would do anything right away, without configuring something.

In short - remove this: https://github.com/systemd/zram-generator/blob/main/README.md#tldr and replace with something like

  1. install zram-generator
  2. systemctl enable --now zram-generator

I hope you can get my point. I think it's a great project and from what I think it does would be beneficial to a lot of systems. :+1: Just the starting point is a little to steep.

nabijaczleweli commented 2 years ago

Installation

It is recommended to use an existing package:

The tl;dr instructions are for manual installation, which is noted below the packages. Your distributor will provide a default (and, also, what on earth would systemctl enable zram-generator even do?).

Where do you think we should put the "install a package" spiel so that it's more prominent? (I don't think that's even possible but maybe I'm insane.)

keszybz commented 2 years ago

There's a contradiction in the request: if you want to use the package, the option that handles almost all reasonable cases is to use a popular distribution and just install the package for that distribution. That is why we document this first in the readme. If your goal is to learn, then OK, it makes sense to clone the repo, and install the compiler, and learn how to compile the package. But in that case we shouldn't provide overly detailed instructions: if the point is too learn, then select&paste into the terminal is not useful. You actually need to figure out things on your own.

There is also a third possibility: that you actually want to use the package, but want to download and compile things on your own. This is a pattern from the 90's that really needs to die. All those READMEs on the web that focus on installing things by hand and figuring out dependencies and the compiler and installation paths and whatnot, just duplicating in an inferior way the packaging done by the distribution, are just doing a disservice to their users. Such operations are suitable for development and learning and as developers of the program we do that on our development machines. The error is in thinking that if something is a reasonable practice you do as a developer it is also something to recommend to your users. No. It doesn't make sense, it doesn't scale to the thousands of programs you need on a normal machine, it doesn't do upgrades, it doesn't support uninstallation, the result hasn't gone through Q&A, and it duplicates the work for each user. Please just install the package.