pikdum / steam-deck

steam deck tools, currently only vortex
MIT License
156 stars 13 forks source link

cant install dotnet #7

Closed gleipy closed 1 year ago

gleipy commented 1 year ago

I'm in stable channel, I had it installed and uninstalled, now when I install it again, it stuck at installing dotnet and once it's completed and there's message saying vortex cant run without .net IMG_20230510_232240

Afrodinho commented 1 year ago

Currently having this same issue.

This is what I have tried so far:

Leaving this screen up and running -

This has happened a few times:

Leads to this completing? The screen goes away then I can click on Vortex on the desktop to launch it. However Vortex doesn't function properly. It doesn't launch. I did manage to get it to launch once. A window that says SteamTinkerLaunch-PrepareVortexGameStatus appears. It then searches through my installed games to add them to Vortex I assume. Once this finishes (Takes a long time. Only games it searches and finds are Xcom2, Skyrim Special Edition, and Fallout New Vegas) Vortex opens. However Vortex told me that it required donet in order to run and prompted me to download. I did this and was met with the same prompt to download dotnet again.

IMG_3249

Most Common Outcome

When I wait long enough and wait for the dotnet screen to go away, it seems like everything worked. Vortex appears on the desktop. Sometimes when attempting to launch, SteamTinkerLaunch prompts appear in the notification bar like normal. If I check my system monitor Vortex will sometimes appear using around 1.3 GiB of memory. No matter how long I wait nothing changes though. The application doesn't seem to launch. Most of the time however, Vortex appears in my System monitor for around 5 second and disappears. Obviously meaning that it is no longer running.

Completely deleting and re installing -

https://github.com/pikdum/steam-deck/issues/2#issuecomment-1513931052

Used this guide and ran these in the Konsole.

The commands worked when deleting the files. Tried to reinstall and was met with the same issue. Stuck on dotnet.

Tried to manually uninstall and then tried to reinstall. Still stuck on dotnet.

Currently still unable to launch Vortex.

I hope that this can help you look into this issue.

pikdum commented 1 year ago

Yeah, bit tricky for me to fix.

My plan right now is to:

  1. write some new scripts to replace STL for installing/upgrading Vortex - https://github.com/pikdum/vortex-linux
  2. once ready, integrate those scripts here
sonic2kk commented 1 year ago

You're free to contribute to upstream STL if you'd like as well 😄 Usually these breakages come from Vortex breaking under Wine and resolve themselves with Vortex updates.

I don't use Vortex and it might be better to remove STL as a dependency but an improvement to Vortex in STL from someone who uses Vortex would be welcome.

pikdum commented 1 year ago

I think the main things would be:

  1. Vortex's tech stack moves quickly, so needs an up-to-date Wine that can handle latest .NET and Electron
  2. Vortex can install .NET itself, which seems more consistent

Doing the first in STL might be a bit tricky, though.

sonic2kk commented 1 year ago
  1. Users can update the Wine version that Vortex uses in the Global Menu, so that's not really an issue. It isn't up to STL to do that, it's up to users to tinker. Fresh installs will use the latest GE-Proton, and if that isn't new enough users can use their own builds of Proton (such as TkG). Usually this is fine, though there may be instances for very bleeding edge cases where newer releases of Wine maybe cannot be built with the Proton patches, so a build of Wine may be required. This is almost certainly an exceptional case though.
  2. Vortex relies on .NET 4.8 to install from what I recall, and then also requires .NET 6. When it tries to install .NET itself, it won't fail as such (in my experience), but if Vortex doesn't see .NET 4.8 from Winetricks, it won't see it when it tries to install .NET itself.

It would also be possible to manually add a Proton version for STL to see with steamtinkerlaunch addcustomproton <path>, and then overwrite the variable that tells Vortex which version of Proton to use by overriding the variable in the global.conf (a way to do this with an STL command might be useful since we already have set but I don't think it applies to global vars, not 100% sure on that though).

pikdum commented 1 year ago

Users can update the Wine version that Vortex uses in the Global Menu, so that's not really an issue.

Feels like an issue when things are broken with the default version. I can't really expect users of this tool to understand how to tinker with STL either, since this should 'just work'.

Vortex relies on .NET 4.8 to install from what I recall

From playing around a bit, seems like Vortex doesn't require anything just to install anymore.

sonic2kk commented 1 year ago

Feels like an issue when things are broken with the default version. I can't really expect users of this tool to understand how to tinker with STL either, since this should 'just work'.

That's fair enough, and as described there may be a way to bump the used Proton version on your end. But at the end of the day upstream STL is a tinker tool for experienced users. Breakages and some understanding of Wine is expected, though I also understand that isn't what this project is going for. When things break because of Wine issues, it isn't a SteamTinkerLaunch issue, so I would say for STL it isn't particularly an issue. And either way, for fresh installs, STL does use the latest available GE-Proton to try and give users the most up-to-date and stable Wine, but if this doesn't work it isn't up to upstream STL to delve into further. Tinkering with fixing Wine breakages is up to the user upstream, they're not STL bugs. And again, I understand that this is not what this project is going for, I am justifying why this isn't an issue for upstream though downstream projects if they wish are free to try and resolve it however they want, STL gives the tools needed to try and fix the problems that occur as it is nigh impossible to proactively prevent breakages with the goals that STL has.

If a fixed Vortex version and/or code to manually overwrite the used Proton version on your end isn't feasible or desirable, then STL may just not be a good fit for this project, which is totally fine as well.

From playing around a bit, seems like Vortex doesn't require anything just to install anymore.

This is interesting! If I have some motivation I could look into that to see if it will just install with regular GE-Proton. I don't use Vortex, so I haven't spent that much time in and around the code since taking over.

I don't have much time for STL atm but I'll definitely investigate to see if this is the case. Back when an issue very similar to this one was reported to STL I tested if .NET was required and it was, but that was 5-6 months ago or so. It would be a relief if it could be removed!

pikdum commented 1 year ago

Back when an issue very similar to this one was reported to STL I tested if .NET was required and it was, but that was 5-6 months ago or so. It would be a relief if it could be removed!

Seems to be not required with version 1.8, and after install Vortex can set up .NET 6 itself. Still required for version 1.7, otherwise Vortex shows a warning at startup.

I'm pretty lost at this point, but here's some observations:

  1. Vortex 1.8 is broken on GE-Proton7-55
  2. GE-Proton8-x is broken through STL on my Steam Deck - this is why Dotnet install (and everything else?) is hanging
  3. Vortex 1.8 runs great on Wine-GE-Proton8-5, on my Linux desktop, using my new scripts
  4. Wine-GE-Proton8-5 is broken through my new scripts on my Steam Deck too :^)
  5. Vortex 1.7.8 runs on Wine-GE-Proton7-43 through my new scripts on Steam Deck, but complains since I'm not installing .NET 4.8

Pushed a fix here that:

@gleipy @Afrodinho If you guys want to try the fix and let me know if it works, there are some manual steps required:

  1. wipe existing install:
    rm -rf ~/stl ~/.config/steamtinkerlaunch/ ~/.local/share/applications/pikdum-vortex.desktop
  2. run "Update Pikdum's Tools" to get the new changes
  3. run "Install Vortex"
  4. once in Vortex, make sure to turn off automatic updates so it doesn't try to update to v1.8.x and break again

Let me know if it works.

I have no idea why GE-Proton8-x isn't working on Steam Deck, but that's probably what we need for Vortex v1.8.x to run.

Afrodinho commented 1 year ago

I can confirm this works. Did everything you said and Vortex was installed in less than 5 minutes. It installed .net just fine. Nexus links are being handled and downloading like normal as well! Thank You!

gleipy commented 1 year ago

I also confirm this works, thank you so much

sonic2kk commented 1 year ago

Great investigation, thanks! It seems Steam Deck is the problem here, if I'm understanding correctly GE-Proton works to run Vortex on Linux Desktop but not on Steam Deck.

Seems to be not required with version 1.8, and after install Vortex can set up .NET 6 itself.

So the logic around installing dotnet48 and .NET 6 is no longer required? That would be great honestly, and I can look into removing it. I don't know if that'll necessarily help anything already but it would be nice to remove, it should even speed up start time.

If you have code handy that does this already or if you would like you're free to open a PR (you might be more familiar with the requirements for Vortex than me) but there's no worries if you can't or simply don't want to, I can do it when I have some time hopefully over the weekend!

I have no idea why GE-Proton8-x isn't working on Steam Deck, but that's probably what we need for Vortex v1.8.x to run.

This is just a shot-in-the-dark, but talking from experience, .NET stuff tends to not work very well on Steam Deck (people who use "trainer" tools which require DotNet report various issues, HMM does not reliably install on Steam Deck, etc). I'm not sure why this is, so apologies that I can't help further, just wanted to mention that I've seen people complain about .NET under Wine on SteamOS specifically a lot more than other distros (but SteamOS is also more prominent, so that may be why 🤓)


As a somewhat note-to-self, this recent breakage with Vortex has put two things in my mind:

  1. Implement the logic in STL that should only download stable or beta builds (there's a setting but the logic was apparently never implemented and was added around 2 years ago! I don't know how to implement this or if there's a straightforward way to do so, but I'd like to do this). May not be helpful directly to this project but could prevent beta updates that may not work properly under Wine yet
  2. Add an option to disable Vortex auto updates, maybe STL can overwrite a Vortex config file if there's an easy value that can be adjusted for this somewhere in a settings file. No idea how feasible this is to do (if Vortex writes to some browser cache that isn't plaintext, this may be tricky to do with Bash)
pikdum commented 1 year ago

if I'm understanding correctly GE-Proton works to run Vortex on Linux Desktop but not on Steam Deck

I was using Wine-GE-Proton instead of GE-Proton, so I'm not 100% sure if GE-Proton works on either.

Add an option to disable Vortex auto updates

This would be neat, I was thinking of trying the same.

sonic2kk commented 1 year ago

This would be neat, I was thinking of trying the same.

Just found a way to do it, turns out STL already does this for quite a few things with Vortex using the executable's --set option to set config options. So we can manually set the release channel like this:

# When testing, I put this inside of `startVortex` before the `runVortex` calls
# Can be 'stable', 'beta', or 'none'
NEXUPDATECHANNEL="none"
setVortSet "settings.update.channel=\"\\\"$NEXUPDATECHANNEL\\\"\""

I think the next steps for STL are:

The tricky parts will be implementing the first two as I am not sure how to filter the releases at time of writing. However, the rest should be fairly straightforward.

pikdum commented 1 year ago

Closing since the original issue was resolved.

sonic2kk commented 1 year ago

Sorry to bump a closed issue but all of the improvements outlined from my previous comment are now part of STL, as well as an option to specify a Vortex version to use from the UI and command-line. Thought it might be useful to give an update :-)

I'm also trying to investigate why Vortex is broken with STL on Steam Deck. I have a suspicion running with the Steam Linux Runtime might fix it but I haven't been able to confirm it yet, there is an experimental branch for it though. Using the SLR has fixed other programs on SteamOS though, a couple of users had issues with custom commands fixed by allowing the SLR for it.

pikdum commented 1 year ago

Awesome, thanks! I'll look into getting those integrated here.