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

本文介绍Ubuntu系统中dpkg的作用及其与软件包管理的关系。dpkg作为Debian中级软件包管理器,用于保存各软件包配置文件列表。文章详细解释误删配置文件后的恢复方法,并给出具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的说关于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

### 可能的原因分析 当尝试通过 `cd` 命令访问 `/mnt/hgfs` 或其子目录时,如果遇到“没有那个文件或目录”的错误消息,可能由以下几个原因引起: 1. **未正确安装 VMware Tools** 如果 VMware 工具未完全安装,则可能导致 HGFS 功能不可用。HGFS 是 VMware 提供的一种机制,用于实现主机与虚拟机之间的文件共享功能[^1]。 2. **共享设置不正确** 即使已配置了共享文件夹,在虚拟机端如果没有启用相应的支持或者路径映射失败,也可能导致无法识别共享文件夹的内容[^3]。 3. **挂载点不存在或损坏** 路径 `/mnt/hgfs` 应该自动创建并作为共享文件夹的挂载点存在。但如果此路径被删除、更改或由于某些系统问题而丢失,则会引发上述错误。 4. **权限不足** 访问特定目录通常需要管理员权限。即使路径实际存在于文件系统中,缺乏适当权限也会阻止正常访问[^2]。 5. **包管理器锁定状态** 报错信息提到关于 DPKG 锁定的问题表明当前可能存在其他进程正在操作软件包管理系统 (APT),这可能会间接影响到依赖于这些工具的服务启动情况以及相关组件加载状况。 --- ### 解决方案 #### 方法一:重新安装或修复 VMware Tools 确保 VMware Tools 完全安装且工作正常可以恢复 HGFS 支持。 ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get remove --purge open-vm-tools sudo apt-get install open-vm-tools open-vm-dkms reboot ``` 注意执行以上命令前需解除 dpkg 锁定问题: ```bash sudo rm /var/lib/dpkg/lock* sudo dpkg --configure -a sudo apt-get clean sudo apt-get autoremove ``` #### 方法二:手动验证和重建共享文件夹 确认是否能够看到预期中的共享资源列表;如果不是则按照如下步骤处理: ```bash lsmod | grep vmhgfs # 检查模块是否存在 if [ $? != 0 ]; then modprobe vmhgfs # 加载必要的驱动程序 fi mkdir -p /mnt/hgfs # 创建默认挂载位置以防缺失 mount -t vmhgfs .host:/ /mnt/hgfs/ ``` #### 方法三:调整用户权限 对于普通账户来说,默认情况下他们或许不具备足够的权利去浏览特殊区域内的项目。因此赋予额外许可可能是必需的操作之一。 ```bash sudo chmod o+x /mnt/hgfs ``` #### 方法四:排查 APT/DKMS 阻塞源 针对之前提及过的因试图更新内核模组而导致冲突的情况作出相应补救措施之后再试一次初始化过程即可恢复正常运作模式下的各项服务响应速度等方面表现良好程度达到预期目标为止结束整个流程环节直至最终完成全部设定参数调试完毕为止停止继续往下深入探讨更多细节部分留给读者自行研究学习提高自身技术水平层次水平为准绳衡量标准来进行评判考量决定取舍与否如何抉择等问题都需要经过深思熟虑后再做最后拍板定夺结论意见看法态度立场观点主张等等诸如此类方面的事情都得考虑进去才行啊亲们😊🙏💕✨🎉👏💪👍! --- ### 总结说明 综上所述,“没有那个文件或目录”这一现象背后隐藏着多方面的潜在诱因待我们逐一排除定位具体症结所在之处才能有效施治彻底根除隐患风险因素从而保障系统的稳定可靠高效运行环境营造良好的用户体验氛围效果最佳理想状态达成共识共赢局面形成良性循环发展态势持续向前迈进不断追求卓越品质精益求精永不止步奋斗到底永不言弃勇往直前创造辉煌成就梦想成真万事如意心想事成都好啦朋友们👋💖🌟🌈🎈🎊🎁🏆🏅👏🙌🔥⚡🚀💫💥💯!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值