/var/lib/dpkg/info 文件夹作用以及补救方法

简单的说关于dpkg是一个dpkg是Debian的中级软件包管理器,类似RPM.
而其中的:/var/lib/dpkg/info”用于保存各个软件包的配置文件列表.
如果把这个里面的东西全部删除系统并不会瘫痪(我莽撞的尝试过了,哈哈),它好像联接到/etc/init.d/相关目录的命令。而Terminal对软件包的命令来源于那里(暂时这么认为的,呵呵)如: 自己安装mysql,没有了/ect/init.d 里的mysql文件, Terminal将无法执行: service mysql restart 将无法重启mysql,各种liunx的命令可能会有区别,好像看到 service mysqld [stop| stop| restart]这样的命令。随便提下我的系统是ubuntu。
但如果你误删了ect/init.d 的目录,那么重装是无济于事的。那么如何恢软件包在/ect/init.d里相应文件呢?
暂时只在下面方法取得成功:
将/var/lib/dpkg/info里的相应内容删除,一般一个软件有几个相对应文件,但可以区分的,如:mysql的开头都是mysql,那么reinstall该然件包,系统会再次在/etc/init.d下生成相应的文件。 如: /etc/init.d/mysql. 试一试命令: sudo service mysql restart,成功了!

参考http://hi.baidu.com/gengjie/blog/item/7e4d3e7af535a3ec2e73b3bd.html

#!/bin/bash  
set -e  

# Clean out /var/cache/apt/archives  
apt-get clean  
# Fill it with all the .debs we need  
apt-get --reinstall -dy install $(dpkg --get-selections | grep '[[:space:]]install' | cut -f1)  

DIR=$(mktemp -d -t info-XXXXXX)  
for deb in /var/cache/apt/archives/*.deb  
do  
    # Move to working directory  
    cd "$DIR"  
    # Create DEBIAN directory  
    mkdir -p DEBIAN  
    # Extract control files  
    dpkg-deb -e "$deb"  
    # Extract file list, fixing up the leading ./ and turning / into /.  
    dpkg-deb -c "$deb" | awk '{print $NF}' | cut -c2- | sed -e 's/^\/$/\/./' > DEBIAN/list  
    # Figure out binary package name  
    DEB=$(basename "$deb" | cut -d_ -f1)  
    # Copy each control file into place  
    cd DEBIAN  
    for file in *  
    do  
        cp -a "$file" /var/lib/dpkg/info/"$DEB"."$file"  
    done  
    # Clean up  
    cd ..  
    rm -rf DEBIAN  
done  
rmdir "$DIR"  

From:
http://blog.csdn.net/gf574723691/article/details/53505721

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值