【问题标题】:Why do I get a "tar: Error opening archive: Unrecognized archive format" error when installing hyperledger fabric为什么在安装超级账本结构时出现“tar: Error opening archive: Unrecognized archive format”错误
【发布时间】:2021-11-17 17:10:00
【问题描述】:

运行 Mac OS Big Sur 11.5.2(Apple M1 芯片)

当我运行命令“curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/bootstrap.sh| bash -s”时,我得到:

tar:打开存档时出错:无法识别的存档格式 ==> 下载二进制文件时出错。

-----> 2.3.3 平台特定结构二进制文件无法下载

【问题讨论】:

  • Hyperledger Fabric 没有针对 Apple ARM 处理器的构建,所以这可能就是它无法正常工作的原因。也许有人在 Apple ARM 上使用了 hyperledger fabric,可以提供有关他们如何做到这一点的详细信息,或者通过使用带有 rosetta2 的 x86 构建,或者通过从源代码为 Apple ARM 处理器编译 hyperledger fabric

标签: hyperledger-fabric tar


【解决方案1】:

我的 M1 芯片也有类似的问题。解决这个问题的唯一方法是“制作”你自己的二进制文件并将它们复制过来。

详细步骤如下:

第 1 步:克隆面料和面料

git clone https://github.com/hyperledger/fabric 
git clone https://github.com/hyperledger/fabric-ca

第 2 步:将目录更改为“fabric”。制作原生文件

make native

第 3 步:将二进制文件移动到相应文件夹

mv build/bin $destination_folder/
mv sampleconfig $destination_folder/config

第 4 步:重复使用 fabric-ca

cd fabric-ca-client 
make fabric-ca-client
mv bin/fabric-ca-client $destination_folder/bin

第 5 步:导航到您的 $destination_folder/ 并照常运行。

注意:我了解了对 M1 的不支持以及我必须从 hyperledger.org 中“制作”我自己的本机文件。此答案的全部功劳归于 Brett Logan (https://jira.hyperledger.org/browse/FAB-18389?page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel&showAll=true)。

【讨论】:

    【解决方案2】:

    看起来该脚本会根据您的本地计算机架构构建要下载的 tar 文件名:

    https://github.com/hyperledger/fabric/blob/f9027a48cb6028243de75240b6a85f90834edaab/scripts/bootstrap.sh#L12

    ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')")
    

    https://github.com/hyperledger/fabric/blob/f9027a48cb6028243de75240b6a85f90834edaab/scripts/bootstrap.sh#L162-L163

    BINARY_FILE=hyperledger-fabric-${ARCH}-${VERSION}.tar.gz
    CA_BINARY_FILE=hyperledger-fabric-ca-${ARCH}-${CA_VERSION}.tar.gz
    

    然后尝试从 GitHub 下载它们:

    https://github.com/hyperledger/fabric/blob/f9027a48cb6028243de75240b6a85f90834edaab/scripts/bootstrap.sh#L90

    download "${BINARY_FILE}" "https://github.com/hyperledger/fabric/releases/download/v${VERSION}/${BINARY_FILE}"
    

    对我而言,在基于 Intel 的旧 Mac 上,这会导致下载 URL 类似于 https://github.com/hyperledger/fabric/releases/download/v2.3.3/hyperledger-fabric-darwin-amd64-2.3.3.tar.gz,它确实存在。我猜你的基于 M1 的 Mac 生成的任何ARCH 值都会导致不存在的 tar 文件 URL。也许你可以调整脚本,让它下载与我基于 Intel 的 Mac 相同的二进制文件,并使用 Rosetta 让事情正常工作。

    【讨论】:

    • 感谢您抽出宝贵时间回复。我会试一试
    猜你喜欢
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 2022-11-09
    • 1970-01-01
    相关资源
    最近更新 更多