I take my shitposts very seriously.

  • 9 Posts
  • 641 Comments
Joined 2 years ago
cake
Cake day: June 24th, 2023

help-circle



  • Ansible is an abstraction layer over system utilities, shell, and other programs. You can specify what you want to happen, and it will figure out how to do it. For example, you can use the ansible.builtin.package module to specify which packages you want to be present, and Ansible will decide which specific package manager module should handle it and how.

    Ansible tasks are also idempotent – they are concerned with the end state instead of the action. Many of the modules (like the package module above) take a state parameter with the possible values of present or absent (instead of the more common “install” and “remove” actions). If the system’s state satisfies the task’s expected end state (e.g. the package is already present), the task will be skipped – unlike a shell script, which would simply re-run the entire script every time.

    Ansible also implements strict error checking. If a task fails, it won’t run any subsequent tasks on the host since the end states would be unpredictable.



  • If the game comes in an archive (like portable Windows applications), you can simply copy the files to a directory and point Lutris at the executable.

    Compatibility has been pretty solid for me. There are only a few games that didn’t work out of the box (excepting those that are intentionally broken through anti-cheat). You can often get away with running games on Wine, but for most games you’ll want Proton. Lutris will detect and use Proton versions that are installed by Steam, copied manually into compatibilitytools.d, or it can download Wine and Proton releases on its own. There’s also GloriousEggroll’s fork with many game-specific fixes.

    ProtonDB and Lutris.net are the most useful resources, you can check if the anti-cheat solution might be an issue on Are We Anti-Cheat Yet?, Steam forum is a thing that exists, and you can ask in this community.


  • I’m going to assume you’re using official, paid-for GOG offline installers. Other installers will work the same way.

    I have a directory for non-Steam games mounted at /games. Every game has its own directory, and a game and prefix directory for the game content and the wineprefix respectively. For example, for Cyberpunk 2077 you would run mkdir -p /games/cyberpunk-2077/{game,prefix} to create the directory tree all at once.

    To install the game, I simply use wine to execute the installer with the prefix directory set as the wineprefix: WINEPREFIX=/games/cyberpunk-2077/prefix wine SETUP_FILE_NAME.exe. The root filesystem will be mounted as the Z: drive – use Z:\games\cyberpunk-2077\game as the install path.

    I use Lutris to launch the game. Add a new game, choose “Locally installed game”, then set the executable path to the game’s main executable, the working directory to the game directory (usually works, some games expect a different working directory), and the prefix to the prefix directory.



  • Systemd, through the systemctl command, only manages the services. The service itself is defined in a unit file, and it can come from any source, even written manually. The unit file is a text file that describes what the service is, what commands or programs should be executed when it starts or stops (for sshd it’s /usr/bin/sshd -D), what other services or conditions are required (e.g. multi-user.target after the OS has entered multi-user mode), and much more.

    When a package installs a unit file, it will be installed to a subdirectory in /usr/lib/systemd, typically user or system, and when it is enabled, it will be symlinked to a subdirectory in /etc/systemd.

    OpenSSH itself, which provides sshd on most systems, is developed by the OpenBSD team and ported to other OSes by the OpenSSH Portability Team.



  • Systemd is a collection of low-level system utilities. Its primary responsibility is managing services and serving as the init process (PID 1, the first userspace process started by the kernel), but it also has other components, like systemd-boot (a boot loader and GRUB alternative), journald (system logging), networkd (network interface management), resolved (DNS resolver), or udevd (manages device files in /dev).

    People tend to vilify systemd because it is maintained by Red Hat, a company with many controversies, and a pariah among the more extreme FOSS enthusiasts; and because it’s seen as bad practice to have a single entity be responsible for so many low-level system components.

    Note: the -d suffix is not exclusive to systemd things. It simply marks the program as a daemon, a long-running background process that provides some kind of service. For example, sshd (SSH server) or httpd (Apache server on some distros) are not parts of systemd.

    To answer your question: not really. As far as I know, the network interface won’t have an IP address unless the computer is turned on. If you use a timer (or any other method for that matter) to power on the computer, it will request an address from DHCP as soon as the interface is brought up (unless it has a static address).

    A more practical application would be scheduling long, unattended tasks, like updates or making backups.



  • Your dogwater arguments boil down to “it should support this specific configuration and fuck everyone else”. How is that different from a game being restricted to Windows? And how exactly does that solve the issue of still dedicating significant effort to support an even smaller set of devices?

    (edit) Actually, don’t answer that. Your comment is proof of your remarkable ignorance on the topic and anything else you have to say is a waste of everyone’s time.


  • It makes perfect sense to do this. You have no idea how much extra work it is to maintain a Linux-native version that works predictably across the entire range of Linux machine configurations. Factorio has one guy, raiguard (hallowed be his name), in charge of the Linux build, and he wrote a blog post about the unique challenges of supporting the Linux native build.

    Proton is already known to be perfectly capable of running most games as good as or even better than Windows. Game developers can defer the issue of compatibility and focus on developing the game instead of having to implement client-side decorations for GNOME users.


  • Perhaps there was an easier lighter-weight way of doing this?

    sshuttle does exactly that. It’s basically a VPN that uses SSH tunnelling. If you have a host in the same network as the target machine, and you can SSH into it, sshuttle can route all TCP traffic between you and the target (or a subnet) through the host without having to bind local ports manually.

    sshuttle -r ssh_server <targets/subnets...>