Skip Navigation

Everytime I try to start something with Linux I fail.

I just want something as a proof of concept that this can be for me. I am aware I am the problem.

But everything is wildly difficult for me. I pulled back from docker after realising it was above my skillset, I just want to try home assisstant with a few lights but fair enough it is beyond me.

I opted to install a game, fail. Learn about wine and bottles. Start a bottle and get told I only have 8gb free in directory, I cannot for the life of me see where it is getting that from.

Please god someone tell me there is a step by step for the fucking imbeciles out there on where to start!?

114 comments
  • Don't feel bad, I've used Linux since 1995 and don't have enough skills to use Bottles.

    I do however game a lot, using mainly Steam and Heroic. You can try to start there.

    • I did get the Heroic Flatpak on my first install but it wouldnt do wat I needed with emulators...cant remember what it was, I think pcsx2 related.

      I used Lutris and it worked great but I am struggling on this install to get it back to where I had it.

      Also do you rcommend flatpaks always or just for beginners? I have both firfox and firefox FlatPak installed and same for a few other softwares.

      • Why do you want to run emulators through Heroic? Most emulators run natively on Linux, most of them are available as flatpaks or native packages.

        I feel like you're trying to do too much at once. Installing Linux for the first time and immediately trying to use and understand containers and virtualization is like trying to fly a fighter jet after getting your first drivers license lesson. For example, Docker is useful in server contexts when you want independent, isolated servers running next to each other on the same physical machine, much less in desktop environments.

        Take the time to understand the concepts first. Proton/Wine are translation layers that let you run Windows applications/games on Linux almost as native applications, Steam and Heroic are storefronts to download and install paid games, Docker/Podman are used to run containers, virtual machines are fake computers inside your real computer that can be easily managed with Gnome Boxes for example, etc.

        My take:

        For gaming:

        • run emulators as native Linux executables
        • use Steam + Proton to install and run most windows games (even non-steam ones)
        • use Heroic exclusively to install games from Epic and GOG. Run them through Steam if you want.
        • use Lutris as la last resort as it's the least plug-and-play option out there
        • avoid plain Wine

        For Windows applications:

        • install a windows virtual machine in Gnome Boxes, install and run those programs as usual in the VM. Performance will suck.
        • only use Wine/Bottles when you understand how they work.
      • I use Flatpaks for a lot of stuff (Steam, Firefox, and some other stuff that I feel should not have access to my tax returns in the Documents directory). It's not just for beginners, Flatpaks are useful for other reasons.

  • I have fucked up my computer so many times.

    • Accidentally uninstalled the graphical environment, because i didn't notice my package manager was asking me if i wanted to uninstall 200 packages, along with whatever i actually wanted to uninstall.
    • Tested a fork bomb (it worked!)
    • Installed a dual boot system incorrectly.
    • Installed a dual boot system correctly, but Windows had an update.
    • Tried to switch out a working component with Something Really Cool™
    • I have spent days troubleshooting an issue that turned out to be a simple syntax error.
    • And, while technically not fucking with the computer itself, this deserves a mention; Fucking up the wifi/network SO MANY TIMES.

    I have also succeeded with some really cool stuff, but that's the thing about working with computers; you fail completely, until it works perfectly. This is of course a gross simplification, but it also has a lot of truth to it. There's just not a lot "this is not great, but it will do", it either functions or it fails (until you get it working and start fine tuning it for the rest of you life)

    Just laugh at the absurdity of the situation when you realize you were just missing a comma in a JSON file, and don't let it bother you that you didn't notice before you paid to have your second floor covered in aluminium foil trying to fix the issue.

    Try creating a VM in GNOME Boxes (if you use GNOME) or Virt-manager, take a snapshot, so you can easily repeat this process, and break it. Just make it stop functioning. Do it in an interesting way, and look up more ways on the internet.

    Be curious, have fun and don't feel bad about getting sick of that stupid computer, you can come back later and it won't care that you even left.

    • Hahahahahahaha, you're a... tech "miracle"! For the 10 years with Linux I've never uninstalled the DE by accident or otherwise, or any of the other problems you mentioned. I have fucked up my computer only once but I did it on purpose - to see what will happen. I had already created a clonezilla backup of a working system, so I was free to experiment and... I decided to uninstall both kernels (rolling and LTS) and reboot. There was no kernel panic because there was no kernel to begin with. 😆

    • My personal favorite was the time I accidentally gave every file in the system full permissions because I fucked up somehow with writing a command and recursively changed them on EVERYTHING instead of just the one directory I wanted to change

      I was just trying to get a game from Origin (I think?) to work and I don’t remember what lead me to trying this but basically I just had to reinstall Linux

  • I too am very cautious of getting stuck with Linux. I try to be sure I'm not doing things the hard way. I have found easy distros and easy ways to do most things in Linux despite many people suggesting I do it the IT pro way that they do. Usually because they haven't investigated easy ways for non IT users. They mean well, but don't know about usability or if there us an easy way.

  • Id suggest watching the videoes of LearnLinuxTV on Youtube, he covers linux on a very basic level, hes got loads of videos on a vast amount of different topics.

  • If I were you, I'd make sure to tackle one thing at the time, and set aside some time to figure it out, where the goal is not to for instance play games, but set up a game for play later. That way you can focus on the first part, instead of trying to rush that. So for example, when you are trying to set up Home Assistant, spend time just getting Docker to work first. I've fallen into that trap many times before, where I ended up not reading the messages properly because I was impatient and just wanted to get to the end fast. Once you get more familiar with Linux, this stuff gets quicker because more of the steps involved with any task is familiar to you already, and the troubleshooting threads you find on different forums are less Greek.

    For specifics:

    1. For Docker, when you feel ready to try that again, I'd recommend setting it up together with a GUI, like Portainer. If you follow the official guides to install Docker and then Portainer, you should have a web UI accessible that makes dealing with containers easier. I generally like doing things in the command line, but for containers, I prefer to have a GUI.
    2. When it comes to Home Assistant, I'd honestly go for either Home Assistant Green or Yellow from Nabu Casa (you'd support the Open Home Foundation directly this way). If you want to set it up yourself, I'd go the route of a dedicated single board computer, like a Raspberry Pi, and use Home Assistant OS. I tried to set it up as a container as well before, but there are certain limitations you avoid by just running their OS directly on dedicated hardware. It's been running smoothly for me since I set it up on my Raspberry Pi 4.
    3. It is good to learn about Wine and Bottles, but I'd start out with Steam (and Proton), Heroic and Lutris. I've had much headaches getting stuff to run properly on Heroic and Lutris, but I think the trick here is to avoid Flatpaks for these sorts of things, because there are many dependencies, and you are dependent on a good permissions setup for Flatpaks. Your mileage may vary though, I'm sure there are plenty of people with painless experiences with Flatpaks here.
  • Ok, lots of answers focusing on the game, so I think you have plenty of suggestions on what to try there. That being said I have never heard of bottles, I've used raw wine and PlayOnLinux before Steam integrated Proton so now I just use that.

    For docker it can be daunting, and home assistant is not an easy thing to setup. The thing with docker is that it can be very complex, but you don't have to worry about the majority of it. I assume you have docker installed, enabled and your user is in the correct groups. Unfortunately Mint/Ubuntu don't have docker in their normal repos so you probably had to add the docker PPA and install from there. Let's run a couple of commands to ensure all went well:

    sudo systemctl status docker

    This should show you the status of the docker daemon, and it should say that it is Active. If you get a no such service type error then docker is not installed, if it's not shown as active then the daemon is not started and can be done so by running sudo systemctl start docker (and you can replace start with enable for it to happen at boot). If it's Active then awesome, let's check that your used can run docker commands, try running this: docker run hello-world if that fails but sudo docker run hello-world works then your user doesn't have access, you want to add your user to the docker group sudo usermod -aG docker $USER and reboot.

    Ok, docker hello world is working, what now? Now, I assume you have some idea of what docker is, but in a (wrong but simple) way you can think of it as virtual machines. Let's try to run some cool stuff in it, there are two main ways, running a long complicated command, or writing those parameters on a file and running a simple command. This file is called a compose file, and should be named compose.yaml or docker-compose.yaml. let's try that, create a folder called silverbullet (just because that's the service we will try, it is a note taking app that I really like) and in there create a file compose.yaml and write the following content there (everything starting with # is a comment I added explaining what that does, and can be removed if you don't want it):

     yaml
        
    # This defines all of the services we want to run
    services:
      # This is the name of the service, it can be whatever you want
      silverbullet:
        # The image is the actual thing you want to run
        image: ghcr.io/silverbulletmd/silverbullet
        # This tells docker to restart the service if it closed for whatever reason, unless you specifically tell it to stop
        restart: unless-stopped
        # This will set environment variables inside the docker.
        # different services might require different environment variables set
        environment:
          # silver bullet uses SB_USER environment variable to set user/password for the main account. We're setting user to admin and password to 123 here
          - SB_USER=admin:123
        # This maps outside folders to inside folders so that your docker container can access them
        volumes:
          # Here we're telling it that the ./data folder should be accessible in the /space folder inside the docker
          # silver bullet stores stuff in the /space folder, so by mapping it to the ./data folder we can keep that data between runs
          - ./data:/space
        # This tells docker to map ports from the inside to your host machine, this allows you to access the docker container as if it were running on your machine
        ports:
          # This tells it to map the internal port 3000 to the external port 5000, so accessing http://localhost:5000/ from your machine will in fact access the same as http://localhost:3000/ inside docker
          # Silver bullet runs on port 3000, so we need to expose that port
          - 5000:3000
    
      

    Uff, that was a lot, but we're done, now just run docker compose up -d (up to start -d to run as a daemon, i.e. in the background) and you should be able to access http://localhost:5000/ and get to Silver bullet logging in with admin 123, then if you write about something you will see files appearing in the silverbullet/data folder.

    I know that this was a lot in one go, but I chose Silver bullet because it touches all of the most common stuff you'll need and it's easy to get going.

    Good luck with your self hosting journey, and don't hesitate to ask if you have any questions.

114 comments