LinuxSir.cn,穿越时空的Linuxsir!

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

pacman是否可以重建数据库?

[复制链接]
发表于 2005-5-21 04:56:03 | 显示全部楼层 |阅读模式
[root@Blue local]#pwd
/var/lib/pacman/local
[root@Blue local]#ls
atk-1.9.1-1/  gimp-2.2.6-1/  gtk2-2.6.7-1/
[root@Blue local]#

不小心把/var/lib/pacman下的东东都删了,现在装什么东东都提示这样:

[root@Blue local]#pacman -S openssh

Targets: glibc-2.3.4-2 openssl-0.9.7g-1 zlib-1.2.2-1 ncurses-5.4-2
         readline-5.0-3 bash-3.0-6 filesystem-0.7-5 binutils-2.15-1
         gcc-3.4.3-2 db-4.3.27-2 pam-0.79-1 tcp_wrappers-7.6-6 openssh-4.0p1-1

Total Package Size:   50.1 MB

Proceed with upgrade? [Y/n]

选择y后,下载回的package,但无法正常升级,提示XXX已经存在系统里了。。。

想问问pacman是否有重建数据库功能?

十分谢谢!
发表于 2005-5-21 14:55:29 | 显示全部楼层
pacman -U pkgname.pkg.tar.gz这样能添加吗?

试过pacman -Sy没有?
试过pacman.static -Sy没有?

不行的话,从服务器上自己取回current.db.tar.gz之类的文件,解压到/var/lib/pacman下。
local的恐怕没有办法……

暂时没有重建数据库的方法,我再去找找。
回复 支持 反对

使用道具 举报

发表于 2005-5-21 15:34:47 | 显示全部楼层
看起来没有自动重建数据库的办法,因为/var/lib/pacman/local目录本身是唯一的记录。
/var/lib/pacman下的其他目录,可以通过pacman -Sy获得。
local下的内容,比较愚笨的处理方式是:
建立脚本,读取/var/log/pacman.log的内容,挑出包含install的行,去头去尾,结构合适后,传递给pacman -Sf --noconfirm。
虽然愚笨,但是看起来是目前唯一的办法……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-21 23:26:46 | 显示全部楼层
看来也只好这样了。。  以后一定要谨慎。。。
回复 支持 反对

使用道具 举报

发表于 2005-5-21 23:48:01 | 显示全部楼层
嗯。主要是local文件夹里多一些filelist文件,否则直接写脚本从相应库里拷就行了。

/var/lib/pacman下的文件夹,尤其是local文件夹,可以说是arch系统很重要的数据。要谨慎对待。
回复 支持 反对

使用道具 举报

发表于 2005-5-22 15:00:24 | 显示全部楼层
pacman没有使用数据库来管理软件包,可以以后会尝试使用SQL lite,但是现在没有。

如果下载回来的包无法安装,你可以试试“强行”:pacman -Af package.tar.gz
回复 支持 反对

使用道具 举报

发表于 2005-5-22 15:47:04 | 显示全部楼层
呵呵。强行安装是可以的。不过/var/lib/pacman/local下的东西没有了的话,对系统的影响是非常大的。pacman -Q将完全不正常。安装任何软件都有可能遇到一系列麻烦。所以对待local文件夹一定得谨慎。


不过,奇怪的是,楼主这种情况为什么会说已经在系统里了呢。按理说不应该的……在local下找不到的东西,pacman 就会认为是系统上没有的东西。

哦,原因可能是这样,系统以为你要安装的某个软件包没有安装(因为local下没有),而其实系统里你已经有了,所以它提示的是某些文件已经存在,而不是某个包已经存在。pacman对于包存在不存在判断的唯一依据,就是/var/lib/pacman/local
回复 支持 反对

使用道具 举报

发表于 2005-5-22 18:14:27 | 显示全部楼层
我想你最好还是重新安装一下。我曾经有过这样的经验,最后还是重新覆盖安装了一道,pacman才算正常。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-22 22:26:18 | 显示全部楼层
是的, 提示文件已经存在系统中,无法升级成功.

还好系统是新装好的,只装到了kde,不太大.  用chroot方式又重新安装个新的,再从这个里把local cp到主系统里........

原来一直在用lfs,还不太习惯pacman,apt这种升级系统方式,总觉得不塌实,看来要慢慢习惯了


谢谢各位大侠帮助
以后还请多多关照
回复 支持 反对

使用道具 举报

发表于 2005-5-22 23:06:43 | 显示全部楼层
如果你装个新的和这个版本装的包一模一样,就没有问题。如果不一样,还是需要调整的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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