시스템을 업데이트하고 싶을 때 apt는 항상 다른 책임에 잠겨 있습니다.

시스템을 업데이트하고 싶을 때 apt는 항상 다른 책임에 잠겨 있습니다.

update내 시스템 중 하나에 액세스하려고 할 때 apt다른 프로세스에 의해 "잠겨" 있는 경우가 많습니다. 같은 날에도 여러 번 일어날 수 있습니다. 돌아가 kill려면 이 명령과 최상위 프로세스를 실행해야 apt하지만 이 문제가 있어서는 안 됩니다. 이전에는 그런 적이 없었습니다.

이 작업을 수행하면 apt update다음과 같은 결과를 얻습니다.

root ~ # apt update
Reading package lists... Done
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/

내 시스템은 Debianstretch 9.8이고 모든 업데이트가 설치되어 있습니다. KDE 플라즈마 데스크탑을 사용합니다.

root ~ # ps aux | grep apt
_apt     25783  9.0  0.1  64300 24956 ?        S    10:12   0:59 /usr/lib/apt/methods/http
_apt     25784  8.9  0.1  64300 25032 ?        S    10:12   0:59 /usr/lib/apt/methods/http
_apt     25785  8.9  0.2 206296 35636 ?        S    10:12   0:59 /usr/lib/apt/methods/https
_apt     25786  9.0  0.2 206300 35532 ?        S    10:12   0:59 /usr/lib/apt/methods/https
_apt     25787  9.0  0.1  64300 25012 ?        S    10:12   0:59 /usr/lib/apt/methods/http
_apt     25788  8.9  0.1  64300 25008 ?        S    10:12   0:58 /usr/lib/apt/methods/http
_apt     25789  9.1  0.1  64300 25192 ?        S    10:12   0:59 /usr/lib/apt/methods/http
_apt     25790  9.1  0.1  64300 24984 ?        S    10:12   0:59 /usr/lib/apt/methods/http
_apt     25817  4.8  0.1  56876 21644 ?        S    10:14   0:28 /usr/lib/apt/methods/gpgv
_apt     25818  4.8  0.2 206296 35568 ?        S    10:14   0:28 /usr/lib/apt/methods/https
_apt     25820  4.7  0.2 206304 35636 ?        S    10:14   0:27 /usr/lib/apt/methods/https
_apt     26426  0.0  0.1  56876 19752 ?        S    10:22   0:00 /usr/lib/apt/methods/gpgv
_apt     26427  0.0  0.0   4276  1656 ?        S    10:22   0:00 /bin/sh /usr/bin/apt-key --quiet --readonly verify --status-fd 3 /tmp/apt.sig.LTumm1 /tmp/apt.data.hNgDBV
_apt     26511  104  0.0  38092  8508 ?        R    10:23   0:03 apt-config shell GPGV Apt::Key::gpgvcommand
root     26513  0.0  0.0  12788  1000 pts/1    S+   10:23   0:00 grep apt

질문:

이것이 apt가 수행하는 작업과 이를 해결하는 방법이 무엇을 의미하는지 이해가 안 됩니까?

편집하다:

pstree-a

root ~ # apt list packagekit
Listing... Done
packagekit/stable,stable,now 1.1.5-2+deb9u1 amd64 [installed,automatic]

root ~ # apt list aptdaemon
Listing... Done

답변1

지금까지의 응답 세부정보:

출력 ps에 no /usr/bin/apt-get(또는 /usr/bin/apt) 명령이 표시되므로 적절한 하위 프로세스는 다른 프로세스에서 시작되어야 합니다. 프로세스가 libapt라이브러리를 사용하고 있어야 합니다. 예를 들어, 이 상위 프로세스가 무엇인지 확인해야 합니다 pstree. 그러나 내가 아는 유일한 것은 packagekitdPackageKit 데몬일 수 있습니다.

PackageKit 데몬에 대해 공평하게 말하자면, gnome-software, pk-update-icon 또는 KDE Plasma(KDE "Apper" 프로그램?)의 요청에만 응답할 수 있다고 생각합니다.

Debian의 PackageKit 작업이 명령과 충돌할 수 있다는 것은 알려진 제한 사항입니다 apt. 또한 좋은 GUI는 정기적으로 보안 업데이트를 확인하여 설치 알림을 제공할 것으로 예상됩니다. 완벽한 조합이 아니라서 아쉽네요!

그러나 그것은아니요이는 "항상" 발생할 것으로 예상됩니다. 일반적으로 백그라운드 PackageKit 작업을 항상 수행하지는 않습니다. 특히 현재 실행 중인 데비안과 같은 안정적인 버전의 데비안에서는 더욱 그렇습니다. Fedora Linux에 비해 Debian은 많은 수의 업데이트를 출시하지 않으며 apt update업데이트가 없을 때 매우 빠르고 효율적입니다.

apt이 문제가 자주 발생하는 경우 시간이 많이 걸리거나 aptPackageKit 또는 GUI 시스템이 계속 재시도하게 만드는 문제가 발생할 수 있습니다 .


PackageKit은 RedHat에서 파생되었습니다. RedHat 기반 배포판(예: Fedora Linux)에서는 PackageKit이 업데이트 자동 확인과 같은 "백그라운드" 작업을 실행할 수 있다는 것을 알고 있습니다. 사용자가 PackageKit에 작업을 요청하기 시작하면 백그라운드 작업이 자동으로 취소되어야 합니다. Debian+Apper가 이렇게 작동하는지 모르겠습니다.

당신은 할 수노력하다pkcon refresh forcepkcon upgrade+ 대신 Apper 또는 +를 사용하여 apt updatePackageKit에서 "전경" 업데이트를 요청합니다 apt upgrade. PackageKit을 통한 업그레이드는 apt upgradePackageKit이 패키지 설정을 요청하지 않으며, 수정된 구성 파일을 유지할 것인지, 패키지 변경 사항으로 덮어쓸 것인지, 아니면 함께 병합할 것인지 묻지 않는다는 점에서 약간 다릅니다 .

답변2

다음 명령을 시도해 보세요. 루트가 아닌 경우 sudo다음 명령을 시도해 보세요.

pkill apt && apt update

이 명령에 대해 잘 모르겠습니다. 이렇게 하면 시스템에서 실행 중인 적절한 프로세스가 종료됩니다.

관련 정보