ubuntu 16.10以前でgnu global(gtags)を使うなら、ソースからビルドしよう

コメントを受けて追記：
ubuntu 16.04, 16.10ユーザーは、2017.5.8時点では、
ubuntu 17.04向けのdebファイル（バイナリパッケージ）をlaunchpadから単品ダウンロードしてインストールできるようです（つまりソースからのビルドが不要）。
amd64版なら
https://launchpad.net/ubuntu/zesty/amd64/global/6.5.6-2
からダウンロード。

（追記終わり）

## apt-getでインストールしちゃあかんの？

2017.1.10現在でのglobal本家の最新版は6.5.6ですが、
（apt-getなどでインストールされる）ubuntuパッケージリポジトリにあるものは5.7.1と古すぎるので。
本家MLでも言及されてました。
http://lists.gnu.org/archive/html/info-global/2012-06/msg00000.html

```
GLOBAL-6.2.4 is far faster than 5.7.1, and many bugs are fixed.
Additionally, it has also many new functions like follows:

o Function layer built-in parser.
o Function layer plug-in parser.
o Integration with Cflow(htags).
o Allow a path name which includes blanks.
o Detect looped symbolic links(gtags).
o Auto completion in search form(htags).
o Dynamic file browser(htags).
o Server side GLOBAL (client/server mode).
o TRAMP support(emacs).
o Auto updating tag files(emacs, vim).
and etc,
```

最近のバージョンのほうがソースコードのパースが高速化されて機能も増えているということで、新バージョンを使ったほうが開発が捗る！

6.3.2からはPygmentsによりglobalの対応言語が大幅に増えたので、globalの活用シーンが広がっています。
（対応言語は `Awk, Dos batch, COBOL, C, C++, C#, Erlang, Fortran, Java, JavaScript, Lisp, Lua, Pascal, Perl, PHP, Python, Ruby, Matlab, OCaml, Scheme, Tcl, TeX, Verilog, VHDL, Vim`　cf. http://www.tamacom.com/handbook/new.html#6.3.2）

## ubuntu 17.04以降は？

どうもパッケージのメンテナが交代したおかげで？、
ubuntu 17.04ではパッケージリポジトリに入るバージョンは最新版になるようです。
↓ 2017.1.10 時点でのubuntu各バージョンのglobalのバージョン
　http://packages.ubuntu.com/search?suite=all&searchon=names&keywords=global
![gnuglobal-versions-on-ubuntu.png](https://qiita-image-store.s3.amazonaws.com/0/41296/48589805-ab3b-5eab-4f13-d2ff11fcd80f.png)

バージョンアップに伴い、htags関連でglobal本家にはないubuntuパッケージ版の独自機能が2つほど削除されているようなので、その機能を使っていた方は注意。
（gtagsだけ使って、globalコマンドやvim, emacsから使っている方には影響はないはず。）
削除された機能：

* htmake and htconfig
* alternate compressed suffix functionality for htags

（  cf. http://changelogs.ubuntu.com/changelogs/pool/universe/g/global/global_6.5.6-2/changelog ）

## ソースからビルドするには

### 手段1：本家tarballをビルド

aptでバージョン管理しなくて良いなら、global本家サイトからtarballをダウンロードしてきて `./configure && make && make install` するだけです。
より詳しくは、例えば
http://qiita.com/yoshizow/items/9cc0236ac0249e0638ff
を参照してください。

### 手段2：頑張ってdebパッケージを作成

できるならaptでバージョン管理したい！という方に。
2017.5.17時点でubuntu 17.04向け最新バージョンの 6.5.6-2 のソースをubuntu 14.04向けにdebパッケージにビルドしてインストールする手順は以下の通り（すべてubuntu 14.04上で行います）。

1. `sudo apt-get install devscripts equivs build-essential autoconf`
1. 好きなところに空ディレクトリを作り、ターミナルを開いてそこにcdする
1. https://launchpad.net/ubuntu/+source/global/6.5.6-2 のページ上の "Downloads" の箇所にある次の3つのファイルを、wgetなり何なりでカレントディレクトリにダウンロード
  * global_6.5.6-2.dsc
  * global_6.5.6.orig.tar.gz
  * global_6.5.6-2.debian.tar.xz
1. `dpkg-source -x global_6.5.6-2.dsc`
1. `cd global-6.5.6`
1. ./debian/control をエディタで開き、Build-Dependsの欄にある
 "libtool-bin" を "libtool" に変更
  * ubuntu 16.04でパッケージが分割されたのか、14.04には libtool-bin パッケージは無いので。
1. ./debian/control のBuild-Dependsの欄にあるパッケージをapt-getでインストール
    * コマンド1つで実行するなら `mk-build-deps --install --root-cmd "sudo"`
1. `debuild -us -uc -b`
  * 成功したら、 ../ に.debファイルが生成されています
1. `sudo dpkg -i ../(生成された.debファイル)`

ubuntu向けgnu globalのソースの最新バージョンは、 https://launchpad.net/ubuntu/+source/global のページ上の "Latest upload:" の箇所を見てください。