본문 바로가기

개발환경/Unix/Linux

우분투(2.2.14-5ubuntu8) apt-get install apahce2 설치 오류 해결방안

우분투 서버 10.04 설치후 

sudo apt-get update
sudo apt-get upgrade

를 실행한 다음 

sudo apt-get install apache2

를 실행하면 아파치가 정상적으로 설치되지 않고 다음과 같은 에러를 보여준다.

nextree@nextree:/etc/apache2$ sudo apt-get -f install apache2.2-common
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
제안하는 패키지:
  apache2-doc apache2-suexec apache2-suexec-custom
다음 새 패키지를 설치할 것입니다:
  apache2.2-common
0개 업그레이드, 1개 새로 설치, 0개 지우기 및 0개 업그레이드 안 함.
0바이트/290k바이트 아카이브를 받아야 합니다.
이 작업 후 2,163k바이트의 디스크 공간을 더 사용하게 됩니다.
전에 선택하지 않은 apache2.2-common 패키지를 선택합니다.
(데이터베이스 읽는중 ...현재 48884개의 파일과 디렉토리가 설치되어 있습니다.)
apache2.2-common 패키지를 푸는 중입니다 (.../apache2.2-common_2.2.14-5ubuntu8_i386.deb에서) ...
ufw에 대한 트리거를 처리하는 중입니다 ...
ureadahead에 대한 트리거를 처리하는 중입니다 ...
man-db에 대한 트리거를 처리하는 중입니다 ...
apache2.2-common (2.2.14-5ubuntu8) 설정하는 중입니다 ...
ERROR: Module reqtimeout does not exist!
dpkg: apache2.2-common을(를) 처리하는 데 오류가 발생했습니다 (--configure):
 설치한 post-installation 스크립트 하위 프로세스가 오류 1번을 리턴했습니다
처리하는 데 오류가 발생했습니다:
 apache2.2-common
E: Sub-process /usr/bin/dpkg returned an error code (1)

위의 에러 메시지는 apache2.2-common 패키지를 설치하는 것이지만 에러메시지는 동일하다.

ERROR: Module reqtimeout does not exist!

사실 위의 에러를 검색했으면 엄청난 삽질(무려 8시간 이상)을 하지 않았을 것이다.
아파치 소스를 컴파일하여 설치하는 것과 패키지 설치 중에 고민을 하다가 결국 소스컴파일쪽으로 마음이 기울었다. 그리고 소스를 다운받아 정상적으로 설치되었고 실행도 잘되었다. 그러나 활용대비 모듈추가시에 너무 손이 많이 간다는게 문제였다. 그래서 결국 언인스톨하고 다시 패키지 설치를 하려고 했는데 위의 에러상황을 맞이하게 된것이다.

 해결방법을 준곳은 https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/576255 이며  Thomas Antepoth를 찾아 보길 바란다.

Patched my /var/lib/dpkg/info/apache2.2-common.postinst at line 77 in this way:

# Note, this line catches new installs as well as upgrades
if dpkg --compare-versions "$2" lt 2.2.15-1~0; then
        a2enmod -q reqtimeout
fi

to:
# Note, this line catches new installs as well as upgrades
if dpkg --compare-versions "$2" lt 2.2.15-1~0; then
        echo "a2enmod -q reqtimeout"
fi

위와 같이 변경하면 다음과 같은 결과가 나오거나 또는 성공할 것이다.

nextree@nextree:/etc/apache2$ sudo apt-get -f install apache2
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
apache2 패키지는 이미 최신 버전입니다.
0개 업그레이드, 0개 새로 설치, 0개 지우기 및 1개 업그레이드 안 함.
3개를 완전히 설치하지 못했거나 지움.
이 작업 후 0바이트의 디스크 공간을 더 사용하게 됩니다.
apache2.2-common (2.2.14-5ubuntu8) 설정하는 중입니다 ...
a2enmod -q reqtimeouat

apache2-mpm-worker (2.2.14-5ubuntu8) 설정하는 중입니다 ...
ERROR: Module cgid does not exist!
ERROR: Module cgid does not exist!
It looks like you've deleted /etc/apache2/mods-available/cgid.load, so mod_cgid cannot be enabled.  To fix this, please purge and reinstall apache2.2-common.

apache2 (2.2.14-5ubuntu8) 설정하는 중입니다 ...

붉은색 메시지를 통해 알수 있듯이 설정에 문제가 있으니 apache2.2-common 을 설정파일을 포함하여 완전히 삭제해줄 것을 요구한다. 이는 이전에 설치한것에 오류가 있기 때문이다.

sudo apt-get -f purge apache2.2-common

를 실행한다음

sudo apt-get -f install apache2

와 같이 다시 설치하면 이제 정상적으로 설치가 될 것이다.

/var/lib/dpkg/info/apache2.2-common.postinst 의 내용을 다시 확인해보면 원래대로 돌아와 있다.