使用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

广告
将在 10 秒后关闭
bannerAds