Friday, June 15, 2012

OpenGrok : Installation Guide

Hi Guys,
Here is one more useful post for Linux users who use grep to search strings or references in huge code-base.So here it is
Prerequisites :
1. jdk 1.6 + version
2.  tomcat 6 + version
3. exuberant-ctags
I will suggest that become root user (using sudo -s) so that you don’t need to give sudo prefix and then type the password every time you want to run any command. One line command to install all of these :
apt-get install sun-java6-jdk tomcat6 tomcat6-admin exuberant-ctags
4. Download the opengrok-0.8.1 from the site.
Steps:
1. Extract the downloaded package.
2. Create a directory structure like follows
  • mkdir /opengrok
  • mkdir /opengrok/bin(this will contain all lib file and jar file)
  • mkdir /opengrok/data ( this will contain the index data).
3. Go to extracted opengrok directory and run following commnad
  • cp -r run.sh opengrok.jar lib /opengrok/bin
4. Go to /opengrok/bin, open the run.sh file and Edit it in the following way
  • modify SRC_ROOT = /path/to/your/project/directory
  • modify DATA_ROOT = /opengrok/data
  • modify EXUB_CTAGS = /usr/bin/ctags (this is default location for ctags, you can verify with ur system if it doesn’t exist there)
5.  Go to extracted opengrok directory, and create one folder called source
  • mkdir source
  • cd source
  • unzip ../source.war
6. open WEB_INF/web.xml file and add the following code and save it
DATA_ROOT/opengrok/dataREQUIRED: Full path of the directory where data files generated by OpenGrok are stored
SRC_ROOT
//path/to/your/source/directory
REQUIRED: Full path to source tree
SCAN_REPOS
false
Set this variable to true if you would like the web application to scan for external repositories (Mercurial)
Here one more thing you do check for CONFIGURATION tab and in that please check the path of opengrok configuration file. The path should be same as the correct location of that configuration file.
7. Again zip the code
  • cd source
  • zip -r source.war ./
8. Now finally we need to start indexing, so just go to /opengrok/bin folder and give the following command
  • java -Xmx1524m -jar opengrok.jar -W /opengrok/configuration.xml -P -S -v -s  /path/to/your/source/directory  -d /opengrok/data
9.  After indexing completes, you have to modify the admin rights for apache so that you can manage it, So open /etc/tomcat6/tomcat-users.xml and add the following line


10. Now your setup is ready, you just need to deploy the source.war you created earlier. for that follow these steps
  • http://localhost:8080
  • click on manager webapp or directly open the link [http://localhost:8080/manager/html]
  • give username “admin” and password “admin”
  • There is a option in that page called Select War File to upload, there click Browse button and give the path for your source.war file.
  • And finally click on Deploy.
  • After Deploy is complete in List of Application on the same page, you can see /source click on it. And you have just completed the installation. you can see the opengrok home page.
11. If you are getting the permission denied error then add the following code in /etc/tomcat6/policy.d/50local.policy
grant codeBase "file:${catalina.base}/webapps/opengrok/" {
     permission java.security.AllPermission;
}; grant codeBase "file:${catalina.base}/webapps/opengrok/WEB-INF/lib/"; {    permission java.security.AllPermission; };
Thanks for Vincent Liu for his wonderful post which helped me a lot.

2 comments:

Anonymous said...

Hi Dude,

may i know where is the run.sh is located in the opengrok.

Regards,
Sathyam

Anonymous said...

#9. After indexing completes, you have to modify the admin rights for apache so that you can manage it, So open /etc/tomcat6/tomcat-users.xml and add the following line

--> the line is missing, could you please let me know what line do we need to add in tomcat-users.xml file?

Thanks,