簡體   English   中英

如何在Travis CI中使用最新的升級版本?

[英]How to use latest boost version in Travis CI?

我嘗試以幾種方式在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之外的默認升級版本?

預編譯Boost

以下是我遵循的步驟:

  1. 啟動板上搜索,直到我發現最近的trusty環境的增強包構建。 這是不平凡的,但有從當前保持PPA mhier稱為libboost-latest

  2. 我發現正確配置.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頁面以使軟件包名稱保持最新。

一個完整的工作示例可以在monstar github項目中找到

從源代碼編譯提升你也可以在travis構建中編譯源代碼,盡管你有超時的風險。 有關此內容的說明,請參閱boost的最佳實踐手冊第 12項

要查看所有包都可用(尤其是添加額外存儲庫時),可以運行“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

我遇到了同樣的問題,限制命令的信息輸出似乎可以解決問題。

充斥日志的三個:

    - tar -xzf boost_1_64_0.tar.gz
    - ./b2 -d0
    - ./b2 install -d0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM