그냥 멍하니 앉아 있기

Solaris 10에서 컴파일을 이용한 Apache Subversion(SVN) 1.7.22 설치 본문

카테고리 없음

Solaris 10에서 컴파일을 이용한 Apache Subversion(SVN) 1.7.22 설치

노안돼지 2019. 8. 31. 21:59

Solaris 10에서 Apache Subversion 1.7.22 설치 방법입니다.

 

Solaris 10은 오래된 운영체제(2019년 기준)이기 때문에 최신 버전의 Apache Subversion(이하 SVN) 설치가 잘 되지 않습니다.

물론 각종 라이브러리와 유틸리티를 설치하면 최신 버전의 SVN 설치가 가능하지만 오래된 SVN 버전(?)을 거의 기본 설정 상태인 Solaris 서버에 설치하는 것을 기준으로 설명하겠습니다.


Solaris 10에 SVN을 설치하기 위해서 아래 순서대로 설치합니다.

 APR설치 -> APR-UTIL설치 -> SQLITE 설치 -> NEON 설치 -> SVN설치

 

그리고, 각 유틸리티 프로그램마다 버전을 붙인 것은 기존 서버용 프로그램이 사용하고 있는 유틸리티 프로그램과 충돌을 방지하기 위해 붙인 것입니다.

 

버전이나 라이브러리 충돌이 없다고 한다면 해당 버전을 붙이지 않으셔도 됩니다.

 

아래 모든 작업은 root 계정으로 작업하셔야 합니다.

####################
1. APR 1.4.5 설치
####################

# 다운로드: http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz

# gzip -d apr-1.4.5.tar.gz
# tar -xvf apr-1.4.5.tar
# cd apr-1.4.5
# ./configure --prefix=/usr/local/apr-1.4.5
# make
# make insall


####################
2. APR-UTIL 1.3.9 설치
####################

# 다운로드: http://archive.apache.org/dist/apr/apr-util-1.3.9.tar.gz

# gzip -d apr-util-1.3.9.tar.gz
# tar -xvf apr-util-1.3.9.tar
# cd apr-util-1.3.9
# ./configure --prefix=/usr/local/apr-util-1.3.9 --with-apr=/usr/local/apr-1.4.5
# make
# make install


####################
3. SQLITE 3.7.8 설치
####################

# 다운로드: http://www.sqlite.org/sqlite-autoconf-3070800.tar.gz

# gzip -d sqlite-autoconf-3070800.tar.gz
# tar -xvf sqlite-autoconf-3070800.tar
# cd sqlite-autoconf-3070800
# ./configure --prefix=/usr/local/sqlite-3.7.8
# make 
# make install


####################
4. NEON 0.29.6 설치
####################

# 다운로드: http://www.webdav.org/neon/neon-0.29.6.tar.gz

# gzip -d neon-0.29.6.tar.gz
# tar -xvf neon-0.29.6.tar
# cd neon-0.29.6
# ./configure --prefix=/usr/local/neon-0.29.6
# make
# make install

############################
5. SVN (Subversion) 1.7.22 설치
############################

# 다운로드: https://archive.apache.org/dist/subversion/subversion-1.7.22.tar.gz

# gzip -d subversion-1.7.22.tar.gz
# tar -xvf subversion-1.7.22.tar
# cd subversion-1.7.22
# ./configure --prefix=/usr/local/subversion-1.7.22 \
      --without-berkeley-db \
      --with-apr=/usr/local/apr-1.4.5 \
      --with-apr-util=/usr/local/apr-util-1.3.9 \
      --with-sqlite=/usr/local/sqlite-3.7.8 \
      --with-neon=/usr/local/neon-0.29.6 \

      --with-ssl=/usr/local/ssl (SSL이 있는 경우에만 사용)
# make 
# make install

 ############################
6. 솔라리스 계정 경로에 반영
############################

# vi ~/.profile
export PATH=$PATH:/usr/local/subversion-1.7.22/bin

 

 

그리고, 설치하면서 발생한 문제와 해결책입니다.

################################ 
트러블 슈팅 1. make install 시 ld: fatal 에러
################################ 

ld: warning: file ../../subversion/libsvn_wc/.libs/libsvn_wc-1.so: linked to /home/apache/svn/subversion-1.7.22/subversion/libsvn_wc/.libs/libsvn_wc-1.so: attempted multiple inclusion of file
ld: warning: file ../../subversion/libsvn_ra/.libs/libsvn_ra-1.so: linked to /home/apache/svn/subversion-1.7.22/subversion/libsvn_ra/.libs/libsvn_ra-1.so: attempted multiple inclusion of file
ld: warning: file ../../subversion/libsvn_delta/.libs/libsvn_delta-1.so: linked to /home/apache/svn/subversion-1.7.22/subversion/libsvn_delta/.libs/libsvn_delta-1.so: attempted multiple inclusion of file
ld: warning: file ../../subversion/libsvn_diff/.libs/libsvn_diff-1.so: linked to /home/apache/svn/subversion-1.7.22/subversion/libsvn_diff/.libs/libsvn_diff-1.so: attempted multiple inclusion of file
ld: warning: file ../../subversion/libsvn_subr/.libs/libsvn_subr-1.so: linked to /home/apache/svn/subversion-1.7.22/subversion/libsvn_subr/.libs/libsvn_subr-1.so: attempted multiple inclusion of file
ld: warning: global symbol '_END_' has non-global binding:
        (file /usr/local/lib/libz.so value=LOCL);
ld: warning: global symbol '_START_' has non-global binding:
        (file /usr/local/lib/libz.so value=LOCL);
Undefined                       first referenced
 symbol                             in file
libintl_bind_textdomain_codeset     /home/apache/svn/subversion-1.7.22/subversion/libsvn_subr/.libs/libsvn_subr-1.so
libintl_dngettext                   .libs/info-cmd.o
libintl_bindtextdomain              /home/apache/svn/subversion-1.7.22/subversion/libsvn_subr/.libs/libsvn_subr-1.so
libintl_dgettext                    .libs/add-cmd.o
ld: fatal: symbol referencing errors. No output written to .libs/svn
collect2: ld returned 1 exit status
make: *** [subversion/svn/svn] Error 1

 

# (해결책) 컴파일 계정에서 LIBS 환경변수 설정 변경
export LIBS="$LIBS -lintl"

./configure ...... 을 다시 실행 후 재컴파일 과정을 거침

 

 

#####################################
트러블 슈팅 2. make install 시 sed가 없다는 에러
#####################################

/usr/local/apache2/build/libtool --mode=install cp mod_dav_svn.la /usr/local/apache2/modules/
/usr/local/apache2/build/libtool: line 391: /usr/local/bin/sed: 
/usr/local/apache2/build/libtool: line 790: /usr/local/bin/sed: No such file or directory
*** Warning: inferring the mode of operation is deprecated.
*** Future versions of Libtool will require --mode=MODE be specified.
/usr/local/apache2/build/libtool: line 6184: /usr/local/bin/sed: No such file or directory
/usr/local/apache2/build/libtool: line 6267: /usr/local/bin/sed: No such file or directory
/usr/local/apache2/build/libtool: line 6275: /usr/local/bin/sed: No such file or directory
/usr/local/apache2/build/libtool: line 6277: /usr/local/bin/sed: No such file or directory
: install: `.' must be an absolute directory name
Try ` --help --mode=install' for more information.
apxs:Error: Command failed with rc=65536
.
make: *** [install-mods-shared] Error 1

[해결책]
SED 설치 후 다시 make install 실행
####################
# SED 4.2.2 설치 (2012-12-22자)
####################

# 다운로드: http://ftp.gnu.org/gnu/sed/sed-4.2.2.tar.gz

# gzip -d sed-4.2.2.tar.gz
# tar -xvf sed-4.2.2.tar
# cd sed-4.2.2
# ./configure --prefix=/usr/local
# make
# make install

[참고 자료] 
https://blog.kimyoungjin.com/153 

http://subversion.1072662.n5.nabble.com/ld-fatal-symbol-referencing-errors-No-output-written-to-libs-svn-SVN-V1-8-10-td191023.html#a191026