[Linux/Ubuntu20.04] APM 완전삭제!

Benjamin·2022년 8월 4일
1

Ubuntu

목록 보기
1/2

APM(Apache2 + PHP + MySQL)을 apt로 설치했었는데, 소스설치로 진행해보려한다.

기존 프로그램을 삭제하지 않고, 같은 프로그램에대해 소스설치를 진행하면 같은 포트를 점유하려하기때문에 문제가 생길 수 있다고 한다.
따라서 기존에 설치했던 APM을 삭제해야한다!

구글링을 통해 찾아보면서 진행하였는데, 진행하며 이해되지 않았던 부분들이 있었고, 블로그에 나온 방법들은 설명이 충분하지 않았기에 공부할 겸 기록한다.


먼저 여기를 참고하여

$ sudo apt-get purge apache2 php mysql-server mysql-client
$ sudo apt-get purge php7.0*
$ sudo apt-get autoremove
$ sudo dpkg -P mysql-common mysql-server-5.7 apache2 apache2-bin php-common

위 명령어들을 순서대로 진행하였다.

무작정 따라하기보다, 이 명령어들의 가장 기본적인 동작을 파헤쳐보자!

  • apt-get
    Debian 계열의 리눅스에서 패키지를 설치하거나 삭제하는데 사용한다.
    여기서, aptapt-get의 업데이트 된 버전이기 때문에, apt를 사용하는것이 좋다.
    대부분 명령어는 호환이 되기 때문에 기존 명령어와 동일한 방식으로 사용하면 된다.
    -> apt-get , apt, 둘의 차이에 대한 내용은 이후에 자세히 다루도록 하겠다.

  • purge
    프로그램 삭제시키는 쉘 명령어.
    패키지와 그 패키지의 환경설정을 모두 삭제한다.
    --auto-remove옵션을 주면, 패키지를 삭제하면서 불필요한 의존성 패키지들도 함께 삭제한다.
    remove명령어와 거의 같지만, 환경설정도 삭제한다는 차이가 있다.

  • autoremove
    예전에 다른 패키지의 의존성때문에 설치되었지만, 지금은 사용되지 않는 패키지를 삭제한다.

  • dpkg
    패키지를 설치, 삭제, 조회할 때 사용한다.
    dpkg -P 패키지이름을 하면 패키지뿐만 아니라, 설정파일까지 삭제한다.


Apache2 삭제시 의문점과 해결방법

위의 명령어를 다 실행했지만 apache2 -v로 apache2의 버전을 확인해보니 삭제하기 전처럼 버전이 정상적으로 잘 나온다...

삭제하면 찾을 수 없다는 메시지나 그런류의 에러가 떠야하는거 아닌가?!

그런데 또 sudo service apache2 start를 하면, apache2.service를 찾을 수 없다고 뜬다.
(아, 이건 내가 단순히 apache2를 service로 등록해두지 않았기 때문일까? 여러 블로그들을 참고하며 apt로 apache2를 설치했기때문에, 설정을 어떻게했었는지까지는 기억나지 않는다...)

그리고 Apache2 server로 접속(http://localhost)했을 때, 연결할 수 없다는 창이 뜬다..

다른 블로그에서 이 창은 제대로 삭제되었으면 뜬다는데... 연결할 수 있는 파일은 지워졌어도, 어딘가 쓰레기가 남아있는 것 같다.

하지만 이대로 넘어가서 소스설치를 진행했다가는 마지막에 낭패를 볼 수도 있기때문에, 진행당시에 뿌리까지 뽑아버리려고한다!!

따라서 한꺼번에 정리된 'APM삭제'를 참고하지않고, 개별 삭제를 진행했다.
Apache2 완전삭제를 참고하였는데, 내가 진행할 때에는 부족한 정보가 있었기에 꼼꼼히 추가정리한다.

우선 완전삭제를 위한 명령어들이다.

$ sudo service apache2 stop
$ sudo apt-get remove apache2
$ sudo apt-get autoremove --purge
$ whereis apache2
$ sudo rm -rf [whereis apache2의 결과]

이 게시글의 위에있는 (가장 처음에 진행했던) 4가지 명령어를 순서대로 진행하였다면, 여기서 진행하는 3번째 명령어까지는 결과를 보았을 때, 삭제된 개수가 0개로 뜰 것이다.

하지만 문제는 지금부터다.
분명 다 삭제를 한 것 같은데, whereis apache2 를 하면 정보가 뜨는 것이다!
이는 아까 수상하게 여겼던 apache2 -v와도 관련이 있는것으로 보인다.

따라서 이렇게 뜨는 결과들을 rm -rf를 이용해서 하나씩 삭제해준다.

여기서 잠깐!
rm? remove의 약어로서 파일이나 디렉토리를 삭제하는 명령어
-r? 비어있지 않은 디렉토리는 -r 옵션없이는 삭제할 수 없다.
-f? 삭제할 때, 삭제확인과정을 거치지않는다.

나의 경우로 예를 들어보겠다.
우선, 아래는 whereis apache2를 하면 뜨는 결과이다.

왜인지는 모르겠지만, 총 4군데에 apache2가 분포해있는것 같다.
나는 apache2를 완전 다 삭제하고싶기때문에, 이것들을 각각 삭제하도록 한다.

sudo rm -rf /usr/sbin/apache2를 진행해서 첫번째 디렉토리를 삭제하고, sudo rm -rf /usr/lib/apache2로 두 번째 디렉토리를 삭제하고, ... 이렇게 총 4개의 디렉토리를 삭제한다.

다 진행한 후, 다시 whereis apache2를 해보면 아래와 같이 잘 삭제 된 것을 볼 수 있다.

또한, 가장 찝찝했던 apache2 -v를 해보면...

드디어! 버전이 정상적으로 뜨지않고, 찾을 수 없다는 결과를 볼 수 있다.


PHP 삭제시 의문점과 해결방법

위의 명령어를 다 실행했지만 php -v로 php의 버전을 확인해보니 삭제하기 전처럼 버전이 정상적으로 잘 나온다...

이것도 마찬가지로 개별적으로 완전삭제를 진행하자!
이곳을 참고하여 진행하였다

$sudo apt remove php*
$sudo apt-get purge 'php*'
$sudo apt-get purge php.*

이 세가지 명령어를 차례대로 진행하면, 제대로 삭제가 안됐었는지 용량을 비울거냐는 메시지가 나온다. 계속 y(yes)를 해주면서 진행하면된다.

이렇게 세가지를 완료한 후, whereis php를 해보면 잘 비어있는것을 볼 수 있다.

그리고 php -v를 해보니, 전에는 정상적으로 잘 뜨던 버전이 삭제되어 php를 찾을 수 없다고 하는것을 볼 수 있다.


MySQL 삭제시 의문점과 해결방법

위의 명령어를 다 실행했지만, service -status-all을 하니 mysql서비스가 중지된 상태로 존재하고 있음을 알 수 있었다.

이것또한 개별 완전삭제를 진행하도록 하자!
여기를 참고하여 진행하였다

sudo apt-get remove --purge mysql* 을 했을때에는 특별히 제거되는 것들이 없었지만,
dpkg -l | grep mysql 를 하니까 아직 남아있는것들이 보였다.

쓰레기가 남아있으니 이를 개별적으로 제거해주자.

sudo apt-get remove --purge {쓰레기}를 해주면 되는데, 예를 들어 나같은 경우는 sudo apt-get remove --purge php-mysqlsudo apt-get remove --purge php7.4-mysql을 해주었다.

마지막으로 다른 모든 것들을 청소하기위해

$sudo rm -rf /etc/mysql /var/lib/mysql
$sudo apt-get autoremove
$sudo apt-get autoclean

을 차례대로 수행한다.

이후에 다시 dpkg -l | grep mysql를 해보면, 남아있던 쓰레기들이 잘 삭제 된 것을 볼 수 있다.

또한, whereis mysql을 해봐도 제대로 삭제되어 존재하지 않는것을 알 수 있다.

2개의 댓글

comment-user-thumbnail
2023년 2월 28일

고맙습니다

답글 달기
comment-user-thumbnail
2023년 8월 22일

root@hjs-500R3M-501R3M-500R3W:~# dpkg -l | grep mysql
rc mysql-server-8.0 8.0.34-0ubuntu0.22.04.1 amd64 MySQL database server binaries and system database setup

위와 같이 뜹니다 상기 글 내용중에 어디라도 틀린게 있는지 보십시요
해봤는데 무얼 해보았냐면 mysql완전 삭제를 했는데도 mysql이 동작하고 있습니다.
도와주십시요 좀만끝

답글 달기