1

datastax php-driver に依存するプロジェクトがあります: https://github.com/datastax/php-driver

私はこのドライブを PHP 5.6 と travis でうまく使用しています。PHPドライブの所有者がそうすることができたので、コンテナビルドに切り替えたいと思いました(ビルドを高速化することもおまけです)。

次のエラーが発生しました。

checking whether the C compiler works... no
configure: error: in `/home/travis/build/company-project/git-repo-project/php-driver/ext':
configure: error: C compiler cannot create executables
configure: error: C compiler cannot create executables
See `config.log' for more details
The command "./install.sh" failed and exited with 77 during .

.travis.yml ファイルは次のようになります。

language: php
sudo: false
addons:
  apt:
    packages:
      - libssl-dev
      - g++
      - make
      - cmake
      - clang

cache:
  ccache: true
  directories:
    - ${HOME}/dependencies

php:
  - 5.6

env:
  global:
    # Configure the .phpt tests to be Travis friendly
    - REPORT_EXIT_STATUS=1
    - TEST_PHP_ARGS="-q -s output.txt -g XFAIL,FAIL,BORK,WARN,LEAK,SKIP -x --show-diff"
    - PATH=$HOME/.local/bin:$PATH
    # Indicate the cached dependencies directory
    - CACHED_DEPENDENCIES_DIRECTORY=${HOME}/dependencies
    # Add libuv source build for container based TravisCI
    - LIBUV_VERSION=1.8.0
    - LIBUV_ROOT_DIR=${CACHED_DEPENDENCIES_DIRECTORY}/libuv/${LIBUV_VERSION}
    - APP_ENV=travis

before_install:
  # Configure, build, install (or used cached libuv)
  - if [ ! -d "${LIBUV_ROOT_DIR}" ]; then
      pushd /tmp;
      wget -q http://dist.libuv.org/dist/v${LIBUV_VERSION}/libuv-v${LIBUV_VERSION}.tar.gz;
      tar xzf libuv-v${LIBUV_VERSION}.tar.gz;
      pushd /tmp/libuv-v${LIBUV_VERSION};
      sh autogen.sh;
      ./configure --prefix=${LIBUV_ROOT_DIR};
      make -j$(nproc) install;
      popd;
      popd;
    else echo "Using Cached libuv v${LIBUV_VERSION}. Dependency does not need to be re-compiled";
    fi
  - git clone https://github.com/datastax/php-driver.git
  - cd php-driver
  - git submodule update --init
  - cd ext
  - ./install.sh
  - cd "$TRAVIS_BUILD_DIR"
  - echo "extension=cassandra.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
  # Install CCM
  - pip install --user ccm

install:
  - composer update -n

services:
  - mysql
  - cassandra

script:
  - vendor/bin/codecept run

最初はパッケージとして libssl-dev だけが必要でしたが、C コンパイラが不足していたため、datastax ビルド ガイドを確認し、いくつかの追加パッケージを追加することにしました: http://datastax.github.io/cpp-driver/トピックス/建物/

エラーは変わりません。datastax のドライバーが travis ビルドに合格する理由は、make が c 言語でコンパイルされているためであることはわかっていますが、以前はコンテナーではなく sudo にいたときに、全体を正常に実行できました。どんな助けでも大歓迎です。

4

0 に答える 0