linux下面阅读代码的工具比较少,一般都是IDE,vim + ctags 也不错,不过用着总有些不顺手。
搜了一下,发现还有woboq, LXR(Linux Cross Reference), opengrok 这类网页端的,LXR搭建起来比较麻烦,所以尝试了一下opengrok,感觉不错,这里记录一下搭建的流程(凭着记忆来的,可能会稍微有点问题)。

安装JAVA

首先安装java,先去官网下载jdk,一般解压打/usr/java 就可以了, 然后添加相应的环境变量(自己修改相应的path).

export JAVA_HOME=/usr/java/jdk1.8.0_73  
export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar  
export PATH=$PATH:$JAVA_HOME/bin

安装tomcat

之后去tomcat官网下载tomcat, 并解压。我解压到了/usr/local里面,启动和关闭tomcat很简单,path/to/tomcat/bin下有启动和关闭的脚本(根据名字分辨,一个叫startup.sh, 另一个是 shutdown.sh)。

访问ip:8080,如果出现tomcat的界面就是安装成功了。

安装opengrok

去opengrok观望下载它的安装包,同样只是一个压缩包,随便解压到一个地方就可以了。比如/usr/opengrok
压缩包里面有个source.war,在/usr/opengrok/lib下面,直接扔到path/to/tomcat/webapps目录下就可以了,之后访问ip:8080/source 就是opengrok的默认页面。

那怎么对代码进行索引等操作呢?
opengrok默认源代码处理的位置是在/var/opengrok/src里面(当然也可以改变位置,具体详见参数),创建/var/opengrok/src一系列的目录,把你的源代码解压到里面,安装好ctags,然后在path/to/opengrok/bin目录运行./Opengrok index,等一段时间,数据就处理好了。
之后添加一个环境变量,OPENGROK_TOMCAT_BASE,变量内容是你的tomcat文件夹的位置,然后运行./Opengrok deploy, 重启tomcat,再次访问ip:8080/source 就可以看到已经处理好的代码了。

默认opengrok的背景是白色的,感觉比较伤眼睛,对此可以在浏览器安装一个夜间模式的插件,也可以到/usr/local/tomcat/webapps/source/default目录下修改style.css这个文件,把body->background-color的值改为浅绿色即可,#B9DABD

如果是重要代码,可以按照这里给opengrok加上LDAP验证,也可以让tomcat监听127.0.0.1,然后用nginx反代,在nginx上加上basic-auth即可。