LoginSignup
2
1

More than 5 years have passed since last update.

GNU GLOBALを使ったコードリーディング環境の構築

Last updated at Posted at 2018-02-17

前提

  • GNU GLOBALを使ったコードリーディング環境をDockerコンテナ上に構築した際のメモです
  • Dockerはインストール済みです
  • GNU GLOBALによるコードはブラウザで閲覧します
  • DockerコンテナはCentOS 6.9を使用します

環境

  • macOS Sierra 10.12.6
  • Docker 17.12.0-ce-mac49
  • GNU GLOBAL 6.6.2

コンテナの準備

  • centosイメージのダウンロード
    
    # docker pull centos
    
  • GNU GLOBAL用コンテナの起動
    
    # docker run -it -p 8000:80 --name global centos:centos6.9 /bin/bash
    [root@39061ca81695 ~]#
    

以降は基本的にコンテナ内での手順

GNU GLOBALのインストール

  • 依存パッケージのインストール
    
    # yum -y install curses ncurses-devel
    
  • wgetパッケージのインストール
    
    # yum -y install wget
    
  • GNU GLOBALパッケージの入手
    
    # cd /usr/local/src
    # wget http://tamacom.com/global/global-6.6.2.tar.gz
    
  • GNU GLOBALのインストール
    
    # tar zvxf global-6.6.2.tar.gz
    # cd global-6.6.2
    # sh configure
    # make && make install
    

ソースパッケージの入手

  • /etc/yum.repos.d/CentOS-Base.repoに下記を記述
[base-src]
name=CentOS-6.9 - Base - Source
baseurl=http://vault.centos.org/6.9/os/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates
[updates-src]
name=CentOS-6.9 - Updates - Source
baseurl=http://vault.centos.org/6.9/updates/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras-src]
name=CentOS-6.9 - Extras - Source
baseurl=http://vault.centos.org/6.9/extras/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  • yum-utilsパッケージのインストール
    
    # yum -y install yum-utils
    
  • 任意のソースパッケージをインストール
    
    # cd /usr/local/src
    # yumdownloader --source ファイル名
    

GNU GLOBAL(htags)によるソースコードのHTMLファイル生成

  • その時試していたfileパッケージのソースコード展開を例にしています。
  • ソースコードファイルの取り出し
# cd /usr/local/src
# mkdir file
# mv file-5.04-30.el6.src.rpm file

# cd file
# rpm2cpio file-5.04-30.el6.src.rpm | cpio -id
# cp file-5.04.tar.gz /usr/local/src
  • ソースコードファイルの展開
    
    # tar zxvf file-5.04.tar.gz
    
  • ソースコードへのタグ付けとHTMLの生成
    
    # cd /usr/local/src/file-5.04
    # gtags -v
    # htags -afFnvs
    
  • ApacheのDocumentRootにリンクを生成
    
    # cd /var/www/html
    # ln -s /usr/local/src/file-5.04/HTML file
    

Apacheの設定

  • /etc/httpd/conf.d/global.confにGNU Global用の設定を追加
/etc/httpd/conf.d/global.conf
<Directory "/usr/local/src">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
</Directory>
  • Apacheの起動
    
    # /etc/init.d/httpd start
    

ソースコードリーディング

  • ローカル環境のブラウザから下記URLにアクセス
    
    http://localhost:8000/file
    

GNU GLOBAL用コンテナの保存

  • コンテナの停止
    
    [root@39061ca81695 ~]# exit
    #
    
  • コンテナの保存
    
    # docker commit global xxxxx/centos:global
    
  • コンテナの保存を確認
    
    # docker images xxxxx/centos
    

GNU GLOBAL用コンテナの再起動

  • コンテナの起動
    
    # docker run -it -p 8000:80 --name global xxxxx/centos:global /etc/init.d/httpd start
    
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1