Ubuntu環境下,如何安裝git

測試環境

以下的說明,均在「Xubuntu 14.04 64位元」的環境下測試。

安裝指令

1
$ sudo apt-get install git

是的,這篇文章的標題,只需要一行指令就可以說明了。
感覺這篇有點在充數,呵呵,我自己不能說是「xx充數」。
基本上相關的安裝方式只要參考「這篇中文)」,就知道怎麼安裝了。
並且本篇不討論用編譯原始碼的方式安裝git,只有討論用Ubuntu套件的方式安裝。

套件探索

以下是套件探索的紀錄。有興趣深究的人,再繼續研讀下去吧。

查詢git相關的套件

可以執行這個指令

1
$ apt-cache search ^git-

或是下面這個

1
$ sudo apt-get install git- # 此時按下「tab」鍵。應該就會出現「git-」開頭的列表。

探索 「package: git」 和 「source package: git

先準備等會要工作的環境。

1
2
3
$ mkdir ~/tmp/git -p
$ cd ~/tmp/git
$ mkdir source download

下載「git」的「source package」,並且解開。

1
2
3
$ cd ~/tmp/git/source
$ apt-get source git
$ cd git-1.9.1/

觀看「control」檔,基本上,你可以發現「git」的「source package」拆成了很多「package」。看網頁的說明,也可以看到拆成那些「package」。

1
$ vi debian/control

下載「git」的「package」,並且解開。

1
2
3
4
5
$ cd ~/tmp/git/download
$ apt-get download git
$ dpkg -x git_1%3a1.9.1-1_amd64.deb git
$ dpkg -e git_1%3a1.9.1-1_amd64.deb
# ar xf git_1%3a1.9.1-1_amd64.deb

觀看「control」檔。會發現「Depends: …略… git-man」,也就是說安裝「git」會連同安裝「git-man」。

1
$ vi DEBIAN/control

若你已經安裝「git」了,也可以執行下面的指令,看到上面「control」檔紀錄的資訊。

1
$ dpkg -s git

如何知道「git」這個「套件」是否已經安裝在你的系統上了。

1
$ dpkg -l git

如何知道「git」這個「指令」屬於哪個「套件」。

1
$ dpkg -S /usr/bin/git

你就會看到「git: /usr/bin/git」,「:」前面的那個「git」指的就是「/usr/bin/git」屬於「git」套件。

探索 「package: git-core

先準備等會要工作的環境。

1
2
3
$ mkdir ~/tmp/git-core -p
$ cd ~/tmp/git-core
$ mkdir download

下載「git-core」的「package」,並且解開。

1
2
3
4
5
$ cd ~/tmp/git-core/download
$ apt-get download git-core
$ dpkg -x git-core_1%3a1.9.1-1_all.deb git-core
$ dpkg -e git-core_1%3a1.9.1-1_all.deb
# ar xf git-core_1%3a1.9.1-1_all.deb

觀看「control」檔。會發現「Depends: git」,也就是說安裝「git-core」會連同安裝「git」。

1
$ vi DEBIAN/control

另外看到「Description:」那有提到下面的文字。

1
2
3
4
5
...略...
This is a transitional dummy package. The 'git-core' package has been
renamed to 'git', which has been installed automatically. This
git-core package is now obsolete, and can safely be removed from the
system if no other package depends on it.

「git-core」目前捨棄不用了,請直接使用「git」。
目前「git-core」只是個「meta package」或是「dummy package」。
作用是為了要讓以前有相依「git-core」的套件可以正常安裝。

探索 「package: git-all

先準備等會要工作的環境。

1
2
3
$ mkdir ~/tmp/git-all -p
$ cd ~/tmp/git-all
$ mkdir download

下載「git-all」的「package」,並且解開。

1
2
3
4
5
$ cd ~/tmp/git-all/download
$ apt-get download git-all
$ dpkg -x git-all_1%3a1.9.1-1_all.deb git-all
$ dpkg -e git-all_1%3a1.9.1-1_all.deb
# ar xf git-all_1%3a1.9.1-1_all.deb

觀看「control」檔。會發現「git (>> 1:1.9.1), git (<< 1:1.9.1-.), git-doc, git-el, git-arch, git-cvs, git-mediawiki, git-svn, git-email, git-gui, gitk, gitweb。

1
$ vi DEBIAN/control

另外看到「Description:」那有提到下面的文字。

1
2
......
This is a dummy package which brings in all subpackages.

也就是說「git-all」只是個「meta package」,為了方便安裝「git」的「subpackages」,也就是上面探索「git」的「source package」提到的拆成很多的「package」。

探索 「package: git-man

先準備等會要工作的環境。

1
2
3
$ mkdir ~/tmp/git-man -p
$ cd ~/tmp/git-man
$ mkdir download

下載「git-man」的「package」,並且解開。

1
2
3
4
5
$ cd ~/tmp/git-man/download
$ apt-get download git-man
$ dpkg -x git-man_1%3a1.9.1-1_all.deb git-man
$ dpkg -e git-man_1%3a1.9.1-1_all.deb
# ar xf git-man_1%3a1.9.1-1_all.deb

觀看「control」檔。

1
$ vi DEBIAN/control

看到「Description:」那有提到下面的文字。

1
2
3
...略...
This package provides reference documentation for use by the 'man'
utility and the 'git help' command.

了解有哪些「manual」可以查詢。

1
2
3
4
5
$ ls git-man/usr/share/man/
$ ls git-man/usr/share/man/man1 -1
$ ls git-man/usr/share/man/man3 -1
$ ls git-man/usr/share/man/man5 -1
$ ls git-man/usr/share/man/man7 -1

man 1

man 3

man 5

man 7

探索 「package: git-doc

先準備等會要工作的環境。

1
2
3
$ mkdir ~/tmp/git-doc -p
$ cd ~/tmp/git-doc
$ mkdir download

下載「git-doc」的「package」,並且解開。

1
2
3
4
5
$ cd ~/tmp/git-doc/download
$ apt-get download git-doc
$ dpkg -x git-doc_1%3a1.9.1-1_all.deb git-doc
$ dpkg -e git-doc_1%3a1.9.1-1_all.deb
# ar xf git-doc_1%3a1.9.1-1_all.deb

觀看「control」檔。

1
$ vi DEBIAN/control

看到「Description:」那有提到下面的文字。

1
2
...略...
This package provides the documentation.

基本上這個套件,就是「git」相關的文件,以「txt」或「html」的格式存在。

1
$ vi vi git-doc/usr/share/doc-base/ # 此時按下「tab鍵」。

會出現

1
2
3
4
5
6
7
8
9
10
11
12
13
everyday-git
git-index-format
git-reference-manual
git-tools
the-racy-git-problem
git-bisect-lk2009
git-pack-format
git-shallow-clone-design
git-trivial-merge-rules
git-howtos
git-protocol
git-technical
git-user-manual

可以觀看這些檔案的內容,會指引你找到文件的開始。
例如:

1
$ vi git-doc/usr/share/doc-base/everyday-git

你就會看到文件上紀錄著

1
2
3
4
5
6
7
8
9
10
11
12
Document: everyday-git
Title: Everyday Git With 20 Commands Or So
Author: Junio C Hamano
Abstract: A useful minimum set of git commands, in context.
Section: File Management

Format: Text
Files: /usr/share/doc/git-doc/everyday.txt

Format: HTML
Index: /usr/share/doc/git-doc/everyday.html
Files: /usr/share/doc/git-doc/everyday.html

若你有安裝「git-doc」這個套件,就可以執行下面的指令來觀看文件。

1
$ lynx /usr/share/doc/git-doc/everyday.html


1
$ firefox /usr/share/doc/git-doc/everyday.html


1
$ sensible-browser /usr/share/doc/git-doc/everyday.html


1
$ less /usr/share/doc/git-doc/everyday.txt