Floogen / Stardrop

Stardrop is an open-source, cross-platform mod manager for the game Stardew Valley.
https://floogen.gitbook.io/stardrop/
GNU General Public License v3.0
114 stars 31 forks source link

Can not install, I have tried different ways and it does not work. #136

Open EldoMalling opened 11 months ago

EldoMalling commented 11 months ago

Simply put I have Linux Mint, I am new to Linux so I don't know how to fix this myself. Any help you can provide me would be great because I loved using your program on Windows. The one error I see when I drag Stardrop.sh into the terminal says that chmod can not access or find Internal and that it does not exist.

ternn commented 9 months ago

I'm new to Linux too and I'm having the same issue. I'm trying to install Stardrop on Steam Deck in desktop mode. Any help would be appreciated! image

Adda0 commented 9 months ago

Hello.

TL;DR: Type cd /path/to/stardrop/directory/with/Stardrop.sh/in/it before running the script Stardrop.sh. In @ternn's case, type

cd /home/deck/Downloads/Stardrop/

in the terminal and hit enter. Then try to run the script Stardrop.sh again with

./Stardrop.sh

You will have to cd (change directory) into the directory each time when running ./Stardrop.sh.

Explanation: The file Stardrop.sh is a simple script that make the executable file Internal runnable in the system. The script Stardrop.sh sets the file Internal as a runnable on line 2 and tries to run the script immediately after on line 3. The problem is that it tries to run the file in the current working directory (that is the ./ part in front of Internal in the script). The error messages @ternn shows (I suppose this is the same for @EldoMalling) tell you that within the current working directory, which in @ternn's case is ~ which is a shortcut for /home/deck/ (the currently logged-in user's (called deck in this case) personal directory), it cannot find the file Internal. That makes sense because you are in the directory ~/, that is, /home/deck/, not in ~/Downloads/Stardrop/, where the files are. That is why you have to move to the directory ~/Downloads/Stadrop/ first instead. Running ./Stardrop.sh is now working with the current working directory ~/Downloads/Stadrop/ where running ./Internal finds the file Internal correctly.

Improvement: If you don't want to run cd each time, replace ./ on both lines 2 and 3 with your path to the Stardrop directory. In @ternn's case

#!/bin/bash
chmod u+x /home/deck/Downloads/Stardrop/Internal
/home/deck/Downloads/Stardrop/Internal

This script would instruct Linux to make the executable file located at ~/Downloads/Stardrop/Internal runnable (you actually need to make it runnable only once, but it is not a problem if you make the executable file runnable repeatedly), and then run the file located at ~/Downloads/Stardrop/Internal afterwards.

Have a great day and happy modding :heart:

ternn commented 9 months ago

Thank you! That helped, but then I ran into a different problem: "no usable version of libssl was found." I tried following the instructions for a different ticket here (which was for a different OS) but that didn't work. Any advice on installing this package on Steam Deck? image image

skyhy commented 9 months ago

Same issue here on steam deck. Needs libssl 1.1

Adda0 commented 9 months ago

Right. libssl1.1 strikes again. We should really do something about this hard dependency on libssl-1.1.

I do not have a Steam Deck to verify this, but I use an Arch-based distribution on my PC. I think this could be solved by running

sudo pacman -S openssl-1.1

which installs libssl of version 1.1 on your system. Press enter, enter your password, and do not press enter again (the last line printed should be :: Proceed with installation? [Y/n] where you will cancel the command with Ctrl + c). Show the output printed by the command so far, please. I want to see whether there are any conflicts listed in the output or not (there should be none). It should give you the following output:

$ sudo pacman -S openssl-1.1    
[sudo] password for deck: 
resolving dependencies...
looking for conflicting packages...

Package (1)       New Version  Net Change  Download Size

core/openssl-1.1  1.1.1.w-1    5.50 MiB       1.76 MiB

Total Download Size:   1.76 MiB
Total Installed Size:  5.50 MiB
Net Upgrade Size:      0.00 MiB

:: Proceed with installation? [Y/n] ^C
Interrupt signal received

And just as a test, try running

ls -lah /usr/lib/ | grep libssl

and show the printed output.

Explanation: libssl is some system library (system "program") allowing other program to do some useful stuff. Its newest version is 3.something while Stardrop needs an older version 1.1. The older version can be installed to your system if needed, as in this case.

Steam Deck uses an Arch-based distribution of Linux. The only relevant difference between Linux distributions like Pop!_OS, Linux Mint, or Fedora Linux mentioned in #90 and the issues linked there, and the distribution used by Steam Deck, is that each uses a different package manager (the program which installs and updates the software on your system; called apt for Pop!_OS and Linux Mint, called dnf for Fedora, and called pacman for Arch-based Linux distributions).

So if we want to install libssl, we need to use the package manager Steam Deck uses, which is pacman, hence the command running packman to install libssl: sudo pacman -S openssl-1.1 listed above. sudo is just a program which checks that the user knows the system administrator password in order to do some system-related operation, like installing a program (libssl in our case). sudo is basically the same as that password window pop-up shown on Windows, for example.

ternn commented 9 months ago

Thanks! Here's the readout: image image I had to disable the read-only file system (I followed instructions here) and download a keyboard program that had a CTRL key (I used CoreKeyboard). Now when I try to install, I get this: image

Adda0 commented 9 months ago

Oh, I am so sorry for putting you through this. I have completely forgotten that Steam Decks don't have, for example, Ctrl key, or that they have read-only systems still set when dropping to desktop mode. Well done for how you managed to resolve the issues in between.

Warning: The following instructions will install a package and write into your system filesystem. It is an operation which could potentially cause some problems with Steam Deck preconfigured system (I don't think so, but what do I know). Proceed with caution and be aware that, as with every installation of new software, as when installing a program from Windows store on Windows, for example, something might break.

OK, all seems well and everything looks how I suspected. No conflicts or problems with the installation of libssl1.1 are shown, and you have on your system only libssl version 3 installed (by the output of the last command). You can now run the full installation of libssl1.1, that is, run

 sudo pacman -S openssl-1.1

And instead of stopping the installation before it can actually run, you can press enter again when asked with

:: Proceed with installation? [Y/n]

Explanation: Running Stardrop.sh again did not work because you have just updated the package manager data containing a list of installable software from the package manager "software store" (called repositories") (by running the steps from the instructions). By pressing the Ctrl + c, you have stopped the installation of libssl1.1 before it actually run. No warnings about conflicts were issued, however, so it seems that you can install libssl1.1 without any issues.

If we fail here, I might install SteamOS on my machine locally and try to solve the issue myself. An alternative solution will be downloading the libssl1.1 file manually and putting it where it needs to be in the filesystem manually as well. We will see.

skyhy commented 9 months ago

When following the above instructions, the install does work and stardrop will install/launch.

There is another issue now in that when the Steamdeck updates, it will purge all the changes that were made when readonly mode was disabled. I just tested this and it kills stardrop after an update, so this process will have to happen every time there is a system update. Not ideal but at least there is a way to get things running.

Adda0 commented 9 months ago

I suppose Steam Deck has some kind of user data folder that does not get purged. Like your /home/deck folder or similar. Is that so? Like the folder where you extract the Stardrop files, for example.

If so, we could just manually download the library file, put it somewhere where it will be safe from Steam Deck updates, possibly write a script to help Stardrop.sh to find the library in your filesystem, and run Stardrop through the script each time.

Also, according to from SteamDecki.org wiki, there is apparently an option to disable the purge of user-made changes:

Despite the A/B partitions being read-only, Valve allows users to disable the Read-only Filesystem using a simple shell command. However, after an update, the modifications a user has made to the read-only filesystem are lost unless SteamOS is configured to use a folder in writeable storage to overlay the read-only storage.

1Tomber commented 9 months ago

These steps should do it, the pacman-key steps are currently broken, maybe in the future you can skip the pacman.conf part and instead update the keys.

sudo steamos-readonly disable
#sudo pacman-key --init
#sudo pacman-key --populate archlinux
sudo nano /etc/pacman.conf
#edit - change: SigLevel = Optional TrustAll
sudo pacman -S openssl-1.1
sudo pacman -S libcanberra

libcanberra is also missing, added it as a last step

Slvrtnge commented 8 months ago

These steps should do it, the pacman-key steps are currently broken, maybe in the future you can skip the pacman.conf part and instead update the keys.

sudo steamos-readonly disable
#sudo pacman-key --init
#sudo pacman-key --populate archlinux
sudo nano /etc/pacman.conf
#edit - change: SigLevel = Optional TrustAll
sudo pacman -S openssl-1.1
sudo pacman -S libcanberra

libcanberra is also missing, added it as a last step

Can anyone else confirm if the above steps work for the same new issue? I'm a little worried about running so many commands on my deck...or at the very least, how do I undo these things if something breaks?

Adda0 commented 8 months ago

Hey, I am working on a Flatpak for Stardrop. There remain only some little bugs to fix as of now. I hope it will be finished soon-ish. But whether it will work on Steam Deck, I don't know.

Undoing the above mentioned steps would be a very difficult task. The next Steam Deck update may reset them, but I am not sure what exactly the Steam Deck does during the update.

There is still the alternative option mentioned in https://github.com/Floogen/Stardrop/issues/136#issuecomment-1841424928. I may try to write something up if the Flatpak approach fails.

Slvrtnge commented 8 months ago

Thanks so much for getting back to me! I appreciate you working so hard on that. I’m hopeful it’ll work on steam deck as I have many flatpaks that already do. Being able to manage and auto update mods from game mode (I actually would consider getting Nexus mod premium for all this) Would be a dream! I’ll stay tuned for an update on the flatpak. Roland DuBoisiCloudOn Dec 16, 2023, at 2:13 AM, David Chocholatý @.***> wrote: Hey, I am working on a Flatpak for Stardrop. There remain only some little bugs to fix as of now. I hope it will be finished soon-ish. But whether it will work on Steam Deck, I don't know. Undoing the above mentioned steps would be a very difficult task. The next Steam Deck update may reset them, but I am not sure what exactly the Steam Deck does during the update. There is still the alternative option mentioned in #136 (comment). I may try to write something up if the Flatpak approach fails.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

ternn commented 8 months ago

Thank you for working on this, I'll stay tuned for more info about the flatpak!

Adda0 commented 8 months ago

Hello. Just to keep you updated, the flatpak is working. I am currently in the process of publishing it on Flathub. Will give you a heads-up when the flatpak is published. I would appreciate some of you who have Steam Decks to help test the flatpak when the time comes.

Slvrtnge commented 8 months ago

I’d be happy to test! I will say, what with the price, idk if I’ll get the nexus premium for the auto update just yet but happy to test the other features Roland DuBoisiCloudOn Dec 27, 2023, at 12:26 PM, David Chocholatý @.***> wrote: Hello. Just to keep you updated, the flatpak is working. I am currently in the process of publishing it on Flathub. Will give you a heads-up when the flatpak is published. I would appreciate some of you who have Steam Decks to help test the flatpak when the time comes.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

Adda0 commented 8 months ago

I myself do not have Nexus Premium, so I have never run the auto update myself. I personally think running the auto update is unwise and will only lead to errors during modding your game, but if it works for someone, I am happy for them. Theoretically, there is no reason why it should not work in the flaptak, but since it has never been tested, who knows. And I could not debug and fix the feature if something goes wrong in any other way than to use someone from the community as a test rabbit.

Adda0 commented 8 months ago

Hello, everyone. Happy new year. The Flatpak for my fork of Stardrop is building and working, and has been approved for Flathub, the main Flatpak store. I am just in the process of publishing the initial version of the StardropForked Flatpak on Flathub.

It is an alpha version and there are still some parts which do not work for one reason or another, but in general the Flatpak seems to be in a working state. Adding mods, checking for updates, selecting mods for your mod list, and updating your profiles works.

Feel free to test it and give me a report on how well it works for you. First, read the README.md on how to use the Flatpak. Direct all issues and bug reports to my fork of Stardrop/issues. It should be safe to use, but there are no guarantees. The version is still a testing alpha version. I would highly appreciate it if some of you could give it a try (any Linux users, especially those on Steam Deck, and anyone else with Flatpak support on their system) and report back what are the results.

When the Flatpak matures enough, and all necessary features from my fork are merged into the upstream Stardrop (this project on this repository), I hope to redirect the Flatpak from my fork to here. But for now, the Flatpak is based on my fork.