web-dev-qa-db-ja.com

Git for Windowsでのパッケージ管理?

私はgitのgithubでwikiを読んでいますが、msys2にはpacmanがバンドルされていると書かれています: https://github.com/git-for-windows/git/wiki/Package-management

しかし、私がそれを呼び出しているとき:

$ pacman
bash: pacman: command not found

誰が何が起こっているのか知っていますか?このウィキが参照するgitバージョンはどれですか? Git for windows内のmsys2に追加パッケージをインストールする方法はありますか?

33
carbolymer

issue 397 で述べたように:

これは意図されたものです。 pacmanをGit for Windowsに同梱していません。
本格的なパッケージマネージャーが管理する環境に興味がある場合は、 Git for Windows SDK を試してみる必要があります。

Windowsの最新git(2.5.3) に表示されるbashは、 古いmsysgitのものよりも最近のbash であり、gitコマンドを実行するためだけにあります。
サードパーティのパッケージをインストールするのは本格的なLinux環境ではありません。

28
VonC

Git for Windows( https://gitforwindows.org/ または https://git-scm.com/downloads )(Git Bashがありますが、treeは含まれません。 treepacman(パッケージマネージャー)で使用できますが、「Git for Windows[〜#〜] sdk [〜#〜] "( https://gitforwindows.org/ の一番下までスクロールすると、 https://github.com/git-for-windowsからインストーラをダウンロードするためのリンクが提供されます/ build-extra/releases/latest

このSO:「git for windowsでのパッケージ管理?」非常に役に立ちました git for windowsでのパッケージ管理?

また、上記のSOでコメントされているように、彼らはデフォルトのインストールにpacmanを含めないことを意図したこのgit for Windowsの問題[Pacman missing on fresh 2.5.2 install#397]にリンクしています。

とにかく、「Git for Windows SDK」をインストールしてから、bash Prompt(SDK-64)で次のコマンドを実行して現在のツリーv1.7.0-1をインストールしました(2018年8月30日現在)。

[SDK-64: Bash Terminal for Git for Windows SDK]
pacman -S tree
...
Proceed with installation? [Y/n] Y

私のシステムでは、Git for Windows SDKが次の場所にインストールされています:C:\git-sdk-64なので、Git for Windows Bash Shell(ツリーがインストールされていない)から、tree.exeを介して/ usr/binディレクトリにコピーしました。

[MINGW64: Bash Terminal for Git for Windows]
cd /usr/bin
cp /c/git-sdk-64/usr/bin/tree.exe .

これで、両方のGit Bashシェルからtree v1.7.0を実行できます。

だから、他の人やおそらく自分の将来のマシンでさらに簡単にするために、Git for Windows SDK Bashターミナルで次を実行してpacmantreeパッケージを取得する場所を調べました。

$ 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
...

ここで重要なのは、pacmanが「msys」リポジトリから取得していることです(FYI:msysと言っても、実際にはmsys2を使用しているため)/etc/pacman.d/mirrorlist.msysおよび最初のミラーはhttp://repo.msys2.org/msys/$Arch/

したがって、次回Git for Windowsにないパッケージが必要な場合は、以下からダウンロードできます。 http://repo.msys2.org/msys/x86_64/ (64ビットの場合)または http://repo.msys2.org/msys/i686/ (32ビット)

例えばツリーv1.7.0-1の直接ダウンロードリンク

参考: https://git-scm.com/download/ でのGit SCMのWindowのダウンロードは、Git for Windows GitHubのGitから最新のものを取得します( https://github.com/git-for -windows/githttps://github.com/git-for-windows/git/releases/ リンクから)

13
N. Ngo

既に動作しているGit for Windowsのインストールから移動したくなかったので、少し即興しました。

  1. Git for Windows SDKを別の場所にインストールします。そのためには3 GB以上の空き容量が必要です。
  2. コピー${git-sdk}/usr/bin/pacman.exeから${git}/usr/bin
  3. コピー${git-sdk}/etc/pacman.confおよび${git-sdk}/etc/pacman.dから${git}/etc
  4. コピー${git-sdk}/varから${git}/

それで全部です。 Git Bashを開いてpacman -S python既存のGit for Windowsセットアップにパッケージをインストールします。

Git for Windowsディレクトリへの書き込みアクセスが必要になります。また、pacmanは(SDKから)多くのパッケージがインストールされていると考えていますが、使用を止めることはできませんでした。

3
Chulup

文書化された方法 があるようで、Git for Windows SDKをインストールせずにこれを行う(非常に大きい)。 GitHubでこのすべてについて質問したときに、PhilipOakleyからこの情報へのリンクが提供されました issue#1912

Git for Windows GitHubの現在のテキストは次のとおりです wikiページ それについて:

MSYS2本体内にインストールする

このガイドでは、64ビットバージョンのGit for Windowsが必要であることを前提としています

Git for WindowsはMSYS2に基づいているため、gitパッケージを既存のMSYS2インストールにインストールすることができます。つまり、コンピューターで既にMSYS2を使用している場合、フルインストーラーまたはポータブルバージョンを使用せずにGit for Windowsを使用できます。

ただし、この方法を使用する場合は注意が必要です。 Git for Windowsは、msys2-runtimeのアップストリームに送信されないパッチをいくつか作成しました。 (これは計画されていましたが、問題であると判断されました #284 それはおそらく起こらないでしょう。)これは、Git for Windowsカスタマイズmsys2-runtimeをインストールして完全にMSYS2内でgitを動作させます。

ここで実行する手順:

  1. MSYS2ターミナルを開きます。

  2. /etc/pacman.confを編集し、[mingw32]の直前(私のマシンでは#71行目)、git-for-windowsパッケージリポジトリを追加します。

[git-for-windows] Server = https://wingit.blob.core.windows.net/x86-64

また、オプションでoppositeアーキテクチャのMINGW専用リポジトリ(つまり、64ビットSDKのMINGW32):

[git-for-windows-mingw32] Server = https://wingit.blob.core.windows.net/i686

  1. 署名キーを承認します(この手順は、 https://github.com/msys2/msys2/issues/62 が修正されるまで時々繰り返される必要があります)

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

  1. 次に、新しいリポジトリを同期します

pacboy update

  1. これによりmsys2-runtimeが更新されるため、ウィンドウを閉じるように求められます(notpacmanプロセスを終了するだけです)。パニックにならないで、現在開いているすべてのMSYS2シェルとMSYS2プログラムを単に閉じてください。タスクマネージャーを再確認し、ウィンドウが閉じた後も実行されているpacman.exeを強制終了します。すべてを閉じたら、新しいターミナルを再度起動します。

  2. 次に、同期again(パッケージの非コア部分を更新):

pacboy update

  1. 最後に、Git/cURLパッケージをインストールします。

pacboy sync git:x git-doc-html:x git-doc-man:x git-extra: curl:x

  1. 最後に、MINGW64シェルでgit --versionを実行して、すべてがうまくいったことを確認し、git version 2.14.1.windows.1(またはそれ以降)のようなものを出力します。
3
Mike Beaton