I'm reading wiki on github for git and it says that msys2 bundles pacman: https://github.com/git-for-windows/git/wiki/Package-management
But when i'm invoking it:
$ pacman
bash: pacman: command not found
Does anyone has an idea what is going on? To which git version this wiki refers? Is there a way to install additional packages to msys2 inside Git for windows?
As mentioned in issue 397:
This is intended. We do not ship pacman with Git for Windows.
If you are interested in a fully fledged package manager maintained environment you have to give the Git for Windows SDK a try.
The bash that you see in the latest git for Windows (2.5.3), which is a more recent bash than the old msysgit one, is only there to execute git commands.
It is not a full-fledged linux environment to install any third-party package.
Git for Windows (https://gitforwindows.org/ or https://git-scm.com/downloads) (has Git Bash) but it does not include tree
. tree
is available for via pacman
(Package Manager) but that is only available if you install "Git for Windows SDK" (scroll to the bottom of https://gitforwindows.org/ which provides a link to download installer for it from https://github.com/git-for-windows/build-extra/releases/latest)
This SO: "Package management in git for windows?" was very helpful Package management in git for windows?
Also as commented in the above SO, they link to this git for windows issue [Pacman missing on fresh 2.5.2 install #397] that it was intended to not include pacman
in the default install.
Anyways, I installed "Git for Windows SDK", then in it's bash prompt (SDK-64) I ran the following to install current tree v1.7.0-1 (as of this posting Aug 30, 2018):
[SDK-64: Bash Terminal for Git for Windows SDK]
pacman -S tree
...
Proceed with installation? [Y/n] Y
On my system, Git for Windows SDK is installed under: C:\git-sdk-64
, so from my Git for Windows Bash shell (that did not have tree installed), I copied it over tree.exe to it's /usr/bin directory, e.g.
[MINGW64: Bash Terminal for Git for Windows]
cd /usr/bin
cp /c/git-sdk-64/usr/bin/tree.exe .
Now I can run tree
v1.7.0 from both Git Bash shells.
So, to make it even easier for others and maybe myself on a future machine, I looked at where pacman
was getting the tree
package from by running following in my Git for Windows SDK Bash terminal:
$ pacman -S --info tree
Repository : msys
Name : tree
Version : 1.7.0-1
Description : A directory listing program displaying a depth indented list of files
Architecture : x86_64
...
The key thing, here is that pacman
is getting it from the "msys" repository (FYI: even though it says msys, it really is using msys2), so I looked at /etc/pacman.d/mirrorlist.msys
and the first mirror points to http://repo.msys2.org/msys/$arch/
So next time you want a package that is NOT in Git for Windows, you can download them from: http://repo.msys2.org/msys/x86_64/ (for 64-bit) or from http://repo.msys2.org/msys/i686/ (32-bit)
e.g. direct download link for tree v1.7.0-1
- 64-bit: http://repo.msys2.org/msys/x86_64/tree-1.7.0-1-x86_64.pkg.tar.xz
- or https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/x86_64/tree-1.7.0-1-x86_64.pkg.tar.xz
- 32-bit: http://repo.msys2.org/msys/i686/tree-1.7.0-1-i686.pkg.tar.xz
- or https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/i686/tree-1.7.0-1-i686.pkg.tar.xz
FYI: Git SCM's Window's download at https://git-scm.com/download/ pulls the latest from Git for Windows GitHub (https://github.com/git-for-windows/git from the https://github.com/git-for-windows/git/releases/ link)
There seems to be a documented way to do this without having to install the Git for Windows SDK (which is very large). I was given the link to this info by PhilipOakley when I asked about all this on GitHub issue #1912.
Here's the current text of the Git for Windows GitHub wiki page about it:
Install inside MSYS2 proper
This guide assumes that you want the 64-bit version of Git for Windows.
Git for Windows being based on MSYS2, it's possible to install the
git
package into an existing MSYS2 installation. That means that if you are already using MSYS2 on your computer, you can use Git for Windows without running the full installer or using the portable version.Note however that there are some caveats for going this way. Git for Windows created some patches for
msys2-runtime
that have not been sent upstream. (This had been planned, but it was determined in issue #284 that it would probably not be happening.) This means that you have to install Git for Windows customizedmsys2-runtime
to have a fully working git inside MSYS2.Here the steps to take:
Open an MSYS2 terminal.
Edit
/etc/pacman.conf
and just before[mingw32]
(line #71 on my machine), add thegit-for-windows
packages repository:
[git-for-windows] Server = https://wingit.blob.core.windows.net/x86-64
and optionally also the MINGW-only repository for the opposite architecture (i.e. MINGW32 for 64-bit SDK):
[git-for-windows-mingw32] Server = https://wingit.blob.core.windows.net/i686
- Authorize signing key (this step may have to be repeated occasionally until https://github.com/msys2/msys2/issues/62 is fixed)
curl -L https://raw.githubusercontent.com/git-for-windows/build-extra/master/git-for-windows-keyring/git-for-windows.gpg | pacman-key --add - && pacman-key --lsign-key 1A9F3986
- Then synchronize new repository
pacboy update
This updates
msys2-runtime
and therefore will ask you to close the window (not just exit the pacman process). Don't panic, simply close all currently open MSYS2 shells and MSYS2 programs. Double-check Task Manager and killpacman.exe
it's still running after the window is closed, because it can linger. Once all are closed, start a new terminal again.Then synchronize again (updating the non-core part of the packages):
pacboy update
- And finally install the Git/cURL packages:
pacboy sync git:x git-doc-html:x git-doc-man:x git-extra: curl:x
- Finally, check that everything went well by doing
git --version
in a MINGW64 shell and it should output something likegit version 2.14.1.windows.1
(or newer).
I did not want to move from my already working Git for Windows installation so I improvised a bit:
- Install Git for Windows SDK somewhere else. You'll need more than 3 GB of free space for that.
- Copy
${git-sdk}/usr/bin/pacman.exe
to${git}/usr/bin
- Copy
${git-sdk}/etc/pacman.conf
and${git-sdk}/etc/pacman.d
to${git}/etc
- Copy
${git-sdk}/var
to${git}/
That's all. You can now open your Git Bash and run pacman -S python
to install packages on your existing Git for Windows setup.
You will need write access to Git for Windows directory. Also, your pacman
now thinks it has a lot of packages installed (from SDK) but it did not stop me from using it.
来源:https://stackoverflow.com/questions/32712133/package-management-in-git-for-windows