如何使用已停产的 Ubuntu 版本清除和降级 PPA 软件包

如何使用已停产的 Ubuntu 版本清除和降级 PPA 软件包

不久前,我尝试过ppa:oibaf/graphic-drivers基于 Trusty 的 Linux-Mint 安装。

现在我需要返回到我的旧 xorg 驱动程序,但既不会ppa-purgey-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哪里。我使用可以重新安装而不影响依赖项的软件包以及在各个命令上共享相同版本的分组软件包来执行此操作。与:versionapt-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没有任何问题。

相关内容