不久前,我尝试过ppa:oibaf/graphic-drivers
基于 Trusty 的 Linux-Mint 安装。
现在我需要返回到我的旧 xorg 驱动程序,但既不会ppa-purge
也y-ppa-manager
不会清除 ppa 软件包,因为它不再托管任何可信的软件包(以 结尾的软件包~gd~t
)。
由于这些是视频驱动程序,我不想手动删除/清除与 ppa 相关的所有软件包,然后安装它们。此外,此xserver-xorg-video-radeon
版本依赖于此 ppa 的修改linux-firmware
,因此我不想在执行此操作时遇到不稳定的情况。
apt-get install --reinstall
不起作用,它会失败并显示it cannot be downloaded
每个相关包的消息。
为此,我是否应该尝试在运行级别 4 中清除并重新安装所有这些软件包?你有什么建议?
我dpkg -l | grep gd~t
得到了一个软件包列表我想通过此 PPA 安装的位置。但我无法全部确认,因为linux-firmware
例如不再托管在 PPA 中(我必须使用 来检查反向依赖关系apt-cache showpkg
)。
ii libdrm-amdgpu1:amd64 2.4.68+git1606141830.625d18~gd~t amd64 Userspace interface to amdgpu-specific kernel DRM services -- runtime
ii libdrm-amdgpu1:i386 2.4.68+git1606141830.625d18~gd~t i386 Userspace interface to amdgpu-specific kernel DRM services -- runtime
ii libdrm-dev:amd64 2.4.68+git1606141830.625d18~gd~t amd64 Userspace interface to kernel DRM services -- development files
ii libdrm-intel1:amd64 2.4.68+git1606141830.625d18~gd~t amd64 Userspace interface to intel-specific kernel DRM services -- runtime
ii libdrm-intel1:i386 2.4.68+git1606141830.625d18~gd~t i386 Userspace interface to intel-specific kernel DRM services -- runtime
ii libdrm-nouveau2:amd64 2.4.68+git1606141830.625d18~gd~t amd64 Userspace interface to nouveau-specific kernel DRM services -- runtime
ii libdrm-nouveau2:i386 2.4.68+git1606141830.625d18~gd~t i386 Userspace interface to nouveau-specific kernel DRM services -- runtime
ii libdrm-radeon1:amd64 2.4.68+git1606141830.625d18~gd~t amd64 Userspace interface to radeon-specific kernel DRM services -- runtime
ii libdrm-radeon1:i386 2.4.68+git1606141830.625d18~gd~t i386 Userspace interface to radeon-specific kernel DRM services -- runtime
ii libdrm2:amd64 2.4.68+git1606141830.625d18~gd~t amd64 Userspace interface to kernel DRM services -- runtime
ii libdrm2:i386 2.4.68+git1606141830.625d18~gd~t i386 Userspace interface to kernel DRM services -- runtime
ii libegl1-mesa:amd64 12.1~git1606090730.037ce5~gd~t amd64 free implementation of the EGL API -- runtime
ii libegl1-mesa-drivers:amd64 12.1~git1606090730.037ce5~gd~t amd64 transitional dummy package
ii libgbm1:amd64 12.1~git1606090730.037ce5~gd~t amd64 generic buffer management API -- runtime
ii libgl1-mesa-dev:amd64 12.1~git1606090730.037ce5~gd~t amd64 free implementation of the OpenGL API -- GLX development files
ii libgl1-mesa-dri:amd64 12.1~git1606090730.037ce5~gd~t amd64 free implementation of the OpenGL API -- DRI modules
ii libgl1-mesa-dri:i386 12.1~git1606090730.037ce5~gd~t i386 free implementation of the OpenGL API -- DRI modules
ii libgl1-mesa-glx:amd64 12.1~git1606090730.037ce5~gd~t amd64 free implementation of the OpenGL API -- GLX runtime
ii libgl1-mesa-glx:i386 12.1~git1606090730.037ce5~gd~t i386 free implementation of the OpenGL API -- GLX runtime
ii libglamor0:amd64 0.6.0+git1603170630.347ef4~gd~t amd64 shared graphics acceleration library based on OpenGL
ii libglapi-mesa:amd64 12.1~git1606090730.037ce5~gd~t amd64 free implementation of the GL API -- shared library
ii libglapi-mesa:i386 12.1~git1606090730.037ce5~gd~t i386 free implementation of the GL API -- shared library
ii libgles2-mesa:amd64 12.1~git1606090730.037ce5~gd~t amd64 free implementation of the OpenGL|ES 2.x API -- runtime
rc libllvm3.7:amd64 1:3.7.1-1ubuntu3~gd~t amd64 Modular compiler and toolchain technologies, runtime library
rc libllvm3.7:i386 1:3.7.1-1ubuntu3~gd~t i386 Modular compiler and toolchain technologies, runtime library
ii libllvm3.8:amd64 1:3.8~+rc3-1~exp1~gd~t amd64 Modular compiler and toolchain technologies, runtime library
ii libllvm3.8:i386 1:3.8~+rc3-1~exp1~gd~t i386 Modular compiler and toolchain technologies, runtime library
ii libosmesa6:amd64 12.1~git1606090730.037ce5~gd~t amd64 Mesa Off-screen rendering extension
ii libosmesa6:i386 12.1~git1606090730.037ce5~gd~t i386 Mesa Off-screen rendering extension
rc libva-drm1:amd64 1.7.0-1~gd~t amd64 Video Acceleration (VA) API for Linux -- DRM runtime
rc libva-egl1:amd64 1.7.0-1~gd~t amd64 Video Acceleration (VA) API for Linux -- EGL runtime
rc libva-glx1:amd64 1.7.0-1~gd~t amd64 Video Acceleration (VA) API for Linux -- GLX runtime
rc libva-tpi1:amd64 1.7.0-1~gd~t amd64 Video Acceleration (VA) API for Linux -- TPI runtime
rc libva-wayland1:amd64 1.7.0-1~gd~t amd64 Video Acceleration (VA) API for Linux -- Wayland runtime
ii libva-x11-1:amd64 1.7.0-1~gd~t amd64 Video Acceleration (VA) API for Linux -- X11 runtime
ii libva1:amd64 1.7.0-1~gd~t amd64 Video Acceleration (VA) API for Linux -- runtime
ii libvdpau-dev:amd64 1.1.1-3~gd~t amd64 Video Decode and Presentation API for Unix (development files)
ii libvdpau1:amd64 1.1.1-3~gd~t amd64 Video Decode and Presentation API for Unix (libraries)
ii libvorbis-dev:amd64 1.3.5-2~gd~t amd64 development files for Vorbis General Audio Compression Codec
ii libvorbis0a:amd64 1.3.5-2~gd~t amd64 decoder library for Vorbis General Audio Compression Codec
ii libvorbis0a:i386 1.3.5-2~gd~t i386 decoder library for Vorbis General Audio Compression Codec
ii libvorbisenc2:amd64 1.3.5-2~gd~t amd64 encoder library for Vorbis General Audio Compression Codec
ii libvorbisenc2:i386 1.3.5-2~gd~t i386 encoder library for Vorbis General Audio Compression Codec
ii libvorbisfile3:amd64 1.3.5-2~gd~t amd64 high-level API for Vorbis General Audio Compression Codec
ii libvorbisfile3:i386 1.3.5-2~gd~t i386 high-level API for Vorbis General Audio Compression Codec
ii libwayland-egl1-mesa:amd64 12.1~git1606090730.037ce5~gd~t amd64 implementation of the Wayland EGL platform -- runtime
ii libxatracker2:amd64 12.1~git1606090730.037ce5~gd~t amd64 X acceleration library -- runtime
ii linux-firmware 1.134~gd~t all Firmware for Linux kernel drivers
ii mesa-common-dev:amd64 12.1~git1606090730.037ce5~gd~t amd64 Developer documentation for Mesa
ii mesa-utils 8.2.0-1~gd~t amd64 Miscellaneous Mesa GL utilities
ii xserver-xorg-video-ati 1:7.7.99+git1606011933.0945db~gd~t amd64 X.Org X server -- AMD/ATI display driver wrapper
ii xserver-xorg-video-glamoregl 0.6.0+git1603170630.347ef4~gd~t amd64 X.Org X server -- graphics acceleration module based on OpenGL
ii xserver-xorg-video-intel 2:2.99.917+git1606011933.b617f8~gd~t amd64 X.Org X server -- Intel i8xx, i9xx display driver
ii xserver-xorg-video-nouveau 1:1.0.12+git1606020733.1da8a9~gd~t amd64 X.Org X server -- Nouveau display driver
ii xserver-xorg-video-radeon 1:7.7.99+git1606011933.0945db~gd~t amd64 X.Org X server -- AMD/ATI Radeon display driver
我从这个列表中提取了这些候选者进行清洗:
libdrm
libdrm2
libva
linux-firmware
libvorbis*
libglamor*
mesa-common-dev
mesa-utils
libllvm*
libvdpau
xserver-xorg-video-ati
xserver-xorg-video-intel
xserver-xorg-video-nouveau
xserver-xorg-video-radeon
从哪里我找不到xserver-xorg-video-glamoregl
从我在网上“相关包”Oibaf PPA 部分
答案1
最后我完全采用了手动方式。
首先,我检查了可以删除哪些包apt-get remove --purge --dry-run package_name
而不改变任何依赖项。接下来我会检查我想要降级到哪个特定版本apt-cache policy package_name
。然后我将继续安装每个软件包的最新可用版本。
此方法适用于
* xserver-xorg-video-ati
xserver-xorg-video-intel
xserver-xorg-video-nouveau
xserver-xorg-video-radeon
xserver-xorg-video-glamoregl
取决于xserver-xorg-video-ati
取决于xserver-xorg-video-glamoregl
所以libglamor0
它不能重新安装,除非您执行下一步:
然后我继续降级,其中出现的所需版本在apt-get install --reinstall package_name=version
哪里。我使用可以重新安装而不影响依赖项的软件包以及在各个命令上共享相同版本的分组软件包来执行此操作。与:version
apt-cache policy
linux-firmware
libglamor0
mesa-common-dev
mesa-utils
libva-x11-1
libva1
libvdpau-dev
libvdpau1
删除 mesa 软件包而不是重新安装它们会影响很多依赖项。通过这一步,我可以再次安装libglamor0
,然后 xserver-xorg-video-glamoregl
,最后xserver-xorg-video-ati
。
重新安装后libva
,相关的标有“rc”的软件包libva
仍然存在。该标记意味着“已删除,但配置文件仍然存在”,我用apt-get remove --purge package_name
.
我此时重新启动机器,看看它是否会再次启动,幸运的是它确实启动了。此时我有一些信心,因为所有这些包都相互依赖或没有任何依赖。
然后...依赖地狱。
我在dpkg -i --force-depends list-of-packages
不影响其依赖项的情况下降级了软件包,如下所示:如何在不删除其依赖项的情况下降级软件包?
我下载并重新安装了一批具有相同版本的 deb 软件包。检查每个软件包是否有软件包候选,apt-cache policy
并使用那里显示的特定版本和体系结构 (amd64/i386) 在 Google 上下载它们。在提交每个命令之前,我进行了试运行,dpkg
处理可能因依赖项冲突而出现的任何警告。没有显示冲突。
首先我去了这批libdrm2
。
libdrm2_2.4.67-1ubuntu0.14.04.1_amd64.deb
libdrm2_2.4.67-1ubuntu0.14.04.1_i386.deb
libdrm-amdgpu1_2.4.67-1ubuntu0.14.04.1_amd64.deb
libdrm-amdgpu1_2.4.67-1ubuntu0.14.04.1_i386.deb
libdrm-dev_2.4.67-1ubuntu0.14.04.1_amd64.deb
libdrm-intel1_2.4.67-1ubuntu0.14.04.1_amd64.deb
libdrm-intel1_2.4.67-1ubuntu0.14.04.1_i386.deb
libdrm-nouveau2_2.4.67-1ubuntu0.14.04.1_amd64.deb
libdrm-nouveau2_2.4.67-1ubuntu0.14.04.1_i386.deb
libdrm-radeon1_2.4.67-1ubuntu0.14.04.1_amd64.deb
libdrm-radeon1_2.4.67-1ubuntu0.14.04.1_i386.deb
然后mesa
(此时完全有必要,因为apt-get
开始抱怨 libdrm 破坏了与 mesa 库的依赖关系)
libegl1-mesa_10.1.3-0ubuntu0.6_amd64.deb
libegl1-mesa-drivers_10.1.3-0ubuntu0.6_amd64.deb
libgbm1_10.1.3-0ubuntu0.6_amd64.deb
libgl1-mesa-dri_10.1.3-0ubuntu0.6_amd64.deb
libgl1-mesa-dri_10.1.3-0ubuntu0.6_i386.deb
libgl1-mesa-glx_10.1.3-0ubuntu0.6_amd64.deb
libgl1-mesa-glx_10.1.3-0ubuntu0.6_i386.deb
libglapi-mesa_10.1.3-0ubuntu0.6_amd64.deb
libglapi-mesa_10.1.3-0ubuntu0.6_i386.deb
libgles2-mesa_10.1.3-0ubuntu0.6_amd64.deb
libosmesa6_10.1.3-0ubuntu0.6_amd64.deb
libosmesa6_10.1.3-0ubuntu0.6_i386.deb
libwayland-egl1-mesa_10.1.3-0ubuntu0.6_amd64.deb
libxatracker2_10.1.3-0ubuntu0.6_amd64.deb
最后libvorbis
是包:
libvorbis0a_1.3.2-1.3ubuntu1_amd64.deb
libvorbis0a_1.3.2-1.3ubuntu1_i386.deb
libvorbis-dev_1.3.2-1.3ubuntu1_amd64.deb
libvorbisenc2_1.3.2-1.3ubuntu1_amd64.deb
libvorbisenc2_1.3.2-1.3ubuntu1_i386.deb
libvorbisfile3_1.3.2-1.3ubuntu1_amd64.deb
libvorbisfile3_1.3.2-1.3ubuntu1_i386.deb
此时,libllvm
它变成了一个不需要的依赖项,可以通过 删除apt-get autoremove
。它留下了“rc”标记的包,我删除了这些包,apt-get remove --purge
没有任何问题。