解决了Ubuntu 14.04中tar 1.27的错误

时间:2015-07-05 03:43:52

标签: ubuntu tar yocto

Ubuntu 14.04最新的tar版本是1.27.1:

tar --version
tar (GNU tar) 1.27.1

但编译Yocto(由Altera提供:http://download.altera.com/akdlm/software/acdsinst/13.0/156/ib_installers/linux-socfpga-13.02-RC10-src.bsx,以及此处给出的说明:http://rocketboards.org/foswiki/view/Documentation/AlteraSoCDevelopmentBoardYoctoGettingStarted)一直在提出此错误:

| tar: --same-order option cannot be used with -c
| Try 'tar --help' or 'tar --usage' for more information.

归因于1.27的tar功能(http://lists.openembedded.org/pipermail/openembedded-core/2013-October/085105.html)。或者,我从GNU网站下载tar 1.26,编译时出现以下错误:

  CC     argp-eexst.o
In file included from argp.h:24:0,
                 from argp-eexst.c:27:
./stdio.h:479:1: error: ‘gets’ undeclared here (not in a function)
 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 ^

在最新修补的Ubuntu 14.04中编译Yocto时,有没有人有任何解决方法?

2 个答案:

答案 0 :(得分:0)

最后我克服了这个问题。这不是tar 1.27.1的错误,只是它破坏了许多使用旧tar功能的现有系统。

我从GNU获取了1.26版本的tar,在stdio.h中的第479行注释掉了创建错误的注释,并生成了一个忽略gets()警告的新tar。不是长期解决方案,但现在至少我可以成功编译Yocto。

答案 1 :(得分:0)

我不知道这在技术上是否可以视为错误,但是可以肯定的是,该错误也存在于1.29版中,并且无声地破坏了我的amanda-zdm备份。 不好笑。 对我来说,解决方案是降级到1.26版