에러 (error)

Could not get lock /var/lib/dpkg/lock

 

 

플랫폼 (platform)

ubuntu 18.04 (우분투)

 

 

상황 (situation)

아래처럼 apt 명령어를 사용해서 어떤 패키지을 다운 받을 때 에러가 발생한 상황이다. 참고로, 아래 예시는 (블록체인 관련) eosio 패키지를 다운받으려는 상황이다.

apt 명령어는 apt-get apt-cache 의 주요기능을 결합한 패키지 관리툴이다.

$ sudo apt install ./eosio_1.6.1-1-ubuntu-18.04_amd64.deb

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?

  

 

원인 (cause)

apt를 사용 중인 다른 프로세스가 있을 때 발생한다.

 

 

해결 (solution)

[해결방법1] (안전하게) apt 사용 프로세스를 종료한 후 apt 재시도

$ pgrep apt -a

12127 apt update

$ ps -f 12127

UID PID PPID C STIME TTY STAT TIME CMD root 12127 12126 0 09:39 pts/0 S+ 0:00 apt-get update

$ sudo kill -15 12127 (프로세스에 정상 종료 시그널을 보내서 종료, 안전하게)

or

$ sudo kill -2 12127 (프로세스에 Shall Ctrl-C 인터럽트를 일으켜서 종료, 안전하게)

or

$ sudo kill -9 12127 (프로세스를 그대로 강제종료 시그널, 안전하지 않게)

 

 

[해결방법2] (안전하지 않게) apt lock관련 파일 삭제 후 apt 재시도

$ sudo rm /var/lib/apt/lists/lock

$ sudo rm /var/cache/apt/archives/lock

$ sudo rm /var/lib/dpkg/lock

$ sudo dpkg --configure -a

 

 

참고 (reference)

https://www.quora.com/What-is-the-difference-between-the-SIGINT-and-SIGTERM-signals-in-Linux-What%E2%80%99s-the-difference-between-the-SIGKILL-and-SIGSTOP-signals