查看文章
 
记录一下上回参考arch wiki 如何恢复Pacman的本地数据库
2011-04-26 22:59

https://wiki.archlinux.org/index.php/Pacman_Tips_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)  如何恢复Pacman的本地数据库


https://bbs.archlinux.org/viewtopic.php?pid=616234#p616234

 

升级pacman 3.5 后来跑到/var/lib/pacman 里,不小心把本地数据库目录给删了,后来按上面的方法恢复了本地数据库,结果 pacman -Sh 时发现了一个新的参数

-k, --dbonly         仅修改数据库条目,而非软件包文件

记录一下,不过下回也难得再删一次了

 

[code]

cat log2pkglist.awk 

#!/bin/awk -f

 

$3 ~ /^(installed|upgraded)$/ {

  pkg[$4] = 1

  next

 

$3 == "removed" {

  pkg[$4] = 0

 

END {

  for (i in pkg) if (pkg[i]) print i

  }


[/code]

[code]

#!/bin/bash

 

tmp=./tmp

mkdir -p "${tmp}"

 

pushd "${tmp}"

dbpath=$(readlink -f ./dbpath)

root=$(readlink -f ./root)

#cache=$(readlink -f ./cache)

cache=$(readlink -f /var/cache/pacman/pkg/)

log=/dev/null

mkdir -p "${dbpath}" "${cache}" "${root}"

popd

 

echo "dbpath = ${dbpath}" 

echo "root= ${root}"   

echo "cache = ${cache}" 

echo "log = ${log}"  

 

recovery-pacman() {

  fakeroot pacman "$@"   \

    --dbpath "${dbpath}" \

    --root   "${root}"   \

    --cache  "${cache}"  \

    --log    "${log}"    \

    --noscriptlet        \

    --dbonly        \

    #

}

recovery-powerpill() {

  fakeroot powerpill "$@"   \

    --dbpath "${dbpath}" \

    --root   "${root}"   \

    --cache  "${cache}"  \

    --log    "${log}"    \

    --noscriptlet        \

    --dbonly        \

    #

}

 

recovery-all()

{

    recovery-pacman -S --nodeps --needed $(< pkglist)

}

[/code]


类别:Archlinux||添加到搜藏 |分享到i贴吧|浏览(211)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu