私はwindowsマシンに取り組んでいます、そして私はGitに付属のbashシェルを使います。しかし、このバージョンのbashシェルには欠けている多くのユーティリティーがあります。
このシェルにもっと多くのコマンドをインストールするにはどうすればいいですか?
Gitには2つのバージョンがあります - msysgit ディストリビューションまたは Cygwin です。
Cygwinインストールの一部としてGitをインストールしただけかもしれませんが(Cygwinを使用した場合)、Cygwinには setup.exe というプログラムがあり、これを使用してパッケージを追加できます。基本的に、あなたがしなければならないのはsetup.exe
を実行し、Select Packagesウィンドウに入ったときにインストールしたいプログラムを選ぶだけです。ここでの紹介では、プロセスの詳細を説明した画像を使って概要を説明しています。
Cygwinのインストーラはあなたが既存のインストールを持っていることを理解するのに十分賢いです、そしてそれはあなたのインストールにパッケージを追加するでしょう(それをやっつけて最初からやり直す代わりに)。
あなたがおそらく使用しているGitの他のバージョン(Cygwin以外の場合)はmsysgitです。 msysgitはMinGWとは実際には互換性がない最低限のUnix環境をインストールするので、あなたはmsysgitの横にMinGWスイートをインストールしなければならなくなるでしょう。 MinGW はじめに ページには、MinGWをインストールする方法についての詳細な概要が説明されています。MinGWには個人的に経験がないので、できることはあなたが彼らの指示を参照することです。
それから、あなたのmsysgitインストールをMinGWに移行しなければならないでしょう。これは次のようにすることで達成できます(ここから)。次のシーケンスが完了したら、MinGWはあなたのGitインストールを見つけるでしょう。
cd GITDIR # Where GITDIR is wherever inside Program Files you put Git
cp bin/git* /MINGW/bin # Where MINGW is wherever you put MinGW
cp -r libexec/git* /MINGW/libexec
cp -r share/git* /MINGW/share
最近の Git for Windows インストールでは、追加のシェルスクリプトやプログラムをインストールするのはとても簡単です。
choco install git
を実行することでgit(およびchocolateyと共にインストールされる他のすべてのツール)を更新できるため、 chocolateychoco upgrade all
を使用してgitをインストールすることをお勧めします。
実行ファイルをC:\Program Files\Git\usr\bin
(%ProgramFiles%\Git\usr\bin
)に入れるだけです。
ファイル git-fresh をC:\Program Files\Git\usr\bin
にコピーします。
src/
からC:\Program Files\Git\usr\bin
にすべてをコピーしますMsysgitを使用している場合は、単純に MinGW をインストールしてから、Gitのインストールに使用している.bashrcファイルにMINGWパスを追加します。
PATH=$PATH:/MINGW/msys/1.0/bin
... MINGWはMinGWをインストールした場所です。
そうすれば、あなたはあなたのGit bashインストールから直接MinGWツールを使うことができます、そしてあなたが他のbashツールを必要とするならあなたはそれをMinGWにインストールすることができます。
あなたはここから追加のUnix単位Wget, Hugo, Xpdf, make, Nano
をダウンロードすることができます: https://Gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058
wget64.exe
をwget.exe
に名前変更します。wget.exe
をあなたのGit\mingw64\bin\
に移動してください。注:Git BashでWgetを使用してWARCファイルを作成するときにいくつかのバグに気付きました。より複雑なWgetの使用については、代わりに Cygwin を検討してください。
Hugo static site generatorはバイナリとしてダウンロードすることができ、インストーラを持っていません。それをあなたのbin
にドロップすると、それをあなたのGit Bashパスに簡単に追加できます。 リリースページ からWindows 64ビット版を入手してください。ダウンロードを解凍し、hugo.exe
をGit\mingw64\bin
ディレクトリにコピーします。
Xpdf はPDFファイルを操作するための便利なユーティリティです。
xpdf-tools-win-4.00\bin64\
の内容をあなたのGit\mingw64\bin\
にコピーしてください。pdftotext
やpdftopng
などのツールを始めてください。make-4.1-2-without-guile-w32-bin.Zip
をダウンロードしてください(guileなしでバージョンを入手)。Git\mingw64\
に内容をコピーしますが、既存のファイルを上書きまたは置き換えないでください。2018年現在、Git Bashの最近のバージョンにはNanoが含まれているので、これは不要です。
.exe
ファイルを必要とし、それはnano-git-0d9a7347243.exe
と命名されています(これを書いている時点で)。nano.exe
に変更し、mingw64\bin
ディレクトリにコピーします。winpty
を使用して呼び出すことができます(例:winpty nano test.txt
)。私はrsync
のために働く、とても簡単な答えを今日見つけました。
rsync
をダウンロードしてください *C:\rsync-3.1.2-2-x86_64.pkg
を選ぶ誰がfutureware.atの背後にいるのかわかりません。
スクリプトを作成してgit-bashの機能の数を増やし、それらを~/.bash_profile
ファイルに定義して呼び出すことができます。
例
watch
コマンドを使用したい場合は、このスクリプトを~/.bash_profile
に追加することができます。
https://Gist.github.com/espaciomore/28e24ce4f91177c0964f4f67bb5c5fda
ARGS="${@}" clear; while(true); do OUTPUT=`$ARGS` clear echo -e "${OUTPUT[@]}" done
それを関数の中にラップします。
watch() {
ARGS="${@}"
clear;
while(true); do
OUTPUT=`$ARGS`
clear
echo -e "${OUTPUT[@]}"
done
}
ファイルを保存してsource ~/.bash_profile
を実行するとすぐに、コマンドの出力を見ることができるはずです。
私は以下を試して、git-bashにemacsをインストールしました。1.どこかにmsys2をインストールします(同じコンピューターである必要はありません)。 2. msys2の下で、次のコマンドを実行します。
cd /tmp mkdir -p var/lib cp -R /var/lib/pacman var/lib/ pacman -Sr /tmp emacs tar zcf emacs.tar.gz usr
emacs.tar.gz
をgit-bashからアクセスできる場所にコピーし、次にgit-bashの下にコピーします。tar zxf emacs.tar.gz -C/emacs
以上で、幸運を祈ります。
最初の投稿の後、私は他のコンピュータを試しましたが、動作しませんでした。 git-bashにいくつかのdllがないことがわかりました。それから私は以下のステップできれいな仮想マシンでテストしました:
msys2-x86_64-20180531 と Git-2.19.1-64-bit をインストールしてください。
Msys2を更新し、msys64コンソールを開いて以下を実行します。
pacman -Syyu
メッセージが表示されたらmsys64コンソールを閉じてから、上記のコマンドをもう一度実行します。
前のステップとしてemacsファイルを入手してください(msys64で以下を実行してください)。
cd /tmp
mkdir -p var/lib
cp -R /var/lib/pacman var/lib/
pacman -Sr /tmp emacs
tar zcf emacs.tar.gz usr
mv emacs.tar.gz /c/tmp
ps:私はかつて/ tmpの代わりに/ d/tmpで上記のステップを試してみましたが、それにemacsをインストールすることができませんでした。
Git-bashを開き、emacsファイルを抽出します。
cd /c/tmp
tar zxf emacs.tar.gz -C /
欠けている共有ライブラリ "?"が文句を言うでしょう今emacsを走らせようとしています。 「?」可読性を明らかにしない
Msys64に戻り、msys2 dllsを入手してください。
ls --color=never /bin/*.dll > /c/tmp/1.txt
Git-bashでは、dllとmsysを比較してください。
cd /c/tmp
git init
git add 1.txt && git commit
ls --color=never /bin/*.dll | sed 's#\*$##g' > /c/tmp/1.txt
git diff 1.txt | grep '^-' | sed '1d' | sed 's#^-/bin/##g' > diff_dlls.txt
私の場合は、diff_dlls.txtに26個のDLLがあります。
Msys64からgit-bashにdllをコピーします。
Msys64の場合:
mkdir /c/tmp/dlls
cat /c/tmp/diff_dlls.txt | xargs -I {} cp /bin/{} /c/tmp/dlls
Git-bashの場合:
cp /c/tmp/dlls/* /bin
すべて完了したので、今やemacsはgit-bashで動きます。 26のdllのうちのいくつかは必要でないかもしれませんが、私はディスクスペースの代わりに私の時間を節約することを望みます。
Windows用のGit bash(MinGW64)を使用しているのであれば、rsyncを追加するのに非常に苦労しました。 dup()in/out/errが失敗しました。
代わりに、Cygwinを使用することは結局うまくいきました。
Windows用Gitbashでrysncを使用するために行った手順
ウィンドウ - >システム - >詳細設定 - >環境変数
C:\ cygwin64\bin \のパスを追加してください。
***致命的エラー - cygheapの塩基ミスマッチが検出されました
「Git for Windows SDK」をインストールします( https://gitforwindows.org/ の一番下までスクロールします。ここから、インストーラをダウンロードするためのリンクが ダウンロードされます。 https://github.com/git-for-windows/build-extra/releases/latest )
https://stackoverflow.com/questions/32712133/package-management-in-git-for-windows/52105321#52105321