LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1073|回复: 11

如何确保pacman的pkg目录下的文件是最新的?

[复制链接]
发表于 2008-5-2 22:43:40 | 显示全部楼层 |阅读模式
我把pacman的pkg目录备份了一把。这样下次安装的话更新会快一点。
不过目录下同一个包有好几个版本,好像pacman在更新的时候不会把旧版本的安装包删除。
我总不至于要一个一个手动把旧版本删除吧?有没有办法让pacman更新时自动删除旧版本的安装包?或者我要自己写一个脚本?
 楼主| 发表于 2008-5-2 22:51:58 | 显示全部楼层
呵呵,我在Wiki上找到了。
http://wiki.archlinux.org/index. ... de_via_Home_Network
看最后的那个脚本,应该蛮有用的。
回复 支持 反对

使用道具 举报

发表于 2008-5-3 01:12:23 | 显示全部楼层
贴过来~~~
  1. # !/bin/bash
  2. # script cleans pacman cache by comparing existing version of a package
  3. # to newest version of package available according to pacman-db
  4. # WARNING! THIS SCRIPT WILL DELETE EVERY FILE IN /var/cache/pacman/pkg
  5. # THAT IS NOT IN THE PACMAN-DB OR THAT DOES NOT FOLLOW THE CURRENT NAMING
  6. # CONVENTIONS: <PACKAGENAME>.<VERSION>.<ARCHITECTURE>.pkg.tar.gz !!!
  7. #
  8. arc=$(uname -m)       
  9. for fn in $(ls /var/cache/pacman/pkg);do
  10.     # strip off .pkg.tar.gz
  11.     f=${fn/%\.pkg\.tar\.gz/}
  12.     # strip off architecture if given in package name
  13.     if echo $f | grep -q $arc; then
  14.        f=${f/%$arc/};f=${f/%-/}
  15.     fi
  16.     # now divide string into version and package name as used by pacman -Si
  17.     pk=$f;v=$f;pk=${pk%-*};pk=${pk%-*};v=${v/$pk};v=${v/-}
  18.     # query pacman-database to get current version of package and delete cached version if it is older
  19.     if ! pacman -Si $pk | grep -q $v ; then
  20.        rm -v /var/cache/pacman/pkg/$fn
  21.     fi
  22. done
  23. # end of file
复制代码
回复 支持 反对

使用道具 举报

发表于 2008-5-3 12:51:53 | 显示全部楼层
pacman -Sc 不是做这个的吗?
回复 支持 反对

使用道具 举报

发表于 2008-5-3 18:54:54 | 显示全部楼层
Wiki大概有点老了,现在不需要这个脚本了。
回复 支持 反对

使用道具 举报

发表于 2008-5-3 19:40:39 | 显示全部楼层
Post by ganloo;1845284
Wiki大概有点老了,现在不需要这个脚本了。
学习了~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-3 21:38:21 | 显示全部楼层
Post by glacjay;1845161
pacman -Sc 不是做这个的吗?


呵呵,是啊,没仔细看man。
回复 支持 反对

使用道具 举报

发表于 2008-5-4 11:06:01 | 显示全部楼层
pacman -Sc 现在不能删除旧包了
回复 支持 反对

使用道具 举报

发表于 2008-5-4 12:23:23 | 显示全部楼层
Post by skyround;1845464
pacman -Sc 现在不能删除旧包了


开玩笑..我刚刚还运行过pacman -Sc 把旧的包删除了
回复 支持 反对

使用道具 举报

发表于 2008-5-4 13:33:48 | 显示全部楼层
Post by zhong;1845503
开玩笑..我刚刚还运行过pacman -Sc 把旧的包删除了


现在的pacman -Sc是删除未安装的包,不是专门删除旧包,杀伤太大
对于未安装的包,以前pacman -Sc不会删除最新的版本,现在是全部删掉
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表