【问题标题】:Permission denied for build.sh filebuild.sh 文件的权限被拒绝
【发布时间】:2017-06-28 12:54:19
【问题描述】:
$ ./build.sh --quiet verify

/home/travis/build.sh: line 59: ./build.sh: Permission denied. 

The command "./build.sh --quiet verify" exited with 126. 

【问题讨论】:

  • 可以显示build.sh文件的权限吗?
  • 第 59 行是什么?
  • 不知道,因为 /home/travis/build.sh 文件存在于 travis-ci.org 中

标签: permissions travis-ci


【解决方案1】:

看起来您需要签入具有执行权限的文件build.sh。请在您自己的机器上尝试以下操作:

git update-index --add --chmod=+x build.sh
git commit -m 'Make build.sh executable'
git push

【讨论】:

  • 我从 2007 年开始使用 git,这是我第一次看到这个解决方案。 慢拍
  • 普通的旧 chmod +x build.sh && git add build.sh 有什么问题?
  • @MateenUlhaq 即使使用 git bash 也无法在 Windows 上运行。所以你必须将它添加到 git-history 中,然后调整索引以保存权限。
  • 在运行 git commit 之前,我运行了 git status ,它显示的文件与被跟踪和未跟踪的文件相同。我提交并且很好,但是下次我git added 文件时,权限丢失了。
  • 哇。来自 Windows 世界但在 Azure 中的 Ubuntu 上构建 .NET Core 非常有用。
【解决方案2】:

您可以通过将此行添加到 .travis.yml

来授予所需的权限
before_install:
  - chmod +x build.sh

【讨论】:

    【解决方案3】:

    使用 bash 运行脚本

    另一种选择是使用 bash 运行脚本,这样就无需修改文件的权限。

    bash path/to/file.sh
    

    或者:

    sh path/to/file.sh
    

    注意

    在这种情况下,您 执行脚本本身,您正在执行 bashsh 然后 运行脚本。因此脚本不需要是可执行的

    有意义吗?

    【讨论】:

    • 是否有理由想要运行 bash 而不是脚本?是否有一种方式或另一种方式的好处?
    • 这只是一种无需修改文件权限的有用方法。 (在我的 Mac 上,我需要 sudo 来更改文件权限。在 travis-ci 上,你不能总是使用 sudo。我需要一种方法来运行我的测试,这两者都适用。并且在本地手动更改文件权限似乎没有喜欢最好的方法...)@Josh
    【解决方案4】:

    只需在 build.sh 文件所在的路径运行

    chmod +x build.sh

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 2012-11-24
      • 1970-01-01
      • 2017-12-25
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多