![你使用 Makefile 做什么(除了构建自动化)](https://linux22.com/image/486310/%E4%BD%A0%E4%BD%BF%E7%94%A8%20Makefile%20%E5%81%9A%E4%BB%80%E4%B9%88%EF%BC%88%E9%99%A4%E4%BA%86%E6%9E%84%E5%BB%BA%E8%87%AA%E5%8A%A8%E5%8C%96%EF%BC%89.png)
Makefile 非常适合自动化构建、安装和测试。
但这并不是 Make 的结束。我使用 makefile 执行了许多任务,例如清理日志、保存镜像网页和下载、将它们挂接到 crontab 和测试套件中……
和脚本一样,我认为 Makefile 的自动化范围很广。特别是当你需要一系列基于依赖关系的触发时。
您使用 Makefile 做过哪些不同的事情?
您计划在遇到麻烦时用它们做更多的事情吗?
答案1
我的简历。LaTeX 输入,PDF 输出。
答案2
我非常喜欢 Makefile,尤其是对于初级系统管理员来说。
更新绑定区域文件?
没问题:目标有checkzone
(checkconfig
内存不足)并且只有sudo cp <editlocation> <reallocation>; git commit -a ....
一切看起来基本正常时才会发生......
复杂的部署?
没有问题,记录在Makefile中
我几乎在任何适合使用脚本的地方都使用过 Makefile。实际上,我将它们组合在一起,/usr/local/[s]bin/
即“单步”脚本所在的位置,而 Makefile 位于相关服务的工作目录中。
实际上,我出于上述原因使用它们的次数比用于构建系统要多得多 - 如果你不计算乳胶和来自上游的构建的话。
答案3
由于我们基本上是一家 Ruby 商店,因此我使用 Rake 而不是 Make。我已经使用 Rake 自动执行了以下操作,使用 Make 执行这些操作应该不会太难:
EC2 节点维护。创建和终止实例。
创建一个 tarball 并将其上传到 S3。
部署服务器配置;主要通过调用目录的 rsync 和直接复制单例文件。
将 Ruby DSL 代码转换为 JSON 数据。
处理 git 存储库中的软件发布(创建新的分支、标签等)。
答案4
我使用 makefile 来处理来自 DocBook 源的 XML 转换。这样,我就可以流水线化所有命令,并根据目标受众从同一源执行“make pdf”或“make wordml”。