首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nix -未能为Linux amd64加载本机库“lib本机-Platform.so”

Nix -未能为Linux amd64加载本机库“lib本机-Platform.so”
EN

Stack Overflow用户
提问于 2018-02-06 22:19:20
回答 2查看 1.9K关注 0票数 3

我试图在Freemind的基础上构建一个自由面派生,参见:https://github.com/razvan-panda/nixpkgs/blob/freeplane/pkgs/applications/misc/freeplane/default.nix

代码语言:javascript
复制
{ stdenv, fetchurl, jdk, jre, gradle }:

stdenv.mkDerivation rec {
  name = "freeplane-${version}";
  version = "1.6.13";

  src = fetchurl {
    url = "mirror://sourceforge/project/freeplane/freeplane%20stable/freeplane_src-${version}.tar.gz";
    sha256 = "0aabn6lqh2fdgdnfjg3j1rjq0bn4d1947l6ar2fycpj3jy9g3ccp";
  };

  buildInputs = [ jdk gradle ];

  buildPhase = "gradle dist";

  installPhase = ''
    mkdir -p $out/{bin,nix-support}
    cp -r ../bin/dist $out/nix-support
    sed -i 's/which/type -p/' $out/nix-support/dist/freeplane.sh

    cat >$out/bin/freeplane <<EOF
    #! /bin/sh
    JAVA_HOME=${jre} $out/nix-support/dist/freeplane.sh
    EOF
    chmod +x $out/{bin/freeplane,nix-support/dist/freeplane.sh}
  '';

  meta = with stdenv.lib; {
    description = "Mind-mapping software";
    homepage = https://www.freeplane.org/wiki/index.php/Home;
    license = licenses.gpl2Plus;
    platforms = platforms.linux;
  };
}

在gradle构建步骤中,它抛出以下错误:

构建路径‘/nix/store/9dc1x2aya5p8xj4lq9jl0xjnf08n7g6l-freeplane-1.6.13’解打包源解打包源存档/nix/store/c0j5hgpfs0agh3xdnpx4qjy82aqkiidv-freeplane_src-1.6.13.tar.gz源根是Freeplan-1.6.13将SOURCE_DATE_EPOCH设置为文件空闲平面的时间戳1517769626 -1.6.13/gitinfo.txt修补源代码配置没有配置脚本,什么都不做 失败:生成失败,出现异常。

  • 出了问题:未能为Linux amd64加载本机库‘lib本机-Platform.so’。
  • 尝试:使用--stacktrace选项运行以获得堆栈跟踪。使用--info或-调试选项运行以获得更多日志输出。‘/nix/store/id4vfk3r6fd4zpyb15dq9xfghf342qaa-freeplane-1.6.13.drv’生成器失败,退出代码1错误:生成‘/nix/store/id4vfk3r6fd4zpyb15dq9xfghf342qaa-freeplane-1.6.13.drv’失败

从终端运行gradle dist很好。我猜想,可能全球安装的Nix包之一提供了一个修复问题,它们在构建过程中是不可见的。

我找了很多次,但没有找到任何有效的解决办法。例如,删除~/.gradle文件夹没有帮助。

更新

要重现这个问题,只需git clone https://github.com/razvan-panda/nixpkgs,签出自由平面分支,并在存储库的根目录中运行nix-build -A freeplane

链接到GitHub问题

EN

回答 2

Stack Overflow用户

发布于 2021-09-13 16:07:21

也许你只是没有文件夹/文件的权限

sudo 777 yourFolderPath

你也可以: sudo chmod 777你的yourFolderPath/* (所有文件夹)

文件夹不会被锁定,那么您可以正常使用它。

至少我成功了。

例:

sudo chmod 777 Ruby/

好了,没关系

票数 1
EN

Stack Overflow用户

发布于 2019-10-24 19:58:37

要修复此错误:What went wrong: Failed to load native library 'libnative-platform.so' for Linux amd64.执行以下操作:

  1. 检查您的Gradle缓存(**~user/.Gradle/**本机文件夹是否存在)。
  2. 检查您的Gradle缓存(~user/.gradle/native文件夹是否存在,以及存在问题的文件,即libnative-platform.so是否存在于该目录中)。
  3. 检查上述文件夹~user/.gradle~/.gradle/native或文件:~/.gradle/native/libnative-platform.so是否具有有效权限(如果不是是只读的)。运行chmod -R 755 ~/.gradle就够了。

如果您根本没有看到本机文件夹,或者您的本机文件夹似乎损坏了,那么使用-g--gradle-user-home选项运行Gradle任务ex:--gradle-user-home并传递它的值。

/tmp/newG_H_Folder/.gradle Ex:如果我运行mkdir /tmp/newG_H_Folder; gradle clean build -g /tmp/newG_H_Folder,您将看到Gradle将填充所有需要运行的文件夹/文件(在运行任何任务或任何选项之前都需要运行这些文件夹/文件),这些文件夹/文件现在都在这个新的Gradle主文件夹(即目录)中。

从该文件夹中,您可以将-只需将本机文件夹复制到用户的~/..gradle文件夹(如果您愿意,可以首先备份~/..gradle中的现有本机文件夹),如果它已经存在,则-or将整个.gradle文件夹复制到您的~(主目录)。

然后重新运行你的分级任务,它就不会再出错了。

Gradle文档说: interface.html -g,-- Gradle - user指定了Gradle用户主目录。默认情况是用户主目录中的.gradle目录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48652914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档