diff options
Diffstat (limited to 'INSTALL')
-rw-r--r-- | INSTALL | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000000..ae7f7508f8 --- /dev/null +++ b/INSTALL @@ -0,0 +1,141 @@ + + Git installation + +Normally you can just do "make" followed by "make install", and that +will install the git programs in your own ~/bin/ directory. If you want +to do a global install, you can do + + $ make prefix=/usr all doc info ;# as yourself + # make prefix=/usr install install-doc install-html install-info ;# as root + +(or prefix=/usr/local, of course). Just like any program suite +that uses $prefix, the built results have some paths encoded, +which are derived from $prefix, so "make all; make prefix=/usr +install" would not work. + +Alternatively you can use autoconf generated ./configure script to +set up install paths (via config.mak.autogen), so you can write instead + + $ make configure ;# as yourself + $ ./configure --prefix=/usr ;# as yourself + $ make all doc ;# as yourself + # make install install-doc install-html;# as root + + +Issues of note: + + - Ancient versions of GNU Interactive Tools (pre-4.9.2) installed a + program "git", whose name conflicts with this program. But with + version 4.9.2, after long hiatus without active maintenance (since + around 1997), it changed its name to gnuit and the name conflict is no + longer a problem. + + NOTE: When compiled with backward compatibility option, the GNU + Interactive Tools package still can install "git", but you can build it + with --disable-transition option to avoid this. + + - You can use git after building but without installing if you + wanted to. Various git commands need to find other git + commands and scripts to do their work, so you would need to + arrange a few environment variables to tell them that their + friends will be found in your built source area instead of at + their standard installation area. Something like this works + for me: + + GIT_EXEC_PATH=`pwd` + PATH=`pwd`:$PATH + GITPERLLIB=`pwd`/perl/blib/lib + export GIT_EXEC_PATH PATH GITPERLLIB + + - Git is reasonably self-sufficient, but does depend on a few external + programs and libraries: + + - "zlib", the compression library. Git won't build without it. + + - "openssl". Unless you specify otherwise, you'll get the SHA1 + library from here. + + If you don't have openssl, you can use one of the SHA1 libraries + that come with git (git includes the one from Mozilla, and has + its own PowerPC and ARM optimized ones too - see the Makefile). + + - libcurl library; git-http-fetch and git-fetch use them. You + might also want the "curl" executable for debugging purposes. + If you do not use http transfer, you are probably OK if you + do not have them. + + - expat library; git-http-push uses it for remote lock + management over DAV. Similar to "curl" above, this is optional. + + - "wish", the Tcl/Tk windowing shell is used in gitk to show the + history graphically, and in git-gui. + + - "ssh" is used to push and pull over the net + + - "perl" and POSIX-compliant shells are needed to use most of + the bare-bones Porcelainish scripts. + + - Some platform specific issues are dealt with Makefile rules, + but depending on your specific installation, you may not + have all the libraries/tools needed, or you may have + necessary libraries at unusual locations. Please look at the + top of the Makefile to see what can be adjusted for your needs. + You can place local settings in config.mak and the Makefile + will include them. Note that config.mak is not distributed; + the name is reserved for local settings. + + - To build and install documentation suite, you need to have + the asciidoc/xmlto toolchain. Because not many people are + inclined to install the tools, the default build target + ("make all") does _not_ build them. + + "make doc" builds documentation in man and html formats; there are + also "make man", "make html" and "make info". Note that "make html" + requires asciidoc, but not xmlto. "make man" (and thus make doc) + requires both. + + "make install-doc" installs documentation in man format only; there + are also "make install-man", "make install-html" and "make + install-info". + + Building and installing the info file additionally requires + makeinfo and docbook2X. Version 0.8.3 is known to work. + + Building and installing the pdf file additionally requires + dblatex. Version 0.2.7 with asciidoc >= 8.2.7 is known to work. + + The documentation is written for AsciiDoc 7, but "make + ASCIIDOC8=YesPlease doc" will let you format with AsciiDoc 8. + + Alternatively, pre-formatted documentation is available in + "html" and "man" branches of the git repository itself. For + example, you could: + + $ mkdir manual && cd manual + $ git init + $ git fetch-pack git://git.kernel.org/pub/scm/git/git.git man html | + while read a b + do + echo $a >.git/$b + done + $ cp .git/refs/heads/man .git/refs/heads/master + $ git checkout + + to checkout the pre-built man pages. Also in this repository: + + $ git checkout html + + would instead give you a copy of what you see at: + + http://www.kernel.org/pub/software/scm/git/docs/ + + There are also "make quick-install-doc", "make quick-install-man" + and "make quick-install-html" which install preformatted man pages + and html documentation. + This does not require asciidoc/xmlto, but it only works from within + a cloned checkout of git.git with these two extra branches, and will + not work for the maintainer for obvious chicken-and-egg reasons. + + It has been reported that docbook-xsl version 1.72 and 1.73 are + buggy; 1.72 misformats manual pages for callouts, and 1.73 needs + the patch in contrib/patches/docbook-xsl-manpages-charmap.patch |