如何定位丢失的 C 代码

Nik*_* R. 9 debian

我继承了一个遗留的开发系统,它的文档很差,并且不知道源代码是否仍然可用。

现在我可以找到一些源代码并实际构建系统的一部分。

我想知道是否可以找到其余的源代码,以及是否有比locate *.c手动检查文件更好的方法(这就是我找到部分代码的方式)。

有 3 台机器,只有一台我找到了似乎是开发机器的源代码。它还有 61 个.deb档案,似乎是项目的打包版本,但查看.deb档案表明源不在档案中,或者至少不在我查看的地方。

有没有一种好方法可以“扫描”整个驱动器以获取源代码?

Ste*_*itt 9

这不会回答您更一般的问题,但在您的特定情况下,由于系统上有软件包,因此值得查找相应的源代码:

find / -name \*.orig.tar\* -o -name \*.dsc
Run Code Online (Sandbox Code Playgroud)

这将查找以 Debian 包构建工具期望的方式命名的源档案,以及源包控制文件。如果找到这些,请在它们旁边查找.debian.tar*.diff.gz归档。所有这些文件组合在一起将为您提供源代码和构建规则,以及所有包元数据。

您还可以查找解压缩的控制文件:

find / -name control
Run Code Online (Sandbox Code Playgroud)

这些通常位于debian包源的子目录中,该子目录应包含从源重新构建包所需的一切。

  • @cas 我想在这里安全一点,我看到了一些用于构建 Debian 软件包的非常奇怪的设置。`locate` 会更快,但过去在已清理的恢复系统上运行它让我感到失望 - `locate` 数据库关于源代码仍然是新的,但已经消失。(如果备份可用,这仍然是有用的信息......) (2认同)
  • @DjDac 没关系,只是`find` 试图读取`/proc` 中的文件,该文件在`find` 构建其文件列表和读取它们的时间之间消失。你可以完全跳过 `/proc`。 (2认同)