{"id":2549,"date":"2020-08-05T09:00:00","date_gmt":"2020-08-05T00:00:00","guid":{"rendered":"http:\/\/43.203.250.216\/?p=2549"},"modified":"2025-10-01T16:25:42","modified_gmt":"2025-10-01T07:25:42","slug":"opengrok-%ec%b5%9c%ec%8b%a0%eb%b2%84%ec%a0%84-%ec%84%a4%ec%b9%98%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=2549","title":{"rendered":"OpenGrok \ucd5c\uc2e0\ubc84\uc804 \uc124\uce58\ud558\uae30"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\ud55c \ub54c \uac11\uc790\uae30 \ubc30\ud3ec\ud558\ub358 \uc11c\ubc84\uac00 \uc5c6\uc5b4\uc838\uc11c \ud639\uc2dc\ub098 \ud558\ub294 \uac71\uc815\uc5d0 \ubc30\ud3ec\ud30c\uc77c\uc744 \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\uc544 \ub450\uae30\uae4c\uc9c0 \ud588\ub358 OpenGrok project\uac00 \ub2e4\ud589\ud788 Oracle\uc758 GitHub \ub0b4\uc5d0 \uc790\ub9ac\ub97c \uc7a1\uace0 \uc798 \uafb8\uc900\ud788 \uc5c5\ub370\uc774\ud2b8 \ub418\uace0 \uc788\ub2e4.<\/p><p>\uc608\uc804\uc5d0 \uc791\uc131\ud588\ub358 OpenGrok \uc124\uce58\ub97c \uc704\ud55c \uae00\ub4e4\uc740 \ub108\ubb34 \uc624\ub798\ub418\uc5b4\uc11c \uc798 \ub9de\uc9c0 \uc54a\ub294 \uac83\ub3c4 \uc788\uace0 \ud574\uc11c \ucd5c\uadfc \ubc84\uc804\uacfc \ud658\uacbd\uc744 \uae30\uc900\uc73c\ub85c \ub2e4\uc2dc \uc124\uce58 \uacfc\uc815\uc744 \uc815\ub9ac\ud588\ub2e4. \uc774 \ud3ec\uc2a4\ud305\uc740<span style=\"font-size: inherit;\"> \uc798 \uc791\uc131\ub41c \ud504\ub85c\uc81d\ud2b8\uc758 \ubb38\uc11c\uc778 \u2018<\/span><a style=\"font-size: inherit;\" href=\"https:\/\/github.com\/oracle\/opengrok\/wiki\/How-to-setup-OpenGrok\">How to setup OpenGrok<\/a><span style=\"font-size: inherit;\">\u2019\uc744 \uae30\uc900\uc73c\ub85c \ud55c \ub098\ub984\uc758 \uc815\ub9ac\uc774\ub2e4.<\/span><\/p><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">\ud658\uacbd\uacfc \ud544\uc694\ud55c \uac83\ub4e4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; Ubuntu 18.4 LTS<br>&#8211; OpenJDK 11<br>&#8211; Tomcat 9<br>&#8211; Universal-ctags<br>&#8211; \ucd5c\uc2e0 \ubc84\uc804\uc758 release file: https:\/\/github.com\/oracle\/opengrok\/releases<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\uc124\uce58<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ud6c4\ub85c\ub294 OpenGrok\uc774 \uc124\uce58 \ub418\ub294 \uc704\uce58\ub97c OPENGROK_DIR\ub85c \uc815\uc758 \ud558\uace0 \ub2e4\uc74c\uacfc \uac19\uc774 \ud658\uacbd \ubcc0\uc218\ub85c \uc124\uc815 \ud588\ub2e4\uace0 \uac00\uc815\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">export OPENGROK_DIR=\/var\/opt\/opengrok<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc124\uce58\ud560 \ub514\ub809\ud1a0\ub9ac\uc640 \ud558\uc704 \ub514\ub809\ud1a0\ub9ac\ub97c \ub9cc\ub4e4\uc5b4 \uc8fc\uace0 \uc18c\uc720\uc790 \uad8c\ud55c\uc744 $USER, \uadf8\ub8f9 \uad8c\ud55c\uc744 tomcat\uc73c\ub85c \uc124\uc815\ud55c \ub2e4\uc74c, \ubc30\ud3ec \ud30c\uc77c\uc758 \uc555\ucd95\uc744 \ud480\uc5b4\uc900\ub2e4. (&lt;version&gt; \ubd80\ubd84\uc740 \uc54c\ub9de\uc740 \uac12\uc73c\ub85c \ub300\uccb4)<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkdir -p $OPENGROK_DIR\/{src, data, dist, etc, log}\nsudo chown $USER:tomcat -R $OPENGROK_DIR\ntar -C $OPENGROK_DIR\/dist --strip-components=1 -xzf opengrok-&lt;version>.tar.gz<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Deployment<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tomcat9\uc744 \uc2e4\ud589\ud55c \uc0c1\ud0dc\uc5d0\uc11c http:\/\/localhost:8080\/manager\/html\ub85c \uc811\uadfc\ud574\uc11c deploy -&gt; WAR file to deploy -&gt; Choose File \ubc84\ud2bc\uc744 \uc120\ud0dd\ud558\uace0 $OPENGROK_DIR\/dist\/lib\/source.war \uacbd\ub85c\ub97c \ucc3e\uc740 \ub2e4\uc74c Deploy \ubc84\ud2bc\uc744 \ub204\ub978\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"668\" height=\"86\" src=\"https:\/\/litcoder.com\/wp-content\/uploads\/2020\/08\/img_0003-1.jpg\" alt=\"\" class=\"wp-image-2548\" srcset=\"https:\/\/litcoder.com\/wp-content\/uploads\/2020\/08\/img_0003-1.jpg 668w, https:\/\/litcoder.com\/wp-content\/uploads\/2020\/08\/img_0003-1-300x39.jpg 300w, https:\/\/litcoder.com\/wp-content\/uploads\/2020\/08\/img_0003-1-624x80.jpg 624w\" sizes=\"auto, (max-width: 668px) 100vw, 668px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Indexing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ubd84\uc11d \ud560 source code\ub97c $OPENGROK_DIR\/<strong>src<\/strong>\uc5d0 \ubc1b\uc544 \ub454 \ud6c4 \ub2e4\uc74c\uc758 \ucee4\ub9e8\ub4dc\ub85c indexing\uc744 \uc644\ub8cc\ud558\uba74 \ubaa8\ub4e0 \uc900\ube44\uac00 \uc644\ub8cc\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">java \\\n    -Djava.util.logging.config.file=$OPENGROK_DIR\/etc\/logging.properties \\\n    -jar $OPENGROK_DIR\/dist\/lib\/opengrok.jar \\\n    -c \/usr\/local\/bin\/ctags \\\n    -s $OPENGROK_DIR\/src -d $OPENGROK_DIR\/data -H -P -S -G \\\n    -W $OPENGROK_DIR\/etc\/configuration.xml -U http:\/\/localhost:8080\/source<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Source code\uac00 \uc5c5\ub370\uc774\ud2b8 \ub420 \ub54c \ub9c8\ub2e4 indexing\uc744 \ud574 \uc8fc\uc5b4\uc57c \ud558\ub294\ub370 \ucee4\ub9e8\ub4dc\uac00 \ub108\ubb34 \uae38\uc5b4\uc11c \ubcf5\uc7a1\ud558\ub2c8\uae4c bin directory\ub97c \ub9cc\ub4e4\uace0 \uc5ec\uae30\uc5d0 index.sh\ub77c\ub294 \uc774\ub984\uc73c\ub85c shell script\ub97c \ub9cc\ub4e4\uc5b4\uc11c \ub123\uc5b4 \uc8fc\uc5c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkdir $OPENGROK_DIR\/bin\nchmod +x index.sh\n$OPENGROK_DIR\/bin\/index.sh<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Access<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">indexing \uae4c\uc9c0 \ub2e4 \ub418\uc5c8\uc73c\uba74 http:\/\/localhost:8080\/source\uc5d0 \uc811\uadfc\ud558\uc5ec source code\ub97c browsing \ud560 \uc218 \uc788\ub2e4. Localhost\uac00 \uc544\ub2cc \uc678\ubd80\uc5d0\uc11c \uc811\uadfc\uc744 \ud5c8\uc6a9 \ud558\ub824\uba74 tomcat\uc758 \ud658\uacbd\uc744 \ubcc0\uacbd\ud574 \uc8fc\uba74 \ub41c\ub2e4. (\uad00\ub828 \ub0b4\uc6a9\uc740 \uc778\ud130\ub137\uc5d0\uc11c \uc5b4\ub835\uc9c0 \uc54a\uac8c \ucc3e\uc744 \uc218 \uc788\ub2e4)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ucc38\uace0: universal-ctags<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ubuntu\uc5d0\uc11c apt\ub85c \uc124\uce58 \ud560 \uc218 \uc788\ub294 ctags\ub294 Exuberant ctags\uc774\uc9c0\ub9cc OpenGrok\uc740 Universla-ctags\ub97c \uc694\uad6c\ud55c\ub2e4. \ub2e4\uc74c\uc758 \ubc29\ubc95\uc73c\ub85c \ucf54\ub4dc\ub97c \ucef4\ud30c\uc77c \ud558\uace0 \/usr\/local\/bin\uc5d0 \uc124\uce58\ud574\uc11c \uae30\uc874\uc758 \/usr\/bin\/ctags \uacbd\ub85c\uc640 \ucda9\ub3cc\ud558\uc9c0 \uc54a\ub3c4\ub85d \ud574\uc900\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">git clone git@github.com:universal-ctags\/ctags.git\ncd ctags\nautogen.sh\n.\/configure --prefix=\/usr\/local\nmake\nsudo make install\n\/usr\/local\/bin\/ctgas --version<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud55c \ub54c \uac11\uc790\uae30 \ubc30\ud3ec\ud558\ub358 \uc11c\ubc84\uac00 \uc5c6\uc5b4\uc838\uc11c \ud639\uc2dc\ub098 \ud558\ub294 \uac71\uc815\uc5d0 \ubc30\ud3ec\ud30c\uc77c\uc744 \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\uc544 \ub450\uae30\uae4c\uc9c0 \ud588\ub358 OpenGrok project\uac00 \ub2e4\ud589\ud788 Oracle\uc758 GitHub \ub0b4\uc5d0 \uc790\ub9ac\ub97c \uc7a1\uace0 \uc798 \uafb8\uc900\ud788 \uc5c5\ub370\uc774\ud2b8 \ub418\uace0 \uc788\ub2e4. \uc608\uc804\uc5d0 \uc791\uc131\ud588\ub358 OpenGrok \uc124\uce58\ub97c \uc704\ud55c \uae00\ub4e4\uc740 \ub108\ubb34 \uc624\ub798\ub418\uc5b4\uc11c \uc798 \ub9de\uc9c0 \uc54a\ub294 \uac83\ub3c4 \uc788\uace0 \ud574\uc11c \ucd5c\uadfc \ubc84\uc804\uacfc \ud658\uacbd\uc744 \uae30\uc900\uc73c\ub85c \ub2e4\uc2dc \uc124\uce58 \uacfc\uc815\uc744 \uc815\ub9ac\ud588\ub2e4. \uc774 \ud3ec\uc2a4\ud305\uc740 \uc798 \uc791\uc131\ub41c \ud504\ub85c\uc81d\ud2b8\uc758 \ubb38\uc11c\uc778 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[6],"tags":[238,90,239,127,138,240],"class_list":["post-2549","post","type-post","status-publish","format-standard","hentry","category-tools","tag-ctags","tag-opengrok","tag-openjdk","tag-tomcat","tag-ubuntu","tag-universal-ctags"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/2549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2549"}],"version-history":[{"count":9,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/2549\/revisions"}],"predecessor-version":[{"id":3652,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/2549\/revisions\/3652"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}