1
为什么“ du --apparent-size”有时会偏离90%以上?
我正在开发一个构建Pacman软件包的软件(基本上是带有一些特殊元数据文件的tarball)。测试套件将生成一些程序包,然后将结果程序包与记录的预期结果进行比较。 程序包中记录的元数据中的字段之一是程序包的安装大小,该大小由du -s --apparent-size在将其压缩之前在根目录上运行确定。 所有这些在我开发的本地Arch Linux机器上都可以正常工作。每次运行测试时,都会精确复制这些软件包,包括以字节为单位的安装大小(甚至不是千字节,字节!)。 现在,我还在Travis上启用了此测试,据我所知,它在基于Ubuntu-12.04的容器上运行(据我对Travis文档的了解)。在那里,测试大部分时间都通过了。大多数时候。有时,它计算出的安装大小减少了80-99%。 这是一个测试失败的示例:https : //travis-ci.org/holocm/holo/builds/89326780(该测试成功之前。)相关的区别之一是 @@ -37,7 +37,7 @@ pkgdesc = my foo bar package url = packager = Unknown Packager - size = 37728 + size = 1464 arch = any license = custom:none replaces = foo-bar<2.1 令人费解的是,它仅在某些时间发生,没有明显的模式。测试会像往常一样排列相同的文件,du -s --apparent-size在结果树上运行,并得出完全错误的结果。我尝试在Ubuntu 12.04 VM上重现此错误,虽然我看到它出现一次或两次,但我看不到那里出现任何可以帮助我重现此问题的模式。 也许有人在想什么可能导致此问题? 编辑:哦,实际上我观察到一种模式。du每个测试用例运行一次。如果第一个测试用例失败,则此运行中的所有测试用例都将失败。