2011-10-04 10 views
6

私は、ウェブサイトのパッケージインストーラがインストールするデフォルトのusr/local/git/bin/gitディレクトリとは異なるカスタムの場所にGitをインストールしようとしています。例えばカスタムGitのインストールを設定する

、私はちょうど/Users/braitsch/my-gitusr/local/gitの内容をコピーして/Users/braitsch/my-git/binに私のパス変数を更新し、現在のGitの不幸は、そのようなgit -stashとしてのコマンドのいくつかを見つけることができないと言ってみました。

また、設定しようとしたばかりの./git exec-path=/Users/braitsch/my-git/libexec/git-coreでも、それは取れていないようです。

私の質問は、パッケージマネージャやプリインストールインストーラを使わずにGitのカスタムインストールをセットアップする方法です。私は両方のMacで簡単に使用できるシナリオを見つけたいと思っています& Windows。前もって感謝します。

- 更新 -

それはGitのスタッシュ(そしておそらく他のコマンド)のように見えますが、別の場所にパッケージインストーラ経由usr/local/gitでインストールされるディレクトリを移動する場合に失敗します。誰かがこれを回避する方法に関する提案はありますか?カスタムの場所からGitを実行しようとしていますが、これはhttp://git-scm.comサイトのビルドでは不可能ですか?

+0

あなたは '/ユーザ/ braitsch /私の-gitの/ bin'、右にあなたのパスを更新しましたか? '/ Users/braitsch/my-git/bin/git'ではなく? – VonC

+0

私はしました、ごめん、それはタイプミスでした。ちょうど修正しました。すべてがgit stash以外のこの設定で動作しているようです。パッケージインストーラが作成する 'usr/local/git'ディレクトリに、Gitが必要とするすべてのものが入っているのでしょうか、Gitはファイルシステムの他の依存関係に手を差し伸べていますか?再度、感謝します。 – braitsch

+0

'git stash'の正確なコマンドは何ですか? (正確なエラーメッセージは?)( ' - 'で' git -stash'を書いたからです) – VonC

答えて

3

私にとってうまくいくのは(git stashを含む)gitリポジトリをクローンすることです。 :

cd 
git clone git://github.com/gitster/git.git 
cd git 
make 

は(私は以前、最近のDebianベースのディストリビューションで動作します sudo apt-get build-dep gitでビルドの依存関係をインストールしていた - あなたはビルドエラーを取得する場合それ以外の場合はあなただけではgitのビルド依存関係をインストールする必要がありますどのような。あなたが通常使用するメカニズム)

その後あなたがこのgitのを呼び出すことができます。

$ export GIT_EXEC_PATH=~/git/ 
$ ~/git/git --version 
git version 1.7.7.rc0.72.g4b5ea 

...または代わりに、環境変数の~/git/git --exec-path=/home/mark/gitを使用。

例えば、あなたがどこにも組み込まれてソースツリーを移動することができ、そしてそれはまだ動作します。:

$ mv ~/git ~/tmp/ 
$ export GIT_EXEC_PATH=~/tmp/git/ 
$ ~/tmp/git/git --version 
git version 1.7.7.rc0.72.g4b5ea 
+0

こんにちはマーク、ご回答いただきありがとうございますが、残念ながらこれは私のためには機能しません。 '--exec-path'を何かに設定しようとすると、エラーがスローされます。 'git --exec-path =/Users/braitsch/test-dir/git'を実行し、export GIT_EXEC_PATHを介してENV変数を設定することは無視されます。私はそれをコンパイルしたのと同じ場所にGitを残しておけば、隠しを取得して(httpsを超えて)クローンするだけで作業できるようです。私は上記のあなたの指示から何かを逃していますか?あなたの助けをもう一度ありがとう。 – braitsch

+0

コンパイルされたコードリクエストのディレクトリを 'git clone'に移動し、' git fetch'がhttpsで 'fatal:フェイルオーバーすると、' https 'のリモートヘルパーが見つかりませんでした。 libcurlへのパス。 – braitsch

+0

私はこれが効いていると思います。いくつか更新する予定です... – braitsch

-3

VM(仮想ボックスは無料)を使用し、Linuxマシンでビルドして使用します。独自のものを構築しておくと、バージョンを簡単に切り替えることができます。

これが役に立ちます。

+1

カスタムgitインストール場所だけのVM? –

+0

実際にうまくいく –

+1

私はこれを行いました。それ自体が本当にうまくいく間に、このソリューションは長期的にはあまり役に立たないことがすぐに分かります。 – amn

2

ソースから再ビルドします。 http://git-scm.com/からタールボールをつかみ、./configure --prefix=/path/to/my-git/を使ってビルドします。

編集:私は再配置可能なGitのインストールを作成する方法私の頭の上からわからないんだけど、あなたがそれをインストールし、特定の、ユニークな、接頭辞でそれを構築することにより開始する場合は、インストールされてgrepをプレフィックス(つまり、grep -R my-git /path/to/my-git/)のファイルは、おそらく良い出発点になります。

+0

私はこれに投票します。パッケージマネージャをバイパスしている場合は、完全にバイパスして、すべてを自分で実行してください。 –

+0

ありがとうございます。私が実際にやろうとしているのは、他のマシンに移植することができる自己完結型バイナリまたはパッケージを見つけるか生成することです。私はGitクライアントを構築中ですが、Gitや他の依存関係を手動でインストールしてGitを実行させるというシナリオを回避しようとしています。ソースからコンパイルすると、私が作成したインスタンスを特定のマシンに結びつけませんか? – braitsch

+0

ダビッドありがとう、私はそのショットを与えるだろう、乾杯。 – braitsch