そのため、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関連パッケージを1行または詳細形式で一覧表示できます。
apt-mark
また、Nvidiaパッケージの予約や予約のキャンセルにも使用できます。私はこれらのオプションをすぐ前後に使用して、次のapt-get dist-upgrade
場合にのみNvidiaドライバがアップグレードされるようにします。私必要です(たとえば、システムを再起動する準備ができている場合、またはXをシャットダウンして再起動する準備ができたときなど)。
printf
単純なリストは、コマンドの置き換えに使用するなど、リストを使用して他の操作を実行したい場合に便利ですapt purge $(list-nvidia.sh)
。例: 。 Debian パッケージ名にはスペースや改行などは含まれていないため、引用に編集証を持つ必要はありません。