-
Notifications
You must be signed in to change notification settings - Fork 491
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
Ease the base package installs #3457
Comments
Thoughts about possible solutions
1.1So, some thought out combination of the following points can yield some solution i think
Ofcourse, this last step also cause some UX issue:
1.2One further solution can be to add a different option for such base packages. So, using these base package names with normal existing flags will issue error as currently does, and job will run as always. But using these names with that new flag will use this above suggested workflow Example run:The comments are just to communicate to you, not necessarily showing that they will be echoed. $ pacman -S [--base] helix
$ pacman -S helix
# No exact match found
# Match found for "base package"
# Fetching binaries for different environments
# Narrowing down environments based on those points
# Ambiguity still remaining
Choose environment from below:
#say
clang-x86_64
x86_64
#user inputs accordingly, say
x86_64 chosen
... on with install ... |
Or...
|
I personally would recommend just getting pacboy and running |
wow, glad to see that it uses very similar solution to the one i proposed
i tried finding its manual online, but didn't find anything on:
Update: 2023.01.01 while searching for git ( pacman -S* pactoysthis was what you meant right? $ pacman -Ss pactoys
msys/pactoys r55.8860e1f-1
A set of pacman packaging utilities
$ pacman -Si pactoys
...
URL : https://github.com/renatosilva/pactoys
Provides : pactoys-git repman-git updpkgver-git
... Update: 2023.03.03
Use it with bash's brace expansion to include the .exe:
|
other than that, i'd still say that this solution should be embedded within msys2's |
After finding the pacboy (abrdiged)anyways, so, here's breakdown of the command you shared (just for my own records) from the CLI command usage manual for it: # pacboy -S helix:p
$ pacboy
This is a pacman wrapper for MSYS2 which handles the package prefixes
automatically, and provides human-friendly commands for common tasks.
Usage:
pacboy [command] [arguments]
For 64-bit MSYS2 shell:
name:p means MINGW_PACKAGE_PREFIX-only
Commands:
sync Shorthand for --sync or --upgrade pacboy$ pacboy
Pacboy 2016.6.24
Copyright (C) 2015, 2016 Renato Silva
Licensed under BSD
This is a pacman wrapper for MSYS2 which handles the package prefixes
automatically, and provides human-friendly commands for common tasks.
Usage:
pacboy [command] [arguments]
Arguments will be passed to pacman after translation:
For 64-bit MSYS2 shell:
name:i means i686-only
name:x means x86_64-only
name:z means clang-i686-only
name:c means clang-x86_64-only
name:u means ucrt-x86_64-only
name:a means clang-aarch64-only
name:p means MINGW_PACKAGE_PREFIX-only
For MSYS shell:
name:m means mingw-w64
name:l means mingw-w64-clang
For all shells:
name: disables any translation for name
repository::name means repository/name
Commands:
sync Shorthand for --sync or --upgrade
update Shorthand for --sync --refresh --sysupgrade
refresh Shorthand for --sync --refresh
find Shorthand for --sync --search
packages Shorthand for --sync --list
files Shorthand for --query --list [--file]
info Shorthand for --query --info [--file]
origin Shorthand for --query --owns or --files
remove Shorthand for --remove --recursive
debug Verbose output for the above commands
I just tried actually running that command, and it didn't execute successfully, even after setting values for $ MINGW_PACKAGE_PREFIX=x86_64
$ MINGW_PACKAGE_PREFIX=mingw-w64-x86_64
$ MINGW_PACKAGE_PREFIX=mingw-w64-x86_64- $ pacboy -S helix:p
usage: pacman {-S --sync} [options] [package(s)]
options:
...
$ pacboy sync helix:p
usage: pacman {-S --sync} [options] [package(s)]
options:
...
$ pacboy debug sync helix:p
:: Executing pacman --color auto --sync -helix...
usage: pacman {-S --sync} [options] [package(s)]
options:
...
$ pacboy -S helix
error: target not found: helix
... |
No, pacman and pactoys are separate project. It should be modified only when it is not possible in any other ways. Here "easing the prefix part" is already done by pactoys/pacboy. So, pacman can do its thing as usual. |
|
The helix documentation need some clarification. Other than the documentation, this does not look like any issue, right? |
it kinda is - when you are managing packages, or searching for multiple packages at once then for each package, there are multiple items due to these package prefixes. and being prefixes sorted alphabatically, results get super mingled. i always brush past it as compromise and actively ignore it as it's not something i am very passionate about at the moment. but it would be good the situation could be improved. |
Yeah, it is somewhat confusing at first. It happened to me also. But when you understand why the prefix was named that way it would get more clear. Hope this page may help https://www.msys2.org/docs/environments/ I shall inform you about the helix docs change. |
also note that the |
It depends on which environment you are running pacboy. The |
oh! it's already been added there: via msys2/msys2.github.io#208 |
just mentioning for the records: helix-editor/helix#5363 |
(i also lowkey wonder why did you ask @ podsvirov for review 🤔 - obviously it's not at all important, but aaaah, my mind just gets drawn to it sorry 😅) |
See the git history of that file in helix repository. |
thanks. |
Summary
Installation of packages with multiple binaries available with different package prefixes should be simpler. Different package prefixes i.e. build against different environments.
ref: "Package Naming" via #3095 thanks god i had opened that issue 😇
Summary in examples:
Should look like:
Looks like:
Details about problem and current situation
Refer: helix/install (click here for permalink)
This would not have been a problem if msys2 were only limited for fetching toolchains, or unix packages. However,
P.S.
2023-02-15: exact how it's in console, so, has to have prompt i.e.
$
before#
. Found while documenting this: Reset msys2 #3535 (comment)The text was updated successfully, but these errors were encountered: