个人 ubutnu24.04 系统搭建 opengrok 过程

张开发
2026/4/30 22:11:10 15 分钟阅读

分享文章

个人 ubutnu24.04 系统搭建 opengrok 过程
1.搭建前的准备软件下载链接: https://pan.baidu.com/s/1kCeXNlj2l3FujyMza3rM0w提取码: iniypython环境 推荐使用python 2.7及以上版本这一版本相对稳定python安装细节未更新java环境 推荐使用JDK1.8及以上版本具体安装细节未更新通过 java -version 和 javac -version 可以查看版本。2. Opengrok正式搭建2.1 安装Tomcat Tomcat本文以apache-tomcat-8.5.31.tar.gz安装包为例进行讲解说明。以本文的安装目录为参考进行讲解。不推荐将软件安装在系统根目录这是因为后期同步代码仓后会产生较大的索引文件如果根目录空间太小容易导致系统崩溃。 安装目录(本目录为自行创建的目录)/mnt/code/software_install/opengrok_platform将tomcat安装包复制到该目录下然后使用ctrlaltt组合快捷键打开终端。使用cd命令进入安装目录确认安装包是否已经存在安装目录下命令如下$ cd /mnt/code/software_install/opengrok_platform $ ls –al结果如图使用命令解压安装包$ tar xvf apache-tomcat-8.5.31.tar.gz解压完成后安装目录下回多出一个目录由于解压后的目录名称使用不便推荐修改名称并删除原先的安装包命令如下$ mv apache-tomcat-8.5.31 tomcat #将apache-tomcat-8.5.31目录修改为tomcat目录 $ rm apache-tomcat-8.5.31.tar.gz #删除原先的安装包 $ ls –al此时解压后的生成的目录的名称会被修改为自己想要的名称到这一步tomcat已经安装完成。此时我们还无法访问tomcat因为尚未启动tomcat服务。需要按以下步骤启动tomcat。在终端中执行以下命令$ cd /mnt/code/software_install/opengrok_platform/tomcat/bin $ ./startup.sh执行完成后会出现成功提示说明tomcat已经启动成功启动tomcat后需要再次确认是否能够正常访问tomcat主页。打开系统的浏览器输入访问地址http://localhost:8080会出现tomcat主页说明tomcat tomcat服务已启动可以正常访问。此时的tomcat只能被本地访问其他电脑无法访问。为使得其他电脑也能访问我们需要修改访问方式将本地访问方式修改成ip地址访问方式。在终端执行以下命令$ cd /mnt/code/software_install/opengrok_platform/tomcat/conf/ $ gedit server.xml执行完命令系统会自动打开TextEitor(TextEitor:linux自带的文档编辑器)在打开的TextEitor中通过关键字 localhost 定位到需要修改的地方。定位到以后将localhost修改为自己系统的IP地址保存并关闭TextEitor。修改结果如下不执行此配置也可以在本机通过ip地址访问把localhost换成ip地址即可如果不知道自己系统IP可以使用命令查看自己的IP在终端执行命令$ ifconfig图中白色方框中便是自己的IP此时可以使用局域网内任何一台电脑访问自己的tomcat。访问方法在任何一台电脑的系统浏览器中输入访问地址 访问地址http://192.168.147.75:8080/如果想关闭tomcat可以在终端中执行命令$ cd /mnt/code/software_install/opengrok_platform/tomcat/bin $ ./shutdown.sh到此tomcat的安装及配置已经完成。下一步是安装Ctags。2.2 安装ctags因为 exuberant-ctags 已经不再维护可能会导致建索引时会报错所以这里不使用sudo apt-get install 命令安装ctags。直接下载代码失败无法访问rootgz:/mnt/code/software_install/opengrok_platform# git clone https://github.com/universal-ctags/ctags.git 正克隆到 ctags... fatal: 无法访问 https://github.com/universal-ctags/ctags.git/Failed to connect to github.com port 443 after 136291 ms: Couldnt connect to server因为默认有多个版本直接选择ctags无法下载需要指定版本参考如下 sudo apt install universal-ctags此版本可以安装成功。2.3 安装opengrok本文以安装包opengrok-1.1-rc27.tar.gz为例讲解opengrok搭建 将安装包放到一开始创建的安装目录 /mnt/code/software_install/opengrok_platform/ 中。使用命令解压安装包并对解压后的软件目录进行重命名这一步骤与tomcat类似在终端中执行以下命令$ cd /mnt/code/software_install/opengrok_platform $ ls –al $ tar xvf opengrok-1.1-rc27.tar.gz $ mv opengrok-1.1-rc27 opengrok $ rm opengrok-1.1-rc27.tar.gz最终结果如下此时虽opengrok已完成安装但无法使用。必须将opengrok与tomcat建立联系。具体方法是将opengrok的lib目录下的source.war文件复制到tomcat的webapp目录下此时系统会自动在webapp目录下生成一个source目录可通过以下命令完成$ cd /mnt/code/software_install/opengrok_platform/opengrok/lib $ cp source.war /mnt/code/software_install/opengrok_platform/tomcat/webapps/ $ cd /mnt/code/software_install/opengrok_platform/tomcat/webapps/ $ rm source.war $ ls –al最终结果如下实际上笔者执行上面的rm删除source.war后source目录也被一起删除了最终使用下面的方法手动解压缩。如果执行命令后source目录没有生成可用过以下命令进行解决$ cd /mnt/code/software_install/opengrok_platform/tomcat/webapps/ $ rm source.war $ mkdir source $ cd /mnt/code/software_install/opengrok_platform/opengrok/lib $ cp source.war /mnt/code/software_install/opengrok_platform/tomcat/webapps/source $ mv source.war source.zip $ unzip source.war $ rm source.war $ ls –al此时tomcat/webapp目录下同样会生成source目录。这一步的实际目的是将source.war这个压缩包中的内容解压出来与系统自动生成的source是同样的效果。测试opengrok 到此opengrok才正式安装完成。我们需要验证opengrok是否能够正常启动与使用。 启动opengrok执行以下命令$ cd /mnt/code/software_install/opengrok_platform/opengrok/bin $ ./OpenGrok deploy执行完成后会出现以下成功提示注笔者启动失败了报错如下rootgz:/mnt/code/software_install/opengrok_platform/opengrok/bin# ./OpenGrok deploy Loading the default instance configuration ... FATAL ERROR: Unable to determine Deployment Directory for Tomcat - Aborting!通过指定tomcat路径的方式也失败了rootgz:/mnt/code/software_install/opengrok_platform/opengrok/bin#./OpenGrok deploy -w /mnt/code/software_install/opengrok_platform/tomcat/webappsLoading the default instance configuration ...FATAL ERROR: Unable to determine Deployment Directory for Tomcat - Aborting!解决办法先增加了环境变量也还是失败。export TOMCAT_HOME/mnt/code/software_install/opengrok_platform/tomcat export CATALINA_HOME$TOMCAT_HOME后查询到解决方法因为没有找到tomcat的目录需要在命令前面增加tocat路径OPENGROK_TOMCAT_BASE完整命令是$ sudo OPENGROK_TOMCAT_BASE/mnt/code/software_install/opengrok_platform/tomcat ./OpenGrok deploy Loading the default instance configuration ... Installing /mnt/code/software_install/opengrok_platform/opengrok/bin/../lib/source.war to /mnt/code/software_install/opengrok_platform/tomcat/webapps ... Start your application server (Tomcat), if it is not already running, or wait until it loads the just installed web application. OpenGrok should be available on HOST:PORT/source where HOST and PORT are configured in Tomcat.此时opengrok已经正常启动可以通过浏览器访问opengrok主页 访问地址http://192.168.147.75:8080/source/这里的IP地址是tomcat中配置的本地地址访问结果出现以上结果说明opengrok已经与tomcat成功建立连接。下一步是关联源代码仓。2.4 关联代码仓创建源代码仓关联目录 以上步骤完成后代表opengrok平台已经搭建完成。下一步便是关联源代码。在关联源码的过程中会生成源代码索引文件和代码同步文件而这个文件较大如果根目录内存较小便会导致系统崩溃。这就是之前不推荐将软件安装在根目录的原因。 opengrok是通过索引目录和索引文件配合来访问源码而不是直接访问源码因此需要创建源代码关联目录和索引文件存放目录。打开终端执行以下命令$ cd /mnt/code/software_install/opengrok_platform/opengrok $ mkdir source #该目录直接关联到源代码 $ mkdir data #该目录存放源代码索引文件 $ mkdir etc #该目录存放后期代码同步的必须文件 $ ls –al最终结果如下2.5 配置环境变量创建好源码关联目录后需要关联源代码。关联源代码以及后期使用opengrok索引源代码的过程中都需要用到tomcat和opengrok的命令但前期我们并没有配置tomcat和opengrok环境变量所以此时我们需要配置tomcat和opengrok环境变量打开终端执行以下命令$ echo export OPENGROK_SRC_ROOT/mnt/code/software_install/opengrok_platform/opengrok/source ~/.bashrc $ echo export OPENGROK_SRC_ROOT/mnt/code/software_install/opengrok_platform/opengrok/data ~/.bashrc $ echo export OPENGROK_TOMCAT_BASE/mnt/code/software_install/opengrok_platform/tomcat ~/.bashrc $ source ~/.bashrc $ cat ~/.bashrc实际就是在环境变量中增加export OPENGROK_SRC_ROOT/mnt/code/software_install/opengrok_platform/opengrok/source export OPENGROK_SRC_ROOT/mnt/code/software_install/opengrok_platform/opengrok/data export OPENGROK_TOMCAT_BASE/mnt/code/software_install/opengrok_platform/tomcat环境变量具体含义OPENGROK_SRC_ROOT 该环境变量用于指定使用OpenGrok查看的源代码存放的目录该目录用于直接关联上源代码实际存放目录。OPENGROK_DATA_ROOT 该环境变量用于指定OpenGrok生成的源代码索引文件存放目录。 OPENGROK_TOMCAT_BASE 该环境变量用于指定Tomcat安装路径。2.6 关联源代码目录Opengrok通过source目录来关联源码在配合索引文件来访问源码。而关联源码的方法是通过软链接来实现然后通过软链接将源代码目录关联到opengrok的source源代码目录如下# sudo ln -s /home/gz/aosp /mnt/code/software_install/opengrok_platform/opengrok/source执行结果如下rootgz:/mnt/code/software_install/opengrok_platform/opengrok/source# ll 总计 8 drwxr-xr-x 2 root root 4096 3月 25 12:27 ./ drwxr-xr-x 10 root root 4096 3月 25 11:57 ../ lrwxrwxrwx 1 root root 13 3月 25 12:27 aosp - /home/gz/aosp/2.7生成索引文件和configuration.xml文件上一步虽然让opengrok与源代码目录关联起来但是opengrok不可能直接跳转到源代码目录去查找目标代码还缺少源代码索引文件。并且索引文件还可以大大缩减了代码检索时间。下一步就是创建源代码索引文件创建命令如下:$ cd /mnt/code/software_install/opengrok_platform/opengrok $ java -jar /mnt/code/software_install/opengrok_platform/opengrok/lib/opengrok.jar -P -S -v -s /mnt/code/software_install/opengrok_platform/opengrok/source -d /mnt/code/software_install/opengrok_platform/opengrok/data -I *.java -I *.c -I *.h -I *.cpp -i *.dat -i *.bin -i d:.git -i d:.repo -i d:log -i d:out -W /mnt/code/software_install/opengrok_platform/opengrok/etc/configuration.xml-i: 忽略文件 对于上一命令有疑惑或不理解的地方可以参考https://ox0spy.github.io/post/install/setup-opengrok/这一步将会占用很长时间具体时长取决于源代码量参考时间2小时。由于本文源代码量较小这一步骤花费时间为1分钟左右。索引文件创建完成后终端中会有成功提示。2.8 关联configuration.xml文件上一步中创建源代码索引文件的同时会生成一个配置文件—configuration.xml。下一步需要将这个配置文件关联上tomcat打开终端执行以下命令$ cd /mnt/code/software_install/opengrok_platform/tomcat/webapps/source/WEB-INF $ gedit web.xml在TextEidor中将CONFIGURATION的参数改为上一步生成的configuration.xml存放路径修改结果如图此时再通过浏览器访问opengrok的结果如图访问地址http://192.168.147.75:8080/source/如图可以看到我们所创建的临时代码目录已经被加载到opengrok中。此时可以通过opengrok来检索源代码了。2.9 同步代码如果我们更新了源代码opengrok是无法检索到更新后的那一部分源代码的。所以我们必须再次创建源代码索引。为了简化步骤我们可以通过脚本来实现。 将脚本放在/mnt/code/software_install/opengrok_platform/opengrok目录下执行命令如下$ cd /mnt/code/software_install/opengrok_platform/opengrok $ bash update.sh等待脚本执行完成所花时间与源代码索引文件创建时间相同。这一步骤本质上等同于上文的源代码索引文件的创建只是将需要的命令写入脚本而已。执行成功后会有如下成功提示此时可以再次使用opengrok检索源代码。------参考1. Ubuntu 搭建opengrok 流程2. https://blog.csdn.net/weixin_56933381/article/details/1402732623. https://blog.csdn.net/yujianliam/article/details/1164549744. https://blog.csdn.net/haochao1988/article/details/18075889

更多文章