你跟踪你在Unix或Linux下编译的程序吗?

你跟踪你编译和安装的程序吗?

如果是的话,你保留什么,configuration输出,安装输出?

关于这个问题有没有一些“最佳做法”?

如果我们可以编译和构build自己的东西,我们倾向于推出RPM / DEB包。 通过这种方式,我们可以使用发行版使用的一些工具来testing他们的软件包(使用干净的chroot进行构build,使用lintian进行Debian软件包的自动检查等等)。

另外,我们可以build立我们自己的软件包库,将软件部署到节点,我们可以将它们集成到木偶等工具中。 通过同样由分发工具使用的一套通用工具,轻松地跟踪目前安装的软件版本,也是一大好处。

与传统的“./configure; make / make install”相比,这种方法的学习曲线有些陡峭,但是它被完整地logging下来,使软件部署变得非常简单。

缺点是这种方法在专有的预编译软件方面并不可行。

我写了一些脚本来简化这个过程。如果我们正在将一个包重build成一个DEB文件,那么会发生一系列的步骤:

  1. ./info/目录下创build一个项目“root”目录,其中包含./info/文件包的根目录以及./info/目录下的原始包。
  2. 解压缩/解压缩源代码包到IMPORT/
  3. 在本地git服务器上创build一个纯粹的git仓库。
  4. ./src/创build安装目录结构,即./src/etc/init.d/thingy进入/etc/init.d/thingy
  5. 运行build-deb – 我写的一个脚本,它调用FPM构builddeb。
  6. 把整个血腥的事情搞成混帐。
  7. 推到reprepro。

我将马上做build-deb等脚本开源!