我知道这是我不应该做的事情,但它发生了(Ubuntu 12.04.1 LTS),我以 root 用户身份删除了 /usr/lib 文件夹。任何想法如何恢复它?
小智 3
有一些工具可以帮助您取消删除文件,但通常这是一个缓慢且主要是手动的过程。搜索引擎是你的朋友。
启动 live CD 或 USB,挂载系统的根分区,然后将 /usr/lib 复制到 /mnt/{root.drive}usr/lib 可能会更容易,但您只会获得默认的 lib 文件,而不会获得什么你可能已经添加了。
我认为最好的选择是重新安装操作系统。当然,您将希望您的数据位于安装过程中未格式化的单独分区上,恕我直言,这是一个很好的做法。
假设apt-get仍然有效,您可以尝试使用dpkg来获取其中包含文件的软件包列表,然后使用apt-get. 您可以使用这个 Ruby 脚本,但同样的想法也可以在 python 或 bash 中实现:
raw_pkgs = `dpkg --get-selections`.split("\n")
need_reinstall = []
path="/usr/lib"
raw_pkgs.each do |x|
pkg = x.split(" ")[0]
if `dpkg -L #{pkg}`.include? path
puts "-> #{pkg} has files in #{path}"
need_reinstall << pkg
end
end
puts "\nYou need to reinstall #{need_reinstall.size} packages:"
puts "\tsudo apt-get install --reinstall " + need_reinstall.join(" ")
Run Code Online (Sandbox Code Playgroud)
这是一个有点暴力的解决方案,需要一些时间(在我的系统中,列表大约占已安装软件包总数的 65%...),但应该可以工作。