使用GNU GLOBAL来构建代码阅读环境
前提(Paraphrased in Chinese): 事先条件
-
- 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用の設定を追加
<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