Downgrading packages (简体中文)
在决定降级之前,请小心考虑。如果是因为现有包有Bug,请在Bug追踪系统搜索现有的Bug报告。如果没有,请花上几分钟帮忙把它报告给Arch的Bug追踪系统或软件包的项目地址,或者在论坛中警告其他可能遇到类似问题的用户。
Contents
如何降级软件包
使用pacman的临时文件
如果一个新包刚刚被安装并且没有删除pacman cache,你可以在/var/cache/pacman/pkg/
中找到较早版本.
安装替换现有的版本.pacman会处理依赖包但不会处理依赖库的版本冲突。如果一个其依赖库因该包降级需要降级,你需要手动降级这些包。
# pacman -U /var/cache/pacman/pkg/package-old_version.pkg.tar.xz
当成功降级该包以后,请暂时将其加入pacman.conf
的IgnorePkg section,直到您的问题被解决。
降级内核
如果您在升级内核后无法启动,您可以通过使用 live CD 来降级内核。方法类似Arch Linux的安装进程。启动后在/mnt
挂载你的根目录文件系统,别忘了挂载其他分区如/boot
或/var
等等。(例子 mount /dev/sdc3 /mnt/boot
)。然后chroot进入系统。
# arch-chroot /mnt /bin/bash
现在你可以在/var/cache/pacman/pkg
寻找旧的安装包。必须降级的有linux, linux-headers和任何内核模块。举例来说:
# pacman -U linux-3.5.6-1-x86_64.pkg.tar.xz linux-headers-3.5.6-1-x86_64.pkg.tar.xz virtualbox-host-modules-4.2.0-5-x86_64.pkg.tar.xz
退出并重启。
Arch Linux Archive
Arch Linux Archive是official repositories的日更快照。
ALA能被用来降级包或者还原整个系统到过去版本。
手动编译
如果找不到编译好的软件包,就需要自己找到 PKGBUILD 并通过 makepkg 编译。
官方软件仓库中的 PKGBUILD 可以通过 ABS 获取并修改软件版本。或者访问 软件包页面搜索你需要的降级的软件包,然后点 "查看修改" 链接,选择“查看日志“。找到需要的版本并通过 Tree 视图下载 .tar.gz
快照。
参阅 Arch Build System#Checkout an older version of a package.
老的 AUR 软件包可以从 AUR 软件包 git 仓库提出旧版本。如果是 2015 AUR3 之前的 PKGBUILD,请参阅 Arch User Repository#Git repositories for AUR3 packages.
vABS - Versioned Arch Build System
vABS 是一个ABS的拓展物,主要用来保存不同版本的官方PKGBUILD。你能够在其中找到两年内的旧版本。选择你期望的版本并编译安装,详细参见这里.
自动化
downgraderAUR 是一个基于libalpm的小工具, 支持 pacman log,使用 Arch Linux Archive,本地缓存和ARM进行降级.
downgradeAUR 基于Bash使用本地缓存和Arch Rollback Machine。详见man downgrade
。
agetpkg-gitAUR功能与上述类似。