「GNU GLOBAL」ソースコードタグシステム。
Linuxカーネル等の大規模プロジェクトのソースコードを調査するのに重宝する道具です。
Linuxでソースコードを読む場合,Vim等と連携する事で,調査等の再便利です。
GNE GLOBALの利用法は他のサイトを参考にしていただき
この記事ではインストール方法を紹介したと思います。
目次
インストール作業の概要
前提パッケージインストール
[root@CentOS7 systemd-219]# yum install wget gcc ncurses-devel vim
ソースのダウンロード
[root@CentOS7 src]# wget ftp://ftp.gnu.org/pub/gnu/global/global-6.5.6.tar.gz
ソースの展開
[root@CentOS7 src]# tar xzvf global-6.5.6.tar.gz
make install
[root@CentOS7 global-6.5.6]# ./configure [root@CentOS7 global-6.5.6]# make [root@CentOS7 global-6.5.6]# make install
インストール時のログ
前提パッケージインストール
[root@CentOS7 systemd-219]# yum install wget gcc ncurses-devel vim 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ gcc.x86_64 0:4.8.5-11.el7 を インストール --> 依存性の処理をしています: libgomp = 4.8.5-11.el7 のパッケージ: gcc-4.8.5-11.el7.x86_64 --> 依存性の処理をしています: cpp = 4.8.5-11.el7 のパッケージ: gcc-4.8.5-11.el7.x86_64 --> 依存性の処理をしています: libgcc >= 4.8.5-11.el7 のパッケージ: gcc-4.8.5-11.el7.x86_64 --> 依存性の処理をしています: glibc-devel >= 2.2.90-12 のパッケージ: gcc-4.8.5-11.el7.x86_64 --> 依存性の処理をしています: libmpfr.so.4()(64bit) のパッケージ: gcc-4.8.5-11.el7.x86_64 --> 依存性の処理をしています: libmpc.so.3()(64bit) のパッケージ: gcc-4.8.5-11.el7.x86_64 ---> パッケージ ncurses-devel.x86_64 0:5.9-13.20130511.el7 を インストール ---> パッケージ vim-enhanced.x86_64 2:7.4.160-1.el7_3.1 を インストール --> 依存性の処理をしています: vim-common = 2:7.4.160-1.el7_3.1 のパッケージ: 2:vim-enhanced-7.4.160-1.el7_3.1.x86_64 --> 依存性の処理をしています: perl(:MODULE_COMPAT_5.16.3) のパッケージ: 2:vim-enhanced-7.4.160-1.el7_3.1.x86_64 --> 依存性の処理をしています: libperl.so()(64bit) のパッケージ: 2:vim-enhanced-7.4.160-1.el7_3.1.x86_64 --> 依存性の処理をしています: libgpm.so.2()(64bit) のパッケージ: 2:vim-enhanced-7.4.160-1.el7_3.1.x86_64 ---> パッケージ wget.x86_64 0:1.14-13.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ cpp.x86_64 0:4.8.5-11.el7 を インストール ---> パッケージ glibc-devel.x86_64 0:2.17-157.el7_3.1 を インストール --> 依存性の処理をしています: glibc-headers = 2.17-157.el7_3.1 のパッケージ: glibc-devel-2.17-157.el7_3.1.x86_64 --> 依存性の処理をしています: glibc = 2.17-157.el7_3.1 のパッケージ: glibc-devel-2.17-157.el7_3.1.x86_64 --> 依存性の処理をしています: glibc-headers のパッケージ: glibc-devel-2.17-157.el7_3.1.x86_64 ---> パッケージ gpm-libs.x86_64 0:1.20.7-5.el7 を インストール ---> パッケージ libgcc.x86_64 0:4.8.5-4.el7 を 更新 ---> パッケージ libgcc.x86_64 0:4.8.5-11.el7 を アップデート ---> パッケージ libgomp.x86_64 0:4.8.5-4.el7 を 更新 ---> パッケージ libgomp.x86_64 0:4.8.5-11.el7 を アップデート ---> パッケージ libmpc.x86_64 0:1.0.1-3.el7 を インストール ---> パッケージ mpfr.x86_64 0:3.1.1-4.el7 を インストール ---> パッケージ perl.x86_64 4:5.16.3-291.el7 を インストール --> 依存性の処理をしています: perl(Socket) >= 1.3 のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Scalar::Util) >= 1.10 のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl-macros のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(threads::shared) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(threads) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(constant) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Time::Local) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Time::HiRes) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Storable) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Socket) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Scalar::Util) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Pod::Simple::XHTML) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Pod::Simple::Search) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Getopt::Long) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Filter::Util::Call) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(File::Temp) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(File::Spec::Unix) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(File::Spec::Functions) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(File::Spec) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(File::Path) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Exporter) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Cwd) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 --> 依存性の処理をしています: perl(Carp) のパッケージ: 4:perl-5.16.3-291.el7.x86_64 ---> パッケージ perl-libs.x86_64 4:5.16.3-291.el7 を インストール ---> パッケージ vim-common.x86_64 2:7.4.160-1.el7_3.1 を インストール --> 依存性の処理をしています: vim-filesystem のパッケージ: 2:vim-common-7.4.160-1.el7_3.1.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ glibc.x86_64 0:2.17-105.el7 を 更新 --> 依存性の処理をしています: glibc = 2.17-105.el7 のパッケージ: glibc-common-2.17-105.el7.x86_64 ---> パッケージ glibc.x86_64 0:2.17-157.el7_3.1 を アップデート ---> パッケージ glibc-headers.x86_64 0:2.17-157.el7_3.1 を インストール --> 依存性の処理をしています: kernel-headers >= 2.2.1 のパッケージ: glibc-headers-2.17-157.el7_3.1.x86_64 --> 依存性の処理をしています: kernel-headers のパッケージ: glibc-headers-2.17-157.el7_3.1.x86_64 ---> パッケージ perl-Carp.noarch 0:1.26-244.el7 を インストール ---> パッケージ perl-Exporter.noarch 0:5.68-3.el7 を インストール ---> パッケージ perl-File-Path.noarch 0:2.09-2.el7 を インストール ---> パッケージ perl-File-Temp.noarch 0:0.23.01-3.el7 を インストール ---> パッケージ perl-Filter.x86_64 0:1.49-3.el7 を インストール ---> パッケージ perl-Getopt-Long.noarch 0:2.40-2.el7 を インストール --> 依存性の処理をしています: perl(Pod::Usage) >= 1.14 のパッケージ: perl-Getopt-Long-2.40-2.el7.noarch --> 依存性の処理をしています: perl(Text::ParseWords) のパッケージ: perl-Getopt-Long-2.40-2.el7.noarch ---> パッケージ perl-PathTools.x86_64 0:3.40-5.el7 を インストール ---> パッケージ perl-Pod-Simple.noarch 1:3.28-4.el7 を インストール --> 依存性の処理をしています: perl(Pod::Escapes) >= 1.04 のパッケージ: 1:perl-Pod-Simple-3.28-4.el7.noarch --> 依存性の処理をしています: perl(Encode) のパッケージ: 1:perl-Pod-Simple-3.28-4.el7.noarch ---> パッケージ perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 を インストール ---> パッケージ perl-Socket.x86_64 0:2.010-4.el7 を インストール ---> パッケージ perl-Storable.x86_64 0:2.45-3.el7 を インストール ---> パッケージ perl-Time-HiRes.x86_64 4:1.9725-3.el7 を インストール ---> パッケージ perl-Time-Local.noarch 0:1.2300-2.el7 を インストール ---> パッケージ perl-constant.noarch 0:1.27-2.el7 を インストール ---> パッケージ perl-macros.x86_64 4:5.16.3-291.el7 を インストール ---> パッケージ perl-threads.x86_64 0:1.87-4.el7 を インストール ---> パッケージ perl-threads-shared.x86_64 0:1.43-6.el7 を インストール ---> パッケージ vim-filesystem.x86_64 2:7.4.160-1.el7_3.1 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ glibc-common.x86_64 0:2.17-105.el7 を 更新 ---> パッケージ glibc-common.x86_64 0:2.17-157.el7_3.1 を アップデート ---> パッケージ kernel-headers.x86_64 0:3.10.0-514.6.1.el7 を インストール ---> パッケージ perl-Encode.x86_64 0:2.51-7.el7 を インストール ---> パッケージ perl-Pod-Escapes.noarch 1:1.04-291.el7 を インストール ---> パッケージ perl-Pod-Usage.noarch 0:1.63-3.el7 を インストール --> 依存性の処理をしています: perl(Pod::Text) >= 3.15 のパッケージ: perl-Pod-Usage-1.63-3.el7.noarch --> 依存性の処理をしています: perl-Pod-Perldoc のパッケージ: perl-Pod-Usage-1.63-3.el7.noarch ---> パッケージ perl-Text-ParseWords.noarch 0:3.29-4.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ perl-Pod-Perldoc.noarch 0:3.20-4.el7 を インストール --> 依存性の処理をしています: perl(parent) のパッケージ: perl-Pod-Perldoc-3.20-4.el7.noarch --> 依存性の処理をしています: perl(HTTP::Tiny) のパッケージ: perl-Pod-Perldoc-3.20-4.el7.noarch ---> パッケージ perl-podlators.noarch 0:2.5.1-3.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ perl-HTTP-Tiny.noarch 0:0.033-3.el7 を インストール ---> パッケージ perl-parent.noarch 1:0.225-244.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました =============================================================================================================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 =============================================================================================================================================================================== インストール中: gcc x86_64 4.8.5-11.el7 base 16 M ncurses-devel x86_64 5.9-13.20130511.el7 base 713 k vim-enhanced x86_64 2:7.4.160-1.el7_3.1 updates 1.0 M wget x86_64 1.14-13.el7 base 546 k 依存性関連でのインストールをします: cpp x86_64 4.8.5-11.el7 base 5.9 M glibc-devel x86_64 2.17-157.el7_3.1 updates 1.1 M glibc-headers x86_64 2.17-157.el7_3.1 updates 668 k gpm-libs x86_64 1.20.7-5.el7 base 32 k kernel-headers x86_64 3.10.0-514.6.1.el7 updates 4.8 M libmpc x86_64 1.0.1-3.el7 base 51 k mpfr x86_64 3.1.1-4.el7 base 203 k perl x86_64 4:5.16.3-291.el7 base 8.0 M perl-Carp noarch 1.26-244.el7 base 19 k perl-Encode x86_64 2.51-7.el7 base 1.5 M perl-Exporter noarch 5.68-3.el7 base 28 k perl-File-Path noarch 2.09-2.el7 base 26 k perl-File-Temp noarch 0.23.01-3.el7 base 56 k perl-Filter x86_64 1.49-3.el7 base 76 k perl-Getopt-Long noarch 2.40-2.el7 base 56 k perl-HTTP-Tiny noarch 0.033-3.el7 base 38 k perl-PathTools x86_64 3.40-5.el7 base 82 k perl-Pod-Escapes noarch 1:1.04-291.el7 base 51 k perl-Pod-Perldoc noarch 3.20-4.el7 base 87 k perl-Pod-Simple noarch 1:3.28-4.el7 base 216 k perl-Pod-Usage noarch 1.63-3.el7 base 27 k perl-Scalar-List-Utils x86_64 1.27-248.el7 base 36 k perl-Socket x86_64 2.010-4.el7 base 49 k perl-Storable x86_64 2.45-3.el7 base 77 k perl-Text-ParseWords noarch 3.29-4.el7 base 14 k perl-Time-HiRes x86_64 4:1.9725-3.el7 base 45 k perl-Time-Local noarch 1.2300-2.el7 base 24 k perl-constant noarch 1.27-2.el7 base 19 k perl-libs x86_64 4:5.16.3-291.el7 base 688 k perl-macros x86_64 4:5.16.3-291.el7 base 43 k perl-parent noarch 1:0.225-244.el7 base 12 k perl-podlators noarch 2.5.1-3.el7 base 112 k perl-threads x86_64 1.87-4.el7 base 49 k perl-threads-shared x86_64 1.43-6.el7 base 39 k vim-common x86_64 2:7.4.160-1.el7_3.1 updates 5.9 M vim-filesystem x86_64 2:7.4.160-1.el7_3.1 updates 9.7 k 依存性関連での更新をします: glibc x86_64 2.17-157.el7_3.1 updates 3.6 M glibc-common x86_64 2.17-157.el7_3.1 updates 11 M libgcc x86_64 4.8.5-11.el7 base 97 k libgomp x86_64 4.8.5-11.el7 base 152 k トランザクションの要約 =============================================================================================================================================================================== インストール 4 パッケージ (+36 個の依存関係のパッケージ) 更新 ( 4 個の依存関係のパッケージ) 総ダウンロード容量: 64 M Is this ok [y/d/N]: y Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed. (1/44): cpp-4.8.5-11.el7.x86_64.rpm | 5.9 MB 00:00:02 (2/44): glibc-2.17-157.el7_3.1.x86_64.rpm | 3.6 MB 00:00:02 (3/44): glibc-devel-2.17-157.el7_3.1.x86_64.rpm | 1.1 MB 00:00:00 (4/44): glibc-headers-2.17-157.el7_3.1.x86_64.rpm | 668 kB 00:00:00 (5/44): gpm-libs-1.20.7-5.el7.x86_64.rpm | 32 kB 00:00:00 (6/44): libgcc-4.8.5-11.el7.x86_64.rpm | 97 kB 00:00:00 (7/44): libgomp-4.8.5-11.el7.x86_64.rpm | 152 kB 00:00:00 (8/44): libmpc-1.0.1-3.el7.x86_64.rpm | 51 kB 00:00:00 (9/44): mpfr-3.1.1-4.el7.x86_64.rpm | 203 kB 00:00:00 (10/44): ncurses-devel-5.9-13.20130511.el7.x86_64.rpm | 713 kB 00:00:00 (11/44): kernel-headers-3.10.0-514.6.1.el7.x86_64.rpm | 4.8 MB 00:00:01 (12/44): glibc-common-2.17-157.el7_3.1.x86_64.rpm | 11 MB 00:00:06 (13/44): perl-5.16.3-291.el7.x86_64.rpm | 8.0 MB 00:00:02 (14/44): perl-Carp-1.26-244.el7.noarch.rpm | 19 kB 00:00:00 (15/44): perl-Encode-2.51-7.el7.x86_64.rpm | 1.5 MB 00:00:00 (16/44): perl-Exporter-5.68-3.el7.noarch.rpm | 28 kB 00:00:00 (17/44): perl-File-Path-2.09-2.el7.noarch.rpm | 26 kB 00:00:00 (18/44): perl-File-Temp-0.23.01-3.el7.noarch.rpm | 56 kB 00:00:00 (19/44): perl-Filter-1.49-3.el7.x86_64.rpm | 76 kB 00:00:00 (20/44): perl-Getopt-Long-2.40-2.el7.noarch.rpm | 56 kB 00:00:00 (21/44): perl-HTTP-Tiny-0.033-3.el7.noarch.rpm | 38 kB 00:00:00 (22/44): perl-PathTools-3.40-5.el7.x86_64.rpm | 82 kB 00:00:00 (23/44): perl-Pod-Escapes-1.04-291.el7.noarch.rpm | 51 kB 00:00:00 (24/44): perl-Pod-Perldoc-3.20-4.el7.noarch.rpm | 87 kB 00:00:00 (25/44): perl-Pod-Simple-3.28-4.el7.noarch.rpm | 216 kB 00:00:00 (26/44): perl-Pod-Usage-1.63-3.el7.noarch.rpm | 27 kB 00:00:00 (27/44): perl-Scalar-List-Utils-1.27-248.el7.x86_64.rpm | 36 kB 00:00:00 (28/44): perl-Socket-2.010-4.el7.x86_64.rpm | 49 kB 00:00:00 (29/44): perl-Storable-2.45-3.el7.x86_64.rpm | 77 kB 00:00:00 (30/44): perl-Text-ParseWords-3.29-4.el7.noarch.rpm | 14 kB 00:00:00 (31/44): gcc-4.8.5-11.el7.x86_64.rpm | 16 MB 00:00:07 (32/44): perl-Time-HiRes-1.9725-3.el7.x86_64.rpm | 45 kB 00:00:00 (33/44): perl-Time-Local-1.2300-2.el7.noarch.rpm | 24 kB 00:00:00 (34/44): perl-constant-1.27-2.el7.noarch.rpm | 19 kB 00:00:00 (35/44): perl-macros-5.16.3-291.el7.x86_64.rpm | 43 kB 00:00:00 (36/44): perl-parent-0.225-244.el7.noarch.rpm | 12 kB 00:00:00 (37/44): perl-podlators-2.5.1-3.el7.noarch.rpm | 112 kB 00:00:00 (38/44): perl-libs-5.16.3-291.el7.x86_64.rpm | 688 kB 00:00:00 (39/44): perl-threads-shared-1.43-6.el7.x86_64.rpm | 39 kB 00:00:00 (40/44): perl-threads-1.87-4.el7.x86_64.rpm | 49 kB 00:00:00 (41/44): vim-enhanced-7.4.160-1.el7_3.1.x86_64.rpm | 1.0 MB 00:00:00 (42/44): vim-filesystem-7.4.160-1.el7_3.1.x86_64.rpm | 9.7 kB 00:00:00 (43/44): vim-common-7.4.160-1.el7_3.1.x86_64.rpm | 5.9 MB 00:00:01 (44/44): wget-1.14-13.el7.x86_64.rpm | 546 kB 00:00:00 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 合計 6.9 MB/s | 64 MB 00:00:09 Running transaction check Running transaction test Transaction test succeeded Running transaction 更新します : libgcc-4.8.5-11.el7.x86_64 1/48 更新します : glibc-2.17-157.el7_3.1.x86_64 2/48 warning: /etc/nsswitch.conf created as /etc/nsswitch.conf.rpmnew 更新します : glibc-common-2.17-157.el7_3.1.x86_64 3/48 インストール中 : mpfr-3.1.1-4.el7.x86_64 4/48 インストール中 : libmpc-1.0.1-3.el7.x86_64 5/48 インストール中 : cpp-4.8.5-11.el7.x86_64 6/48 インストール中 : 1:perl-parent-0.225-244.el7.noarch 7/48 インストール中 : perl-HTTP-Tiny-0.033-3.el7.noarch 8/48 インストール中 : perl-podlators-2.5.1-3.el7.noarch 9/48 インストール中 : perl-Pod-Perldoc-3.20-4.el7.noarch 10/48 インストール中 : 1:perl-Pod-Escapes-1.04-291.el7.noarch 11/48 インストール中 : perl-Encode-2.51-7.el7.x86_64 12/48 インストール中 : perl-Text-ParseWords-3.29-4.el7.noarch 13/48 インストール中 : perl-Pod-Usage-1.63-3.el7.noarch 14/48 インストール中 : perl-threads-1.87-4.el7.x86_64 15/48 インストール中 : 4:perl-Time-HiRes-1.9725-3.el7.x86_64 16/48 インストール中 : perl-Exporter-5.68-3.el7.noarch 17/48 インストール中 : perl-Socket-2.010-4.el7.x86_64 18/48 インストール中 : perl-Carp-1.26-244.el7.noarch 19/48 インストール中 : perl-Storable-2.45-3.el7.x86_64 20/48 インストール中 : perl-threads-shared-1.43-6.el7.x86_64 21/48 インストール中 : perl-PathTools-3.40-5.el7.x86_64 22/48 インストール中 : perl-Scalar-List-Utils-1.27-248.el7.x86_64 23/48 インストール中 : 4:perl-libs-5.16.3-291.el7.x86_64 24/48 インストール中 : 4:perl-macros-5.16.3-291.el7.x86_64 25/48 インストール中 : perl-Time-Local-1.2300-2.el7.noarch 26/48 インストール中 : 1:perl-Pod-Simple-3.28-4.el7.noarch 27/48 インストール中 : perl-constant-1.27-2.el7.noarch 28/48 インストール中 : perl-File-Temp-0.23.01-3.el7.noarch 29/48 インストール中 : perl-File-Path-2.09-2.el7.noarch 30/48 インストール中 : perl-Filter-1.49-3.el7.x86_64 31/48 インストール中 : perl-Getopt-Long-2.40-2.el7.noarch 32/48 インストール中 : 4:perl-5.16.3-291.el7.x86_64 33/48 インストール中 : gpm-libs-1.20.7-5.el7.x86_64 34/48 更新します : libgomp-4.8.5-11.el7.x86_64 35/48 インストール中 : 2:vim-filesystem-7.4.160-1.el7_3.1.x86_64 36/48 インストール中 : 2:vim-common-7.4.160-1.el7_3.1.x86_64 37/48 インストール中 : kernel-headers-3.10.0-514.6.1.el7.x86_64 38/48 インストール中 : glibc-headers-2.17-157.el7_3.1.x86_64 39/48 インストール中 : glibc-devel-2.17-157.el7_3.1.x86_64 40/48 インストール中 : gcc-4.8.5-11.el7.x86_64 41/48 インストール中 : 2:vim-enhanced-7.4.160-1.el7_3.1.x86_64 42/48 インストール中 : wget-1.14-13.el7.x86_64 43/48 インストール中 : ncurses-devel-5.9-13.20130511.el7.x86_64 44/48 整理中 : libgomp-4.8.5-4.el7.x86_64 45/48 整理中 : glibc-2.17-105.el7.x86_64 46/48 整理中 : glibc-common-2.17-105.el7.x86_64 47/48 整理中 : libgcc-4.8.5-4.el7.x86_64 48/48 検証中 : perl-HTTP-Tiny-0.033-3.el7.noarch 1/48 検証中 : perl-threads-shared-1.43-6.el7.x86_64 2/48 検証中 : 4:perl-Time-HiRes-1.9725-3.el7.x86_64 3/48 検証中 : perl-threads-1.87-4.el7.x86_64 4/48 検証中 : perl-Exporter-5.68-3.el7.noarch 5/48 検証中 : perl-PathTools-3.40-5.el7.x86_64 6/48 検証中 : cpp-4.8.5-11.el7.x86_64 7/48 検証中 : 1:perl-Pod-Escapes-1.04-291.el7.noarch 8/48 検証中 : glibc-headers-2.17-157.el7_3.1.x86_64 9/48 検証中 : 1:perl-parent-0.225-244.el7.noarch 10/48 検証中 : glibc-common-2.17-157.el7_3.1.x86_64 11/48 検証中 : perl-File-Temp-0.23.01-3.el7.noarch 12/48 検証中 : wget-1.14-13.el7.x86_64 13/48 検証中 : 1:perl-Pod-Simple-3.28-4.el7.noarch 14/48 検証中 : perl-Time-Local-1.2300-2.el7.noarch 15/48 検証中 : gpm-libs-1.20.7-5.el7.x86_64 16/48 検証中 : perl-Pod-Perldoc-3.20-4.el7.noarch 17/48 検証中 : 2:vim-common-7.4.160-1.el7_3.1.x86_64 18/48 検証中 : perl-Socket-2.010-4.el7.x86_64 19/48 検証中 : glibc-devel-2.17-157.el7_3.1.x86_64 20/48 検証中 : perl-Carp-1.26-244.el7.noarch 21/48 検証中 : glibc-2.17-157.el7_3.1.x86_64 22/48 検証中 : ncurses-devel-5.9-13.20130511.el7.x86_64 23/48 検証中 : perl-Storable-2.45-3.el7.x86_64 24/48 検証中 : libgcc-4.8.5-11.el7.x86_64 25/48 検証中 : perl-Scalar-List-Utils-1.27-248.el7.x86_64 26/48 検証中 : libmpc-1.0.1-3.el7.x86_64 27/48 検証中 : 4:perl-libs-5.16.3-291.el7.x86_64 28/48 検証中 : 4:perl-macros-5.16.3-291.el7.x86_64 29/48 検証中 : perl-Pod-Usage-1.63-3.el7.noarch 30/48 検証中 : perl-Encode-2.51-7.el7.x86_64 31/48 検証中 : kernel-headers-3.10.0-514.6.1.el7.x86_64 32/48 検証中 : perl-podlators-2.5.1-3.el7.noarch 33/48 検証中 : perl-Getopt-Long-2.40-2.el7.noarch 34/48 検証中 : perl-constant-1.27-2.el7.noarch 35/48 検証中 : perl-File-Path-2.09-2.el7.noarch 36/48 検証中 : 4:perl-5.16.3-291.el7.x86_64 37/48 検証中 : mpfr-3.1.1-4.el7.x86_64 38/48 検証中 : perl-Filter-1.49-3.el7.x86_64 39/48 検証中 : perl-Text-ParseWords-3.29-4.el7.noarch 40/48 検証中 : libgomp-4.8.5-11.el7.x86_64 41/48 検証中 : 2:vim-enhanced-7.4.160-1.el7_3.1.x86_64 42/48 検証中 : gcc-4.8.5-11.el7.x86_64 43/48 検証中 : 2:vim-filesystem-7.4.160-1.el7_3.1.x86_64 44/48 検証中 : glibc-2.17-105.el7.x86_64 45/48 検証中 : glibc-common-2.17-105.el7.x86_64 46/48 検証中 : libgomp-4.8.5-4.el7.x86_64 47/48 検証中 : libgcc-4.8.5-4.el7.x86_64 48/48 インストール: gcc.x86_64 0:4.8.5-11.el7 ncurses-devel.x86_64 0:5.9-13.20130511.el7 vim-enhanced.x86_64 2:7.4.160-1.el7_3.1 wget.x86_64 0:1.14-13.el7 依存性関連をインストールしました: cpp.x86_64 0:4.8.5-11.el7 glibc-devel.x86_64 0:2.17-157.el7_3.1 glibc-headers.x86_64 0:2.17-157.el7_3.1 gpm-libs.x86_64 0:1.20.7-5.el7 kernel-headers.x86_64 0:3.10.0-514.6.1.el7 libmpc.x86_64 0:1.0.1-3.el7 mpfr.x86_64 0:3.1.1-4.el7 perl.x86_64 4:5.16.3-291.el7 perl-Carp.noarch 0:1.26-244.el7 perl-Encode.x86_64 0:2.51-7.el7 perl-Exporter.noarch 0:5.68-3.el7 perl-File-Path.noarch 0:2.09-2.el7 perl-File-Temp.noarch 0:0.23.01-3.el7 perl-Filter.x86_64 0:1.49-3.el7 perl-Getopt-Long.noarch 0:2.40-2.el7 perl-HTTP-Tiny.noarch 0:0.033-3.el7 perl-PathTools.x86_64 0:3.40-5.el7 perl-Pod-Escapes.noarch 1:1.04-291.el7 perl-Pod-Perldoc.noarch 0:3.20-4.el7 perl-Pod-Simple.noarch 1:3.28-4.el7 perl-Pod-Usage.noarch 0:1.63-3.el7 perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 perl-Socket.x86_64 0:2.010-4.el7 perl-Storable.x86_64 0:2.45-3.el7 perl-Text-ParseWords.noarch 0:3.29-4.el7 perl-Time-HiRes.x86_64 4:1.9725-3.el7 perl-Time-Local.noarch 0:1.2300-2.el7 perl-constant.noarch 0:1.27-2.el7 perl-libs.x86_64 4:5.16.3-291.el7 perl-macros.x86_64 4:5.16.3-291.el7 perl-parent.noarch 1:0.225-244.el7 perl-podlators.noarch 0:2.5.1-3.el7 perl-threads.x86_64 0:1.87-4.el7 perl-threads-shared.x86_64 0:1.43-6.el7 vim-common.x86_64 2:7.4.160-1.el7_3.1 vim-filesystem.x86_64 2:7.4.160-1.el7_3.1 依存性を更新しました: glibc.x86_64 0:2.17-157.el7_3.1 glibc-common.x86_64 0:2.17-157.el7_3.1 libgcc.x86_64 0:4.8.5-11.el7 libgomp.x86_64 0:4.8.5-11.el7 完了しました! [root@CentOS7 systemd-219]#
ソースのダウンロード
[root@CentOS7 src]# wget ftp://ftp.gnu.org/pub/gnu/global/global-6.5.6.tar.gz --2017-02-05 11:08:12-- ftp://ftp.gnu.org/pub/gnu/global/global-6.5.6.tar.gz => `global-6.5.6.tar.gz' ftp.gnu.org (ftp.gnu.org) をDNSに問いあわせています... 208.118.235.20 ftp.gnu.org (ftp.gnu.org)|208.118.235.20|:21 に接続しています... 接続しました。 anonymous としてログインしています... ログインしました! ==> SYST ... 完了しました。 ==> PWD ... 完了しました。 ==> TYPE I ... 完了しました。 ==> CWD (1) /pub/gnu/global ... 完了しました。 ==> SIZE global-6.5.6.tar.gz ... 2935032 ==> PASV ... 完了しました。 ==> RETR global-6.5.6.tar.gz ... 完了しました。 長さ: 2935032 (2.8M) (確証はありません) 100%[=====================================================================================================================================>] 2,935,032 1.08MB/s 時間 2.6s 2017-02-05 11:08:20 (1.08 MB/s) - `global-6.5.6.tar.gz' へ保存終了 [2935032] [root@CentOS7 src]# ll 合計 94228 -rw-r--r--. 1 root root 2935032 2月 5 11:08 global-6.5.6.tar.gz -rw-r--r--. 1 root root 88959056 1月 19 21:48 kernel-3.10.0-514.6.1.el7.src.rpm -rw-r--r--. 1 root root 4581045 12月 16 06:17 systemd-219-30.el7_3.6.src.rpm [root@CentOS7 src]#
ソースの展開
[root@CentOS7 src]# tar xzvf global-6.5.6.tar.gz global-6.5.6/ global-6.5.6/acinclude.m4 global-6.5.6/aclocal.m4 global-6.5.6/AUTHORS [root@CentOS7 src]# ll 合計 94232 drwxr-xr-x. 21 501 wheel 4096 12月 19 09:58 global-6.5.6 -rw-r--r--. 1 root root 2935032 2月 5 11:08 global-6.5.6.tar.gz -rw-r--r--. 1 root root 88959056 1月 19 21:48 kernel-3.10.0-514.6.1.el7.src.rpm -rw-r--r--. 1 root root 4581045 12月 16 06:17 systemd-219-30.el7_3.6.src.rpm [root@CentOS7 src]#
make install
ディレクトリの移動
[root@CentOS7 src]# [root@CentOS7 src]# cd global-6.5.6 [root@CentOS7 global-6.5.6]# pwd /usr/local/src/global-6.5.6 [root@CentOS7 global-6.5.6]#
./configure
[root@CentOS7 global-6.5.6]# pwd /usr/local/src/global-6.5.6 [root@CentOS7 global-6.5.6]# ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking whether make sets $(MAKE)... (cached) yes checking for emacs... no checking for xemacs... no checking where .elc files should go... ${datadir}/emacs/site-lisp checking for perl... /usr/bin/perl checking for ar... ar checking for a Python interpreter with version >= 2.6... python checking for python... /usr/bin/python checking for python version... 2.7 checking for python platform... linux2 checking for python script directory... ${prefix}/lib/python2.7/site-packages checking for python extension module directory... ${exec_prefix}/lib64/python2.7/site-packages checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking minix/config.h usability... no checking minix/config.h presence... no checking for minix/config.h... no checking whether it is safe to define __EXTENSIONS__... yes checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /usr/bin/sed checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... no checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking for shl_load... no checking for shl_load in -ldld... no checking for dlopen... no checking for dlopen in -ldl... yes checking whether a program can dlopen itself... yes checking whether a statically linked program can dlopen itself... yes checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking what extension is used for runtime loadable modules... .so checking what variable specifies run-time module search path... LD_LIBRARY_PATH checking for the default library search path... /lib /usr/lib /usr/lib64/mysql checking for library containing dlopen... -ldl checking for dlerror... yes checking for shl_load... (cached) no checking for shl_load in -ldld... (cached) no checking for dld_link in -ldld... no checking for _ prefix in compiled symbols... no checking whether deplibs are loaded by dlopen... yes checking for argz.h... yes checking for error_t... yes checking for argz_add... yes checking for argz_append... yes checking for argz_count... yes checking for argz_create_sep... yes checking for argz_insert... yes checking for argz_next... yes checking for argz_stringify... yes checking if argz actually works... yes checking whether libtool supports -dlopen/-dlpreopen... yes checking for ltdl.h... no checking where to find libltdl headers... -I$(top_srcdir)/libltdl checking where to find libltdl library... $(top_build_prefix)libltdl/libltdlc.la checking for unistd.h... (cached) yes checking for dl.h... no checking for sys/dl.h... no checking for dld.h... no checking for mach-o/dyld.h... no checking for dirent.h... yes checking for closedir... yes checking for opendir... yes checking for readdir... yes checking for strlcat... no checking for strlcpy... no checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking for string.h... (cached) yes checking for unistd.h... (cached) yes checking stdarg.h usability... yes checking stdarg.h presence... yes checking for stdarg.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking sys/resource.h usability... yes checking sys/resource.h presence... yes checking for sys/resource.h... yes checking for dirent.h that defines DIR... yes checking for library containing opendir... none required checking for ANSI C header files... (cached) yes checking whether stat file-mode macros are broken... no checking whether time.h and sys/time.h may both be included... yes checking for an ANSI C-conforming const... yes checking for off_t... yes checking for size_t... yes checking for struct stat.st_blksize... yes checking whether byte ordering is bigendian... no checking for int8_t... yes checking for int16_t... yes checking for int32_t... yes checking for u_int8_t... yes checking for u_int16_t... yes checking for u_int32_t... yes checking for ssize_t... yes checking for caddr_t... yes checking size of int... 4 checking size of short... 2 checking size of char... 1 checking for working alloca.h... yes checking for alloca... yes checking for stdlib.h... (cached) yes checking for unistd.h... (cached) yes checking for sys/param.h... yes checking for getpagesize... yes checking for working mmap... yes checking for working memcmp... yes checking return type of signal handlers... void checking for strftime... yes checking for getcwd... yes checking for putenv... yes checking for lstat... yes checking for snprintf... yes checking for index... yes checking for rindex... yes checking for bzero... yes checking for bcmp... yes checking for bcopy... yes checking for strchr... yes checking for strrchr... yes checking for memset... yes checking for memcmp... yes checking for memmove... yes checking for putc_unlocked... yes checking for getc_unlocked... yes checking for gettimeofday... yes checking for getrusage... yes checking whether we are using the GNU DJGPP compiler... no configure: checking "location of ncurses.h file"... Found ncurses on /usr/include/ncurses.h checking for ncurses version... 5.9 checking for an ANSI C-conforming const... (cached) yes checking for mode_t... yes checking for pid_t... yes checking for size_t... (cached) yes checking for sighandler_t... no checking for sigsetjmp... yes checking for fixkeypad... no checking for strerror... yes checking for sqlite3 support... no checking for home-etc support... no checking for pread/pwrite support... no checking for exuberant ctags program... no checking for universal ctags program... no checking for POSIX sort program... using /usr/bin/sort checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating gtags.conf config.status: creating Doxyfile config.status: creating libutil/langmap.h config.status: creating libutil/Makefile config.status: creating gtags/Makefile config.status: creating htags/Makefile config.status: creating libdb/Makefile config.status: creating global/Makefile config.status: creating gozilla/Makefile config.status: creating gtags-cscope/Makefile config.status: creating globash/Makefile config.status: creating htags-refkit/Makefile config.status: creating htags-server/Makefile config.status: creating libglibc/Makefile config.status: creating doc/Makefile config.status: creating icons/Makefile config.status: creating jquery/Makefile config.status: creating jquery/images/Makefile config.status: creating script/Makefile config.status: creating libparser/Makefile config.status: creating plugin-factory/Makefile config.status: creating plugin-factory/pygments_parser.py config.status: creating libltdl/Makefile config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands [root@CentOS7 global-6.5.6]#
make & install
[root@CentOS7 global-6.5.6]# make [root@CentOS7 global-6.5.6]# make install
使ってみる
インストールが完了したので,早速動作を確認して見る。
CentOS7から採用されたsystemdのソースコードを対象にタグ付けしてみる
ソースコードが保存されているディレクトリに移動する
[root@CentOS7 systemd-219]# pwd /root/rpmbuild/SOURCES/systemd-219 [root@CentOS7 systemd-219]#
タグ付け(ソースコードの解析)
タグ付けのコマンドは
- gtags -v
[root@CentOS7 systemd-219]# gtags -v [Sun Feb 05 11:17:03 JST 2017] Gtags started. Using default configuration. [Sun Feb 05 11:17:03 JST 2017] Creating 'GTAGS' and 'GRTAGS'. [1] extracting tags of man/glib-event-glue.c [2] extracting tags of src/ac-power/ac-power.c [3] extracting tags of src/activate/activate.c [4] extracting tags of src/analyze/analyze.c [5] extracting tags of src/analyze/analyze-verify.c [6] extracting tags of src/analyze/analyze-verify.h [7] extracting tags of src/ask-password/ask-password.c [8] extracting tags of src/backlight/backlight.c [9] extracting tags of src/binfmt/binfmt.c [996] extracting tags of libsystemd-daemon.c [997] extracting tags of libsystemd-id128.c [998] extracting tags of libsystemd-journal.c [999] extracting tags of libsystemd-login.c [1000] extracting tags of test-libsystemd-sym.c [1001] extracting tags of test-libudev-sym.c [Sun Feb 05 11:17:04 JST 2017] Done. [root@CentOS7 systemd-219]#
ソースコードのgrep
GLOBALコマンドを利用して,ソースコードをgrepする
コマンドは
- global -g 検索文字列
下の例では「ctrl-alt-del」を検索しています。
[root@CentOS7 systemd-219]# global -g ctrl-alt-del src/core/manager.c src/shared/special.h [root@CentOS7 systemd-219]# global -gx ctrl-alt-del ctrl-alt-del 363 src/core/manager.c log_warning_errno(errno, "Failed to enable ctrl-alt-del handling: %m"); ctrl-alt-del 109 src/shared/special.h #define SPECIAL_CTRL_ALT_DEL_TARGET "ctrl-alt-del.target" [root@CentOS7 systemd-219]#
[参考]viとの連携のための設定
参考として,GLOBALとviと連携して利用する場合の設定をUPしておきます。
[root@CentOS7 ~]# pwd /root [root@CentOS7 ~]# [root@CentOS7 ~]# mkdir -p ~/.vim/plugin [root@CentOS7 ~]# find / -name gtags.vim /usr/local/share/gtags/gtags.vim /usr/local/src/global-6.5.6/gtags.vim [root@CentOS7 ~]# cp /usr/local/share/gtags/gtags.vim ~/.vim/plugin/
試した環境
ホストOS
MacBook Pro (Retina, 13-inch, Late 2013) macOS High Sierra システムのバージョン: macOS 10.13.3 (17D102) カーネルのバージョン: Darwin 17.4.0 VirtualBox VirtualBox バージョン 5.2.8 r121009 (Qt5.6.3) Oracle_VM_VirtualBox_Extension_Pack-5.2.8r121009
ゲストOS
[root@CentOS7 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)
GNU Globalのバージョン
global-6.5.6