ScoopInstaller / Scoop

A command-line installer for Windows.
https://scoop.sh
Other
20.83k stars 1.39k forks source link

Changing install path of apps #3559

Open alchem21 opened 5 years ago

alchem21 commented 5 years ago

When executing 'scoop' for certain applications(for example: 7zip), the application is installed into the 'apps' folder in the scoop directory , so I was wondering if it is possible to install the apps into a directory specified by us. it would be preferable if it is possible to change the location without changing the location of the scoop directory.

RCJacH commented 4 years ago

You can use the -g options i.e. scoop install -g <app> to install programs into a global apps directory.

The default global directory is C:\ProgramData\scoop\apps, but you can change that by following the direction described in the wiki.

However, it would be nice to set installation directory as an option to scoop install. This would be helpful if we need to have different settings for different installation of the same program. For example using scoop install -d "c:\path\to\folder\" <app> to install the app under that target folder.

If that's the case, we will also need to distinguish between different installation locations in shims folder. So perhaps program installed into custom folder defaults to not creating files in shims folder? Then give an option to create files in shims folder under specific name, 'scoop install -d "c:\path\to\folder\" --rename "app_name" '.

eugenesvk commented 2 years ago

install programs into a global apps directory.

that also requires elevation :( and adds another shims folder, otherwise it'd be a relatively easy workaround - instead of passing an argument, just change the environment variable to where you want the app installed and invoke scoop install -g app

HUMORCE commented 2 years ago

negative, scoop is package manager like tool rather than package downloader.

eugenesvk commented 2 years ago

negative, scoop is package manager like tool rather than package downloader.

So why can't you manage a package's location?

rashil2000 commented 2 years ago

What other package manager allows you to do that?

HUMORCE commented 2 years ago

negative, scoop is package manager like tool rather than package downloader.

So why can't you manage a package's location?

packages managed by tool, not you.

if you want:

scoop install upx
mv ~\scoop\apps\upx d:\
rm ~\scoop\apps\upx -force -recurse
ni -path ~\scoop\apps\upx -itemtype junction -value d:\upx
ni -path ~\scoop\apps\upx\current -itemtype junction -value d:\upx\3.96
# after first time install, app can be updated without repeat the steps.
eugenesvk commented 2 years ago

What other package manager allows you to do that?

winget :) has a --location flag, though of course it doesn't always work and there are plenty of other issues with winget, but still

In general though you're right — most package managers just dump everything into one huge folder, but the beauty of scoop's shim scheme is that it can live with an app insalled anywhere — the .shim has the correct path

rashil2000 commented 2 years ago

If a package is installed in some other location, scoop won't be able to keep track of it. It's just how it works. This is why @HUMORCE suggested the junction workaround.

eugenesvk commented 2 years ago

packages managed by tool, not you.

that's fine, doesn't preclude the tool from getting some extra info from the user on where an app should be located and then happily continuing to manage install/update/uninstall/reshim etc.

if you want:

Thanks, will keep this in mind as a space-saving measure

However, that's not what I want. I'd prefer to have mostly one app folder, just sorted into categories of apps (via custom paths I supply on installation), so that I can have much better visibility into what's installed and what can be removed, for example:

Similarly, I'd prefer to have the apps grouped by their purpose just like I do for the Program Files ones

However, at the moment I can't create custom folders within ../scoop/apps as scoop depends on the folders to e.g. list installed apps, so I get MyCategoryFolder *failed*

eugenesvk commented 2 years ago

scoop won't be able to keep track of it. It's just how it works.

Yes, hence this is a new feature request :)

eugenesvk commented 1 year ago

What other package manager allows you to do that?

By the way, the popular macOS package manager Homebrew also allows you to specify a folder with an --appdir flag (for casks, which are binary downloads just like scoop's packages)

rashil2000 commented 11 months ago

Feature Request

Is your feature request related to a problem? Please describe.

Currently, Scoop installs applications in the user's home directory under $HOME/scoop. However, users may want to install applications in different locations for various reasons, such as:

  • Installing on different disks to manage storage space
  • Separating development SDKs and tools from regular programs
  • Installing applications on a Windows development drive

I want to install SDKs and dev caches to new Windows Dev drive, but do not want to pollute it with other software.

Describe the solution you'd like

Add support for multiple install locations in Scoop, allowing users to install applications and tools in different directories based on their preferences and use cases.

Proposed Solution

Extend Scoop's functionality to support multiple install locations by allowing users to specify custom installation paths during the installation process. This can be achieved by adding a new command-line option, such as --install-path, which accepts a custom directory path as its argument.

For example:

scoop install --install-path "D:\Development\Tools" git

This command would install the git application in the specified directory, D:\Development\Tools. D:\Development\Tools content will mirror current installation directory structure with apps, and persist sub-directories. (It would probably be better to call such folders installation libraries)

Posted by @marknefedov in #5608