Mint 19에서 Nvidia 465 "손상된 패키지" 문제를 처리하는 방법은 무엇입니까?

Mint 19에서 Nvidia 465 "손상된 패키지" 문제를 처리하는 방법은 무엇입니까?

그래서 Mint 19는 업데이트 관리자에 있는 Nvidia의 465 드라이버에 놀랐고 설치를 시도했지만 (아무 것도 다운로드했는지 알기 어려웠습니다) "변경 사항을 먼저 적용할 수 없습니다"라는 메시지만 표시되었습니다.

팝업 오류

걱정스럽게도 어떤 패키지가 손상되었는지에 대한 메모가 없으며 무엇이 손상되었는지에 대한 Synaptic 지식이 없습니다. 현재 드라이버가 계속 작동하는지 모르기 때문에 아직 시스템을 재부팅하지 않았습니다.

apt를 통해 이 작업을 시도하면 흥미롭게도 많은 패키지가 "예약"되어 있으며 모두 455로 끝납니다.

$ sudo apt upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  libnvidia-cfg1-455 libnvidia-common-455 libnvidia-compute-455
  libnvidia-compute-455:i386 libnvidia-decode-455 libnvidia-decode-455:i386
  libnvidia-encode-455 libnvidia-encode-455:i386 libnvidia-extra-455
  libnvidia-fbc1-455 libnvidia-fbc1-455:i386 libnvidia-gl-455
  libnvidia-ifr1-455 libnvidia-ifr1-455:i386 nvidia-compute-utils-455
  nvidia-kernel-common-455 nvidia-kernel-source-455
  xserver-xorg-video-nvidia-455
0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded.

내 패키지 구성에 문제가 있다고 가정할 수 있지만, 그것이 무엇인지, 어떻게 해결해야 하는지 잘 모르겠습니다. 누군가가 나를 위해 이것에 대해 밝힐 수 있기를 바랍니다. 저는 이 컴퓨터에 적절하지 않은 방식으로 드라이버를 설치한 적이 없으며 실제로 패키지가 손상된 경우도 거의 없습니다.

위 패키지를 수동으로 설치하려고 하면 이런 결과가 나왔습니다.

$ sudo apt install libnvidia-cfg1-455 libnvidia-common-455 libnvidia-compute-455 libnvidia-compute-455:i386 libnvidia-decode-455 libnvidia-decode-455:i386 libnvidia-encode-455 libnvidia-encode-455:i386 libnvidia-extra-455 libnvidia-fbc1-455 libnvidia-fbc1-455:i386 libnvidia-gl-455 libnvidia-ifr1-455 libnvidia-ifr1-455:i386 nvidia-compute-utils-455 nvidia-kernel-common-455 nvidia-kernel-source-455 xserver-xorg-video-nvidia-455
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nvidia-kernel-common-455 : Depends: nvidia-kernel-common-465 but it is not going to be installed
 nvidia-kernel-source-455 : Depends: nvidia-kernel-source-465 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

이것은 455가 애초에 존재해서는 안 되는 465에 의존한다는 것을 의미하기 때문에 나에게 특히 이상합니다.

답변1

#!/bin/bash

# script: list-nvidia.sh
# author: Craig Sanders <[email protected]>
# license: Public Domain (this script is too trivial to be anything else)

# options:
# default/none    list the packages, one per line
# -v              verbose (dpkg -l) list the packages
# -h              hold the packages with apt-mark
# -u              unhold the packages with apt-mark

# build an array of currently-installed nvidia packages.
PKGS=( $(dpkg -l '*nvidia*' '*cuda*' '*vdpau*' 2>/dev/null |
           awk '/^[hi][^n]/ && ! /mesa/ {print $2}') )

case "$1" in
  "-v") dpkg -l "${PKGS[@]}" ;;
  "-h") apt-mark hold "${PKGS[@]}" ;;
  "-u") apt-mark unhold "${PKGS[@]}" ;;
  *) printf "%s\n" "${PKGS[@]}" ;;
esac

dpkg -l이 스크립트는 설치된 nvidia 관련 패키지를 한 줄 또는 자세한 형식으로 나열할 수 있습니다.

apt-mark또한 Nvidia 패키지를 예약 및 예약 취소하는 데에도 사용할 수 있습니다 . 저는 이러한 옵션을 바로 전후에 사용하여 다음과 같은 apt-get dist-upgrade경우에만 Nvidia 드라이버가 업그레이드되도록 합니다.원합니다(예: 시스템을 재부팅할 준비가 되었거나 X를 종료하고 재부팅할 준비가 되었을 때).

printf간단한 목록(with)은 명령 대체에 사용하는 등 목록을 사용하여 다른 작업을 수행하려는 경우 유용합니다 apt purge $(list-nvidia.sh). 예: . 데비안 패키지 이름에는 공백이나 줄 바꿈 등이 포함되지 않으므로 인용에 대해 편집증을 가질 필요가 없습니다.

관련 정보