[ubuntu] apt-get 사용시 lock 에러
ubuntu 에서 apt-get update 를 하고 나서 apt-get upgrade 및 install 시에 다음과 같은 에러가 발생한다.
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
에러 메세지를 읽어보면 /var/lib/dpkg/ 디렉토리를 다른 프로세스에서 사용 중이라 충돌이 일어난다는 것 같다.
아마 apt-get ~ 프로세스를 사용하던 중 제대로 종료되지 않아서 그런 것 같다.
그러면 apt-get 에 걸려있는 프로세스가 있는지 확인하고 종료해 주자.
원인
apt-get 프로세스 충돌
해결책
1. 실행 중인 apt 관련 프로세스 찾기
ps aux | grep -i apt
----- 결과 화면 -----
root 1852 0.0 5.0 110268 24772 ? S Aug04 4:13 apt-get upgrade
root 21461 0.0 0.2 14856 1156 pts/2 S+ 04:32 0:00 grep --color=auto -i apt
-------------------
결과 화면을 보면 프로세스 아이디가 1852인 apt-get upgrade 프로세스가 실행 중이다.
그 아래에 있는 프로세스는 신경쓰지 않아도 된다.
2. 실행 중인 apt 프로세스 종료
sudo kill -9 <process id>
위의 경우에서는 sudo kill -9 1852 라고 해주면 된다.
( 간편한 방법으로는 그냥 처음부터 sudo killall apt apt-get 도 있다.)
참고
만약에 위의 방법으로도 에러가 해결되지 않으면 다음과 같이 해결 하면 된다.
rm /var/lib/dpkg/lock
rm /var/lib/apt/lists/lock
rm /var/cache/apt/archives/lock
dpkg --configure -a
lock 파일이 패키지 및 인덱스 정보를 업데이트하지 않아서 문제가 발생할 수 있기 때문에 해당 파일들을 삭제해주고 dpkg 를 설정해주면 된다. lock 파일은 호스팅 서버에 설치된 이미지에 세팅되어 있는 경우가 많다고 한다.
* 해당 포스팅은 ubuntu 18.04 를 기준으로 하고 있습니다.