降级软件包
From ArchWiki
i18n |
---|
English |
简体中文 |
- 问: 当我运行 pacman -Syu 将软件包从版本甲升级到版本乙之后,发现这个软件包导致系统出现了一些问题,我该怎样将该软件包重新降级到版本甲呢?
- A: 如果该包不是很重要的话,你可以降级的。先查看你系统的/var/cache/pacman/pkg目录,看看旧版本的软件包是不是还保存在那儿 (如果你最近没有执行 pacman -Scc以清空包缓存的话,应该在那儿)。 如果在,你可以执行pacman -U pkgname-olderpkgver.pkg.tar.gz来安装旧版本。如果pacman提示文件冲突的花,你可以通过加上-f参数以强制执行,即 pacman -Uf pkgname-olderpkgver.pkg.tar.gz。
如果你本地系统里没有旧版的软件包,检查一下我们的更新源里有没有还没来得及更新的,如果有的话可以从那儿下载旧版软件包。你可以点击这里看看各镜像源的状态.
你也可以查看下面着几个更新源:
- http://ftp.tu-chemnitz.de/pub/linux/sunsite.unc-mirror/distributions/archlinux/
- http://ftp.icm.edu.pl/pub/Linux/sunsite/distributions/archlinux/
- http://ftp.parrswood.manchester.sch.uk/Mirrors/ftp.archlinux.org/
- http://arch.alouche.net/pkg (提示:这个网站不能直接添加为Arch的镜像更新源,你必须手动下载,然后更新)
如果这些地方都没有找到,那你就需要自己动手编译旧版本的软件包了。如果决定这样做,就可以从abs中先取出该软件包的PKGBUILD文件,然后修改相应的内容(通常是版本号)。或者访问 http://www.archlinux.org/packages/ 搜索你需要的降级的软件包,然后点 "View SVN entries" 链接,查看当前包的PKGBUILD和前一版本有何不同(ie: for the revision you are interested in). 如果你使用的是 "side by side" diff视图,你可以直接把旧版本的PKGBUILD的内容直接拷贝到本地,然后用他来编译。
禁止Pacman升级不想升级的包
- Q: 我怎么才能禁止Pacman升级那些我需要保持低版本的包呢?
- A: 修改/etc/pacman.conf中的'IgnorePkg' 变量值。
在/etc/pacman.conf中,有一行是'IgnorePkg = 第一个包 第二个包 ……',他的作用就是在执行全系统升级的时候,跳过某些包。
恢复到指定日期的状态
- Q: 我想恢复到我昨天的状态。
- A: 你可以通过启用快照很容易的达到该目的。
你可以通过创建一个逻辑分卷管理器(LVM)来创建和维护你的快照。不要和CVS版本控制系统中的快照搞混了。LVM快照是一种内核级别的文件系统快照,和全系统备份所不同的是,通过试用COW (copy-on-write)模式,即便是文件被修改了,快照也只需要占用比实际大家稍大一点的空间用来保存修改前的文件。换句话说,由于pacman -Sy只会修改远远小于2GB的数据,所以快照只需2GB的空闲空间就可以保存35GB的系统快照。 如果你系统的状态在升级后不正常了,你就可以迅速的通过回滚到前一个系统快照镜像。
参考资料
- 参考ABS - The Arch Build System 以了解更多相关信息
- 参考LVM2 以了解如何启用LVM快照并恢复指定状态。