您的位置:首页 > 数据库

记录一下上回参考arch wiki 如何恢复Pacman的本地数据库

2011-04-26 22:59 176 查看
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 仅修改数据库条目,而非软件包文件
记录一下,不过下回也难得再删一次了

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
}

#!/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)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  #Archlinux
相关文章推荐