Downgrading packages (简体中文)

From ArchWiki
Revision as of 11:36, 25 March 2016 by FireZ (talk | contribs) (跟进原文)
Jump to navigation Jump to search
翻译状态: 本文是英文页面 Downgrading_Packages翻译,最后翻译时间:2016-03-25,点击这里可以查看翻译后英文页面的改动。

在降级之前,好好考虑下你为什么要降级.如果是因为现有包有Bug,请在Bug追踪系统搜索现有的Bug报告.如果没有,请花上几分钟帮忙把它报告给Arch的Bug追踪系统或软件包的项目地址,或者至少警告其他可能遇到类似问题的用户.

警告:

如何降级软件包

使用pacman的临时文件

如果一个包刚刚被安装并且pacman cache没有被清除,你可以在/var/cache/pacman/pkg/寻找并安装早的版本. 这个方法会删除现有的版本并安装老的版本.依赖包会被处理但pacman并不会处理依赖库的版本冲突.如果一个其他包或依赖库因该包降级需要降级,你将不得不手动降级这些包.

# cd /var/cache/pacman/pkg/
# pacman -U <file_name_of_the_package>

当成功降级该包以后,请暂时性地将其加入pacman.confIgnorePkg 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 Archiveofficial repositories的日更快照.

ALA能被用来降级包或者还原整个系统到过去版本.

手动编译

最糟糕的情况,如果这些地方都没有找到,那你就需要自己动手编译旧版本的软件包了。如果决定这样做,就可以从abs中先取出该软件包的PKGBUILD文件,然后修改相应的内容(通常是版本号)。或者访问 https://www.archlinux.org/packages/ 搜索你需要的降级的软件包,然后点 "查看修改" 链接,选择“查看日志“。找到你需要的版本然后点击路径。然后下载相应的文件再用makepkg编译即可。

对于AUR包来说,只能在http://pkgbuild.com/git/aur-mirror.git/ 处找到旧包的PKGBUILD,或者你可以到[Unofficial User Repositories]]处找到旧的二进制包。

vABS - Versioned Arch Build System

vABS is an addition to ABS that has as main goal to keep different versions of the official PKGBUILDs. In ABS you have the latest versions of PKGBUILDs, while in vABS you also have old versions (up to 2 years). Select the desired version and download the build files tgz package or individual files and easily build your package with pkgbuild. More information about the service can be found here.

自动的方法

AUR 中有一个包叫做downgradeAUR。它是一个简单的 Bash 脚本,它会从你的缓存中寻找旧版本的包,如果没有的话它会搜索 A.R.M.。你可以选择一个旧包来安装。它基本上自动化了上面所述的过程。查看 downgrade --help 获取使用方法的信息。

另一个更强大的工具是downgraderAUR,它可以处理 pacman 的 log,能从 ARM、本地缓存降级,并且可以处理包列表 (如果在升级一些包后不稳定,而你不确定包的名字)

agetpkg-gitAUR quickly lists/gets/installs packages from the Arch Linux Archive.

从[testing]中返回

参见 Official repositories#Disabling testing repositories.