Software | apt-get broken 해결 방법

|

1. 시작하기

apt-get 을 SSH 원격으로 실행시키고 다른 일이 바빠 놔뒀더니만 session 이 끊어졌습니다.

다시 재접속 하고 "apt-get update" 를 실행시키니 아래와 같은 내용이 뜹니다.


두둥!



apt-get 실행 중에 멈춘 문제로 lock 파일이 걸려있습니다.


그냥 lock 파일을 삭제하고 실행 process 죽이고 다시 실행을 시켜버려? 하다가,

가만... 그렇게 되면 안좋은 일이 발생할것 같은데? 라고 하고 구글신에 물어봅니다.



2. 안돼~

그렇습니다. lock 파일 삭제와 process kill 은 최후의 방법이고,

그 과정에서 바보되는 OS 가 수두룩 했습니다.


그 예의 하나인 내용을 아래에 기록해 봅니다.


https://askubuntu.com/questions/15433/unable-to-lock-the-administration-directory-var-lib-dpkg-is-another-process


You can force the lock off by removing the file,

but it's not recommended without first closing the program that's holding the lock safely,

since you could cause corruption or interrupt an installation (bad).

The command provided by João should close the program that holds the lock

and then remove the lock but won't protect you from install interruption:


sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock


And the same command can be used for the apt cache lock:


sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock


IMPORTANT:

only do this as a last resort since it can crash your system.

First try killing any running instance of apt or aptitude as described in Faheem's answer.


그럼 어떤게 좋은 방법이야? 라고 고민하던 중,

OS 에서 자연스럽게 rebooting을 기켜보면 어떨까 하고 실행해 봅니다.


강제적으로 "rm -f lock && kill procss" 하는것 보단,

OS 가 어느정도 알아서 해줄것 같은 느낌이 들었습니다.



3. 빙고

역시 reboot 을 하니, lock 이 풀렸습니다.


바로 "apt-get update" 를 실행시키니, 정상적으로 실행된 후, 복구 command 가 표시됩니다.



dpkg --configure -a


실행시키면 복구가 진행되면서 기존 설정을 keep 하고 원복시킬 것인지, update 할 것인지 물어봅니다.

혹시 모르니 일단 keep 을 선택합니다.




4. 결론

위의 과정이 끝나면 평상시와 같이 "apt-get update && apt-get upgrade" 해주면 정상적으로 완료됩니다.

결국 apt-get 에서 lock 이 걸리면 다음과 같이 진행하면 문제가 없습니다.


1. reboot
2. apt-get update
3. dpkg --configure -a
4. keep defaults
5. apt-get update
6. apt-get upgrade
7. done

휴... 살았네.



FIN

And