突然,我的CI脚本坏了。我的提交更改与 Travis 服务器设置无关,而问题是缺少包,这会阻止服务器启动:
2.44s$ sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install libqtwebkit-dev gstreamer1.0-plugins-base gstreamer1.0-tools gstreamer1.0-x
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package gstreamer1.0-plugins-base
E: Couldn't find any package by regex 'gstreamer1.0-plugins-base'
E: Unable to locate package gstreamer1.0-tools
E: Couldn't find any package by regex 'gstreamer1.0-tools'
E: Unable to locate package gstreamer1.0-x
E: Couldn't find any package by regex 'gstreamer1.0-x'
这些软件包成功安装了另一个提交
我的 .travis.yml:
language: ruby
services:
- postgresql
- rack
script: xvfb-run bundle exec rspec
#env: QMAKE=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake
addons:
apt:
sources:
- ubuntu-sdk-team
packages:
- libqtwebkit-dev
- gstreamer1.0-plugins-base
- gstreamer1.0-tools
- gstreamer1.0-x
# - libqt5webkit5-dev
# - qtdeclarative5-dev
before_script:
- bundle exec rackup private_pub.ru -s thin -E production &
- cp config/database.yml.travis config/database.yml
- cp config/private_pub.yml.sample config/private_pub.yml
- psql -c 'create database travis_ci_test;' -U postgres
我怎样才能替换它们?
看起来上游发生了一些变化。如果我们查看后续版本,很明显gstreamer*
软件包是从 ppa:ubuntu-sdk-team/ppa
.显然,这些包裹再也找不到了。
此外,从外观上看,gstreamer1*
似乎是对Precision的一种黑客攻击。您最好使用Trusty映像,默认情况下它们可用。目前,容器基础架构上没有可用的 Trusty,但这种情况会改变。请参阅此文档,了解不同的可用虚拟化环境。
如果启用了 sudo 的完整 VM 符合您的用途,则可以更改配置以包括:
sudo: required
dist: trusty
before-install:
- sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install gstreamer1.0-plugins-base gstreamer1.0-tools gstreamer1.0-x
(注意:已从此列表中删除libqtwebkit-dev
包。您需要检查自己如何添加它。
如果 travis 无法访问它通常使用的 ubuntu gce 镜像,这可能是暂时的失败。您是否尝试过通过 travis 页面重新启动?