问题描述
我正在使用yocto编译基于Linux的系统。解压缩ZIP文件时,编译(使用bitbake)步骤之一失败。失败的命令如下:
unzip -q -o '/absolute/path/to/file.zip'
返回failed with return value 81
我已经检查了unzip代码81的含义,这意味着:由于不支持的压缩方法或不支持的解密,导致测试或提取一个或多个文件失败。
从终端运行时,相同的解压缩命令也起作用。
有没有办法检查错误原因81?换句话说,这是不支持的压缩方法还是不支持的解密?
更多信息:
- 我已经运行
unzip -v file.zip
,发现压缩方法是 BZip2 应该受到支持。 - 该文件未加密。
- 该文件不受密码保护
解决方法
Yocto解压缩不带有bzip2支持。假设可以使用bzip2工具打开该文件(并且作为pmqs注释,这可能是一个错误的假设),我认为,如果重命名该文件,它应该就可以开始工作了,以便可以识别格式,并且使用正确的工具。像这样:
SRC_URI = "http://example.com/download/fname-${PV}.zip;downloadfilename=fname-${PV}.bz2"
,
使用Zip-Ada。它支持Deflate,Deflate64, BZip2 和LZMA进行解压缩。