我尝试以多种方式在Travis CI环境中安装boost 1.64
。但他们都没有成功。
在我的第一次天真尝试中,我刚刚在travis脚本中添加了以下行:
install:
- sudo apt-get install libboost1.64-all-dev
结果是错误消息:找不到包libboost1.64-all-dev
在第二次尝试中,我使用必要的boost
版本指定了存储库。
before_install:
- sudo add-apt-repository -y ppa:nschloe/boost-nightly
- sudo apt-get update -qq
install:
- sudo apt-get install libboost-all-dev
# - sudo apt-get install libboost1.64-all-dev (also tried)
在第一种情况下安装了默认boost
版本(1.54)。
在第二种情况下结果是相同的错误消息:找不到包libboost1.64-all-dev
在第三次尝试中,我手动输入了安装boost
的说明:
install:
- sudo wget -O boost_1_64_0.tar.gz http://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.gz/download
- sudo tar xzvf boost_1_64_0.tar.gz
- cd boost_1_64_0/
- sudo ./bootstrap.sh --prefix=/usr/local
- sudo ./b2
- sudo ./b2 install
结果我的剧本花了30多分钟然后终止了。 是否有任何简单(或仅仅是正常工作)的方式来安装除Travis CI之外的默认升级版本?
答案 0 :(得分:6)
预编译提升
以下是我采取的步骤:
在launchpad上搜索,直到我找到trusty
环境的最新版本。这不是一件轻而易举的事,但目前维持的mhier
ppa称为libboost-latest
我发现正确配置.travis.yml
以使用ppa非常重要,所以我提供了一个工作片段,我希望能帮助其他人解决同样的问题。
以下适用于clang和gcc:
language: cpp
dist: trusty
sudo: false
os: linux
matrix:
include:
- env: COMPILER=g++-6 BUILD=Debug STANDARD=14
compiler: gcc
addons:
apt:
update: true
sources:
- sourceline: 'ppa:mhier/libboost-latest'
- ubuntu-toolchain-r-test
packages:
- g++-6
- boost1.67
- env: COMPILER=g++-6 BUILD=Release STANDARD=14
compiler: gcc
addons:
apt:
update: true
sources:
- sourceline: 'ppa:mhier/libboost-latest'
- ubuntu-toolchain-r-test
packages:
- g++-6
- boost1.67
# the rest of your yaml file...
希望mhier能保持这个ppa运行一段时间,否则你将不得不通过第1步,或者提供你自己的ppa。随着提升版本编号的进展,包裹编号将发生变化,因此请检查ppa page以使包裹名称保持最新。
可以在monstar github project找到完整的工作示例。
从源编译提升 您也可以在travis构建中编译源代码,尽管您有超时的风险。有关此内容的说明,请参阅boost best practice handbook
的第12项答案 1 :(得分:4)
要查看所有包都可用(特别是添加额外存储库时),可以运行“apt-cache search”命令,例如:
sudo apt-cache search libboost
然后你可以看到可用的版本。
手动构建时,默认情况下会构建“所有”(所有静态/共享调试/释放库),这会占用大量时间,因此可能会超时。
您可以尝试仅构建您实际需要的库,例如:
./bootstrap.sh --with-libraries=program_options,filesystem,system
./b2 link=shared threading=multi variant=release
(详见此处:http://www.boost.org/build/doc/html/bbv2/overview/invocation.html)
答案 2 :(得分:1)
我遇到了同样的问题,限制命令的信息输出似乎可以解决问题。
充斥日志的三个:
- tar -xzf boost_1_64_0.tar.gz
- ./b2 -d0
- ./b2 install -d0