Travis sudo被禁用

时间:2014-10-10 12:34:13

标签: travis-ci

我想使用apt为测试安装一些软件包,但是由于sudo被禁用而失败。我在测试输出中找到了以下内容:

Sudo, the FireFox addon, setuid and setgid have been disabled.

似乎输出来自this line in travic-ci,但在paranoid_mode中将.travis.yml设置为false无效。

如何启用sudo访问?

PS:我正在使用私人回购。

编辑:运行.travis.yml

时,由于sudo: must be setuid root,以下sudo apt-get update -qq将失败
language: python
python:
  - "3.4"

before_install:
  - sudo apt-get update -qq

script:
  - nosetests

设置sudo: true和/或paranoid_mode: false不起作用。

3 个答案:

答案 0 :(得分:24)

基于Docker的架构关闭了Sudo访问,该架构将在两种情况下使用:

  • 存储库选择在他们的.travis.yml文件中使用sudo: false(另外需要在我们这边打开)
  • 关于我们的教育计划(见http://education.travis-ci.com

由于LXC / Docker层中的某些安全问题,目前无法允许基于Docker的架构运行的构建sudo访问。我们希望在不久的将来能够解决这个问题,但遗憾的是这个问题不在我们手中。

我们也在努力改进目前使用sudo的Firefox插件,但不应该。一旦发生这种情况,我们将在我们的博客上发布。

答案 1 :(得分:15)

要扩展现有答案,如果你输入.travis.yml:

sudo: required

Travis应该将您的构建切换为使用他们的标准基础架构" (而不是他们的"基于容器的基础设施")然后你可以使用sudo。

参考文献:

2018年11月更新

基于容器的基础架构似乎已被弃用。来自docs

  

目前正在弃用基于容器的基础架构。请   通过sudo:required使用完全虚拟化的infrastrstructure   代替。

答案 2 :(得分:0)

如“ Combining The Linux Infrastructures”中所述

  

展望未来,我们将逐步过渡基于容器的环境,以支持完全基于虚拟机的构建环境。

     

使用基于容器的基础架构的用户将是唯一受影响的人,并且此过渡将缓慢进行,具体取决于您是否在sudo: false中指定了.travis.yml

在Git 2.20(Q4 2018)中对此进行了说明,

  

Travis CI将很快弃用ce59dffsudo: false启用的基于容器的基础结构(Git 2.8.0,2016年1月)。

请参见commit 0f0c511SZEDER Gábor (szeder)(2018年11月1日)。
(由Junio C Hamano -- gitster --commit 57f06d5中合并,2018年11月13日)

travis-ci:在“ ci / install-dependencies.sh”中安装软件包

  

自从我们开始使用Travis CI以来,我们就通过APT插件指定了要安装在“ .travis.yml”中的软件包列表。

     

在Travis CI基于容器的基础架构上运行构建时,我们别无选择,因为该环境不支持'sudo',因此我们没有权限自行安装软件包。

     

在上一个补丁中切换到基于VM的基础架构后,我们确实获得了一个有效的'sudo',因此我们也可以通过运行'sudo apt-get -y install ...'来安装软件包。

     

让我们利用它并在“ ci/install-dependencies.sh”中安装必要的软件包,以便所有依赖项(即软件包和“非软件包”(P4和Git-LFS))都在同一文件中处理。

     

仅在“ gcc-8”构建作业中安装linux-gcc;到目前为止,它也已不必要地安装在了“ linux-clang”构建作业中。
  有条件地打印P4和Git-LFS的版本,即仅在安装它们时打印;有了这一更改,即使静态分析和文档构建作业也开始使用“ ci/install-dependencies.sh”   安装软件包,这两个构建作业都不依赖于   因此安装这些。

     

此更改可能会为即将发布的 Azure Pipelines integration 补丁程序系列的初始版本带来好处,这些命令会运行几个“ apt-get”命令以在运行“ ci/install-dependencies.sh”,但是使用此补丁程序,仅运行“ ci/install-dependencies.sh”就足够了。