Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scoop fails on non-local NTFS #3655

Closed
ShukantPal opened this issue Sep 20, 2019 · 5 comments
Closed

Scoop fails on non-local NTFS #3655

ShukantPal opened this issue Sep 20, 2019 · 5 comments

Comments

@ShukantPal
Copy link

I am trying setup Scoop on a networked NTFS drive. When running scoop install 7zip, this is the output:

Installing '7zip' (19.00) [64bit]
Loading 7z1900-x64.msi from cache
Checking hash of 7z1900-x64.msi ... ok.
Extracting 7z1900-x64.msi ... done.
Linking K:\Program Files\Scoop\apps\7zip\current => K:\Program Files\Scoop\apps\7zip\19.00
Local NTFS volumes are required to complete the operation.
Creating shim for '7z'.
Can't shim '7z.exe': File doesn't exist.

I believe this is because Scoop is trying to create a hard link on a networked drive, which isn't possible. Furthermore, it doesn't stop there.

@ghost
Copy link

ghost commented Oct 2, 2019

I think the issue is current is a hard link which doesn't always work.

@ShukantPal
Copy link
Author

ShukantPal commented Oct 2, 2019 via email

@ghost
Copy link

ghost commented Oct 2, 2019

@SukantPal There is already a regular path.

Note the part that says Linking K:\Program Files\Scoop\apps\7zip\current => K:\Program Files\Scoop\apps\7zip\19.00 K:\Program Files\Scoop\apps\7zip\19.00 is the actual location and the current is the hardlink which is not possible to create because is a network drive.

Scoop is trying to look for a 7zip/current.

You could simply manually create a /current folder and copy the contents of /19.00 to current. But this would be a hack workaround.

Scoop seems to depend on hardlinks and has no fallback to NOT use hardlinks. Someone that devs scoop needs to confirm if there is indeed some kind of setting or switch that can be used to not use hardlinks.

@ghost
Copy link

ghost commented Oct 2, 2019

If the above works I m thinking you could create some kind of workaround where you create an actual folders called current and move the data from app/version in there so that:

From the normal setup:
app/version/files
app/current (hardlink) -> app/version/

becomes
app/version/this is now empty
app/current/files are all moved here (no longer hardlink and is real folder path)

You would need some kind of script that does this after each update or install. You need to leave that version folder and not delete it because scoop will try to look for that folder when it checks or cleans things up.

@ShukantPal
Copy link
Author

@CarlGustavAlbertDwarfsteinYung

scoop config NO_JUNCTIONS 1

This bypasses the "current" junction. I found while scrolling through the source code. However, scoop was still failing to find the 7zip path. To solve that:

scoop config 7ZIPEXTRACT_USE_EXTERNAL 1

This makes Scoop find the 7z command using PowerShell rather than Get-HelperPath.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant