![重新制作已删除的包的二进制文件的最简单方法是什么?](https://linux22.com/image/1100607/%E9%87%8D%E6%96%B0%E5%88%B6%E4%BD%9C%E5%B7%B2%E5%88%A0%E9%99%A4%E7%9A%84%E5%8C%85%E7%9A%84%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E7%9A%84%E6%9C%80%E7%AE%80%E5%8D%95%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我刚刚经历了这个问题并想知道是否有更好的方法来重新创建已安装包的二进制文件,该包以某种方式被删除。
我知道我可以重新安装该应用程序,但重新安装完整的软件包并不总是可行的。
附言:我正在谈论一个已安装的应用程序,所以请假设我没有源代码(它可能是开源的,但我不想获取已安装版本的确切源代码)。
答案1
嗯,DEB 包是可提取的!
因此,您可以简单地下载 DEB 包,提取它,从中获取二进制文件并将其放置在系统内部应有的位置(无论如何,这从 DEB 的结构中可见)。
例如,假设您缺少一个二进制文件。
使用以下脚本下载 DEB 包:
#!/bin/bash
PACKAGE=$1
URI=$(apt-cache show $PACKAGE | grep "Filename:" | cut -f 2 -d " ")
wget http://archive.ubuntu.com/ubuntu/$URI
它将包作为参数。
然后,解压包,您将看到一个usr
文件夹,文件夹里面还有一个bin
文件夹(这通常是二进制包的安装位置)。因此,您将这个二进制文件复制到那里,/usr/bin
就大功告成了。
请注意不要下载比您系统中安装的版本更高的软件包,以避免出现不兼容问题!
编辑:经过建设性的评论混乱请注意,如果您已经在系统中安装了该软件包,那么您可以在 中找到它/var/cache/apt/archives/
。从那里获取软件包是一个好主意,因为您可以确定不兼容问题。