Git installation 通常は、「make」の後に「make install」を実行するだけで、gitプログラムが自分の ~/bin/ ディレクトリにインストールされます(訳注: ~/share も使う)。グローバルインストールを実行する場合は、以下のようにすることができます。 $ make prefix=/usr all doc info ;# as yourself # make prefix=/usr install install-doc install-html install-info ;# as root (もちろん、 prefix=/usr/local でもOK)。 $prefix を使用する他のプログラムスイートと同様に、ビルドされた結果には、$prefixから派生したいくつかのパスが埋め込まれているため、「make all; make prefix=/usr install」は機能しません。 Makefileの冒頭には、gitの構築方法に影響を与える多くの変数が記載されています。 これらは、コマンドラインまたはconfig.makファイルからオーバーライドできます。 または、autoconfで生成された ./configure スクリプトを使用してインストールパスを設定することもできます(config.mak.autogenを介して)。代わりに以下のように記述できます。 $ make configure ;# as yourself $ ./configure --prefix=/usr ;# as yourself $ make all doc ;# as yourself # make install install-doc install-html;# as root ビルド時間を(はるかに)長くして、後で高速なgitとトレードオフする場合は、以下のようにプロファイルフィードバックビルド(profile feedback build)を実行することもできます。 $ make prefix=/usr profile # make prefix=/usr PROFILE=BUILD install これにより、完全なテストスイートがトレーニングワークロード(training workload)として実行され、生成されたプロファイルフィードバック(profile feedback)を使用してgitが再構築されます。 これにより、CPUを集中的に使用するワークロードでgitが数パーセント高速になります。 これは、配布パッケージャーにとっては良いトレードオフになる可能性があります。 または、gitベンチマークスイート(git benchmark suite)でのみプロファイルフィードバック(profile feedback)を実行できます。 これは、完全なテストスイートよりも大幅に高速に実行されますが、カバレッジは低くなります。 $ make prefix=/usr profile-fast # make prefix=/usr PROFILE=BUILD install または、プロファイルに最適化されたバージョンのgitをホームディレクトリにインストールするだけの場合は、以下のコマンドを実行できます: $ make profile-install または $ make profile-fast-install 警告: プロファイル最適化(profile-optimized)ビルドは、gitツリーを2回ビルドする必要があるため、「かなり」時間がかかります。プロファイリング測定を正しく機能させるには、ccacheを無効にし、テストスイートを単一のCPUのみを使用して実行する必要があります。さらに、プロファイルフィードバックビルドステージ(profile feedback build stage)は現在、多くの追加のコンパイラ警告を生成します。 注意事項: - GNU Interactive Toolsの古いバージョン(4.9.2より前)は、「git」という名前のプログラムをインストールしましたが、その名前はこのプログラムと競合しています。しかし、バージョン4.9.2では、アクティブなメンテナンスを行わずに長期間休止した後(1997年頃から)、名前がgnuitに変更され、もはや名前の競合は問題になりません。 注 下位互換性オプションを使用してコンパイルした場合でも、 GNU Interactive Toolsパッケージは「git」をインストールできますが、 これを回避するために --disable-transition オプションを使用してビルドできます。 - ビルド後にはgitを使用できますが、テスト的に使用する場合はインストールせずに使用できます。ビルドディレクトリの bin-wrappers ディレクトリにあるgitを実行するか、そのディレクトリを $PATHの前に追加します(訳注:つまり、あなたの作業ツリー内で、 hogehoge/git/bin-wrappers/git version 等と実行できる)。 ただし、これはインストールされたgitを実行するよりも効率的ではありません。これは、gitサブコマンドを実行するために常に追加のfork+execが必要になるためです。 いくつかの環境変数を設定することで、インストールせずにgitを使用することも可能です。 従来はこの方法でしたが、 ビルドディレクトリのbin-wrappersディレクトリにあるgitを使用する方がはるかに簡単です。 歴史的な参考として書いておくと、 古い方法は以下のとおりです: GIT_EXEC_PATH=`pwd` PATH=`pwd`:$PATH GITPERLLIB=`pwd`/perl/build/lib export GIT_EXEC_PATH PATH GITPERLLIB - (NO_PERLが指定されていない限り)デフォルトではGitはさまざまなperlスクリプトを出荷します。ただし、簡単にするために、 ExtUtils::MakeMaker ツールチェーンを使用してperlライブラリを配置する場所を決定することはありません。システムによっては、Git自体以外で使用されることが予想される場合、perlライブラリが希望する場所にない可能性があります。 これが気になる問題である場合、 perllibdir プレフィックスを手動で指定すると、 これが修正されます。例: prefix=/usr perllibdir=/usr/$(/usr/bin/perl -MConfig -wle 'print substr $Config{installsitelib}, 1 + length $Config{siteprefixexp}') そうすると結果は、例えば、Debianでは perllibdir=/usr/share/perl/5.26.1 で、 CentOSでは perllibdir=/usr/share/perl5 (これがデフォルトです)です。 - NO_PERLが指定されていない限り、Gitは必要なさまざまなperlライブラリを出荷します。 Gitのディストリビューターは、NO_PERLが指定されていない場合、Gitが必要とするCPANモジュールの独自のコピーを使用するために、通常はNO_PERL_CPAN_FALLBACKSを設定する必要があります。 - Gitは適度に自給自足ですが、いくつかの外部プログラムとライブラリに依存します。 makeコマンドラインまたはconfig.makファイルに適切な「NO_=YesPlease」を追加することで、Gitはそれらのほとんどを利用せずに使用できます。 - "zlib" 圧縮ライブラリ。Gitはこれなしでは構築できません。 - "ssh" は、ネット越しにプッシュおよびプルするために使用されます。 - POSIX準拠のシェル が、日々の使用に必要ないくつかのスクリプト(「bisect」、「request-pull」など)を実行するために必要です。 - 一部の機能を使用するには、「Perl」バージョン5.8以降が必要です(たとえば、「git send-email」を使用したパッチの送信、「git svn」を使用したsvnリポジトリとの対話)。 これらがなくてもよい場合は、NO_PERLを使用してください。 Redhat/Fedoraの最近のリリースでは、一部のコア・モジュールが削除されたPerlバイナリパッケージが出荷されていると報告されているため(http://lwn.net/Articles/477234/を参照)、Perl自体以外の追加パッケージ、例えば Digest::MD5 や File::Spec や File::Temp や Net::Domain や Net::SMTP や Time::HiRes をインストールする必要がある場合があります。 - git-imap-sendは、7.34.0より古いlibcurlを使用している場合、SSLを介してIMAPと通信するためにOpenSSLライブラリを必要とします。それ以外の場合は、git-imap-sendを失うことなくNO_OPENSSLを使用できます。 - 「libcurl」ライブラリは、 http:// または https:// を介してリポジトリをフェッチおよびプッシュするために使用されます。また、curlバージョンが7.34.0以上の場合はgit-imap-sendによって使用されます。その機能が必要ない場合は、NO_CURLを使用してそれなしでビルドします。 GitをNO_CURL指定「なし」でビルドするには、 バージョン「7.19.5」以降の「libcurl」が必要です。 このバージョン要件は、将来的に引き上げられる可能性があります。 - 「expat」ライブラリ。git-http-pushがDAVを介したリモートロック管理に使用します。 上記の「curl」と同様に、これはオプションです(必要無い場合はNO_EXPATを使用)。 - "wish" つまり、Tcl/Tk ウィンドウシェルは、履歴をグラフィカルに表示するためにgitkとgit-guiで使用されます。gitkまたはgit-guiが必要ない場合は、NO_TCLTKを使用できます。 - デフォルトでは、Gitをローカライズするためにgettextライブラリが使用されます。 主なターゲットはGNU libintlですが、Solarisのgettext実装も機能します。 システムにはCコード用のgettext.h、 シェルスクリプト用のgettext.sh(またはSolaris gettext(1))、 Perlプログラム用のlibintl-perlが必要です。 NO_GETTEXTを設定して、ローカライゼーションサポートを無効にし、 Gitが英語のみを使用するようにします。 autoconfの下で、configureスクリプトは、システム上でlibintlが見つからない場合、これを自動的に実行します。 - PERFORCEへのgit-p4インターフェースを使用するには、Pythonバージョン2.7以降が必要です。 - 一部のプラットフォーム固有の問題はMakefileルールで処理されますが、特定のインストールによっては、必要なすべてのライブラリ/ツールがない場合や、通常とは異なる場所に必要なライブラリがある場合があります。Makefileの冒頭を見て、ニーズに合わせて調整できるものを確認してください。ローカル設定をconfig.makに配置すると、Makefileにそれらが含まれます。注意: config.makは配布されないことに注意してください。ローカル設定での名前はローカル設定用に予約されています。 - ドキュメントスイートをビルドしてインストールするには、 asciidoc/xmlto ツールチェーンが必要です。 多くの人がそのツールをインストールする傾向がないため、デフォルトのビルドターゲット(「make all」)はドキュメントスイートをビルドしません。 「make doc」は、manおよびhtml形式のドキュメントを作成します。 「make man」、「make html」、「make info」もあります。 「make html」にはasciidocが必要ですが、xmltoは必要ないことに注意してください。 「make man」(したがってそれを含むmake doc)には両方が必要です。 「make install-doc」は、ドキュメントをman形式でのみインストールします。 「make install-man」、「make install-html」、「make install-info」も あります。 infoファイルの作成とインストールには、makeinfoとdocbook2Xが追加で必要です。 バージョン0.8.3が機能することが知られています。 PDFファイルのビルドとインストールには、さらにdblatexが必要です。 バージョン >= 0.2.7 が機能することがわかっています。 すべての形式には、少なくともasciidoc8.4.1が必要です。 または、USE_ASCIIDOCTOR=YesPleaseを渡してAsciidoctor(Rubyが必要)を使用することもできます。 Asciidoctorは少なくともバージョン1.5が必要です。 事前にフォーマットされたマニュアルページとhtmlドキュメントをインストールする 「make quick-install-doc」と「make quick-install-man」と「make quick-install-html」もあります。 これらのビルドターゲットを使用するには、 git自体のクローンの隣に 2つの別々のgit-htmldocsリポジトリとgit-manpagesリポジトリを複製する必要があります。 サポートされているdocbook-xslの最小バージョンは1.74です。 Cygwinでドキュメントを作成しようとしているユーザーは、 /etc/xml/catalogファイルが以下のようになっていることを確認する必要があります: これは、以下の2つのxmlcatalogコマンドで実現できます: xmlcatalog --noout \ --add rewriteURI \ http://docbook.sourceforge.net/release/xsl/current \ /usr/share/sgml/docbook/xsl-stylesheets \ /etc/xml/catalog xmlcatalog --noout \ --add rewriteURI \ http://www.oasis-open.org/docbook/xml/4.5/xsl/current \ /usr/share/sgml/docbook/xml-dtd-4.5 \ /etc/xml/catalog