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

Do we want to keep recommending the "msi" installation ahead of all other options ? #49

Closed
sisyphus opened this issue Jan 10, 2023 · 19 comments
Labels

Comments

@sisyphus
Copy link

sisyphus commented Jan 10, 2023

Hi,
The Strawberry Perl home page (https://strawberryperl.com/) states that the "msi" version is the "Recommended version".
Do we really want to persist with that recommendation ?
Personally, it's the last version I would want to install ... and if it was actually the only available version then I probably wouldn't install it.
I have a large number of Strawberry Perl installations and they're all "portable" .... thankfully, not one "msi" to be found.

However, I'm not sure that I'm the typical Strawberry Perl user, so I'll leave it as a question for now - and happily close this Issue when I receive an unequivocal answer.

Cheers,
Rob

@christophvw
Copy link

MSI is the best option to deploy this in enterprise environments. Portable is not an option there.

I would like to have a MSI installer which installs Strawberry to %ProgramFiles% but it looks like too many developers cannot handle spaces in paths properly :/

@kenneth-olwing
Copy link

MSI is the best option to deploy this in enterprise environments. Portable is not an option there.

I'd totally agree with sisyphus here and argue the opposite.

It is childs play to use something like Innosetup to create your own installable based on a portable package. With the added benefit that you can control where it installs and how it should otherwise be configured in an enterprise setting. Also very handy to be able to make parallell installs of various versions, or even different groupings of modules - I have multiple installers ranging from basic to chock-full of non-standard cpan modules, and can create more if necessary, all based on different base Perl versions etc.

If anything, I would dearly love to get a Perl dist for Linux with the same 'Portable' stuff as on Windows. Haven't really delved into this so I'm not sure how to go about it. But in an automated setting where I can just populate a tree anywhere in a filesystem and run it as a self-contained Perl installation is hugely advantageous.

I would like to have a MSI installer which installs Strawberry to %ProgramFiles% but it looks like too many developers cannot handle spaces in paths properly :/

So as described, create one :-). I install there, and it works fine.

@shawnlaffan
Copy link
Contributor

The portable version is what most devs would want, and is what I've been using for several years (similar to @sisyphus and I assume others). However, the default should target the greatest number of people. Many users will want a perl that "just works" so they can run some code without needing to worry about running the portable shell or updating the paths for their IDE.

I suspect changing the wording on the web site from "preferred" to "standard" (or maybe "system" or something else) will address the original concerns.

As for installing to a path with spaces, if the various cpan modules can be installed in a path with spaces then I see no reason not to. The MSI process currently throws an error if a path with spaces is used, and the checking code pre-dates 2012 (assuming I found the correct file).

Perhaps someone could locate a portable version in a path with spaces and then try installing a range of modules from cpan?

I guess the broader issue with installing to C:\Program Files is that users will likely need to install modules to somewhere else. That introduces complexities for non-devs.

Another option is to point users to tools like berrybrew but that's another layer of work for non-devs.

@genio
Copy link
Member

genio commented Feb 21, 2023

I should move https://github.com/genio/psperl to this github organization

@genio
Copy link
Member

genio commented Feb 21, 2023

https://blogs.perl.org/users/chase_whitener/2019/07/windows-and-perl.html is the article I wrote on PSPerl when I first created it. I've now moved it to this organization: https://github.com/StrawberryPerl/psperl

@g-bougard
Copy link
Contributor

Hi @there,

sorry for my little involvement.

Just wanted to say I'm using Perl::Dist::Strawberry to package glpi-agent for windows as MSI in any wanted path and the default is to use C:\Program Files\GLPI-Agent. Of course I had to tune a lot the build process but this is possible.

@mohawk2
Copy link

mohawk2 commented Mar 20, 2023

Using the portable edition and putting it in a "place with a space" (and also round-brackets in the path, to catch even more problems) has been my strategy for years. I've submitted quite a few patches to fix issues this highlights.

I wish someone would run a CPAN smoker with such a setup.

@shawnlaffan
Copy link
Contributor

It would be good to update the website given we are close to a 5.36.1 release.

The simplest approach is to change "recommended" to "system installer" on the main page.

Does someone want to open a PR on the website repo? Discussion of the exact wording can be done there.
https://github.com/StrawberryPerl/strawberryperl.com

@csjewell
Copy link

I'll admit that I originally wrote that back in 2009 when almost nothing within perl liked spaces in the path - I chose to error out even before the installation in order to avoid the complaints.

Maybe now we can see what we can do to eliminate the need for it.

@sisyphus
Copy link
Author

I chose to error out even before the installation in order to avoid the complaints

IMO, that's all that should ever have been needed.
It still enrages me to think of all the time and effort put into accommodating the pathetic desire to have spaces in paths ... all just because some people decided that the other 64 (or however many there are are) allowable characters are, alone, insufficient.

Anyway, that ship has now not only sailed, but has also been well and truly sunk ;-)

Cheers,
Rob

@wchristian
Copy link
Member

Re the top question:

Yes, absolutely recommend a system level installer. For anyone seasoned who needs a portable perl it's not a hindrance to have a system perl installed. However for other people starting with the portable one might add struggles.

Any consideration here based on personal experience of an advanced programmer is irrelevant if it is not paired with an assessment of the target audience and impacts thereon.

@shawnlaffan
Copy link
Contributor

FWIW, the 5.38.0.1 MSI is being downloaded many more times than the portable versions. This is from a github release page which does not specify a recommended installer.

Current stats are:

  • 1150: MSI
  • 75: Portable
  • 57: Portable PDL

https://tooomm.github.io/github-release-stats/?username=strawberryperl&repository=Perl-Dist-Strawberry

@shawnlaffan
Copy link
Contributor

Although the rate at which the MSI installs are increasing (1588 MSI downloads about 18 hours later) makes me suspect one or more continuous integration processes is responsible for a chunk of the downloads.

It's not https://github.com/shogo82148/actions-setup-perl as it uses its own GH releases: https://github.com/shogo82148/strawberry-perl-releases/releases/ , and chocolatey is yet to be updated, but there could be any number of self hosted runners.

If someone knows how to get more granularity in the download stats, e.g. geolocation to country or regional level, then that would be useful.

@genio
Copy link
Member

genio commented Jul 26, 2023

I would also assume some of that is the BerryBrew community as they seemed eager to get the releases.json updated to have available on their service.

@shawnlaffan
Copy link
Contributor

I wondered about that also, but I'm pretty sure Berrybrew uses the portable versions.

genio added a commit to StrawberryPerl/strawberryperl.com that referenced this issue Oct 11, 2023
genio added a commit to StrawberryPerl/strawberryperl.com that referenced this issue Oct 13, 2023
shawnlaffan added a commit to StrawberryPerl/strawberryperl.com that referenced this issue Oct 13, 2023
Following discussion in StrawberryPerl/Perl-Dist-Strawberry#49

Main page was updated in a previous commit.
genio pushed a commit to StrawberryPerl/strawberryperl.com that referenced this issue Oct 13, 2023
Following discussion in StrawberryPerl/Perl-Dist-Strawberry#49

Main page was updated in a previous commit.
@shawnlaffan
Copy link
Contributor

The website has now been updated. The MSI installers are now referred to as "system installers" instead of "recommended".

@alexchandel
Copy link

I guess the broader issue with installing to C:\Program Files is that users will likely need to install modules to somewhere else. That introduces complexities for non-devs.

This hasn't been a problem for CPython. You can install packages into the Program Files site as admin (eg C:\Program Files\Python312\Lib\site-packages), or into your user folder (eg %APPDATA%\Python\Python312\site-packages). Just do the same.

@sisyphus
Copy link
Author

sisyphus commented Aug 9, 2024 via email

@shawnlaffan
Copy link
Contributor

shawnlaffan commented Aug 9, 2024

Teaching the various cpan installers to use a local::lib style installation would be a fairly large undertaking, and is not under our control.

It might be possible to adapt the MSI system to use Portable.pm, or a variant, to redirect installation to a user's temp dir by default. This is how R works.

Any help would be appreciated.

This is also probably best discussed under a new issue. Edit: #43 covers this

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

No branches or pull requests

10 participants