2016-12-14 62 views
1

我想轉換成PNG圖像以WebP的特拉維斯的替代品,但特拉維斯CI使用很老版本的Ubuntu 12.04,因此捆綁ImageMagick的是不是真的最新:如何在Travis CI容器中安裝帶有webp支持的較新imagemagick?

$ convert -version 
Version: ImageMagick 6.6.9-7 2014-03-06 Q16 http://www.imagemagick.org 
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC 
Features: OpenMP 

我知道,我可以使用sudo: required使用在虛擬機中安裝Travis並在那裏安裝和構建東西。相反,我想用sudo: false的集裝箱式構建環境,因爲它速度更快。

如果我嘗試編譯libwepbimagemagick特拉維斯給我權限被拒絕的錯誤,因爲我沒有權限/usr/local/文件夾:

$ make install 
... 
/bin/mkdir -p '/usr/local/include/webp' 
/bin/mkdir: cannot create directory `/usr/local/include/webp': Permission denied 
... 
The command "make install" failed and exited with 2 during . 
+0

你試過指定'DIST:在你的配置trusty'?由於有一段時間有可用的Trusty容器。 – joepd

回答

1

特拉維斯允許用戶更改$PATH並安裝二進制文件到$HOME目錄。

下面是ruby的完整示例。它只編譯二進制文件並緩存它們。如果版本號不匹配,它只會再次安裝它們。

language: ruby 
sudo: false 
dist: precise 

cache: 
    directories: 
    - "$HOME/opt" 

addons: 
    apt: 
    packages: 
     - libjpeg-dev 
     - libpng-dev 
     - libgif-dev 
env: 
    global: 
    - IMAGEMAGICK_VERSION: '7.0.3-10' 
    - LIBWEBP_VERSION: '0.5.1' 

# Install newer libwebp and imagemagick 
before_install: 
    # Update PATH so that travis can find newer imagemagick 
    - export PATH=$HOME/opt/bin:$PATH 

    # Checks if Imagemagick is already sufficient version 
    # If not installs it from the sources 
    - convert -version | grep $IMAGEMAGICK_VERSION || { 
    export CORES=$(nproc) && 
    echo "Using $CORES cores for compiling..." && 
    cd /tmp && 
    curl -O https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP_VERSION.tar.gz && 
    tar xvzf libwebp-$LIBWEBP_VERSION.tar.gz && 
    cd libwebp-* && 
    ./configure --prefix=$HOME/opt && 
    make -j$CORES && 
    make install -j$CORES && 
    cd /tmp && 
    curl -O https://www.imagemagick.org/download/ImageMagick-$IMAGEMAGICK_VERSION.tar.gz && 
    tar xvzf ImageMagick-$IMAGEMAGICK_VERSION.tar.gz && 
    cd ImageMagick-* && 
    ./configure --prefix=$HOME/opt && 
    make -j$CORES && 
    make install -j$CORES && 
    $HOME/opt/bin/magick -version | grep $IMAGEMAGICK_VERSION && 
    cd $TRAVIS_BUILD_DIR; } 

    # Update library paths for programs 
    - export LD_FLAGS=-L$HOME/opt/lib 
    - export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$HOME/opt/lib 
    - export CPATH=$CPATH:$HOME/opt/include 

積分:我看着這個Ruby庫如何安裝libwebp並找出其餘的全是簡單:https://github.com/le0pard/webp-ffi/blob/master/.travis.yml