前提
- 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