如何在 Travis 的 Ubuntu 12.04(精确)上安装 libc++?

How to install libc++ on Ubuntu 12.04 (precise) in Travis?

Travis Ubuntu-precise apt whitelist 中列出了 libc++-dev 包,我尝试通过

安装它
# .travis.yml
addons:
  apt:
    sources:
    - ubuntu-toolchain-r-test
    - kubuntu-backports
    - llvm-toolchain-precise
    packages:
    - g++-4.8
    - cmake
    - libc++-dev

在 Travis 作业的 APT 步骤中发生的事情是

$ sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install g++-4.8 cmake libc++-dev
Reading package lists...
Building dependency tree...
Reading state information...
libc-dev-bin is already the newest version.
libc-dev-bin set to manually installed.
libc6-dev is already the newest version.
libc6-dev set to manually installed.
The following package was automatically installed and is no longer required:
  libxmlrpc-core-c3
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  cmake-data cpp-4.8 emacsen-common gcc-4.8 gcc-4.8-base gcc-6-base libasan0
  libatomic1 libc6-armel-cross libc6-armhf-cross libcloog-isl4 libgcc-4.8-dev
  libgcc1 libgcc1-armel-cross libgcc1-armhf-cross libgomp1 libisl10 libitm1
  libpurelibc1 libquadmath0 libstdc++-4.8-dev libstdc++6 libtsan0
Suggested packages:
  codeblocks eclipse gcc-4.8-locales dietlibc-doc g++-4.8-multilib gcc-4.8-doc
  libstdc++6-4.8-dbg gcc-4.8-multilib libmudflap0-4.8-dev libgcc1-dbg
  libgomp1-dbg libitm1-dbg libatomic1-dbg libasan0-dbg libtsan0-dbg
  libbacktrace1-dbg libquadmath0-dbg libmudflap0-dbg binutils-gold
  libstdc++-4.8-doc
The following NEW packages will be installed:
  cpp-4.8 dietlibc-dev g++-4.8 gcc-4.8 gcc-4.8-base gcc-6-base libasan0
  libatomic1 libc6-armel-cross libc6-armhf-cross libc6-dev-armel-cross
  libc6-dev-armhf-cross libcloog-isl4 libgcc-4.8-dev libgcc1-armel-cross
  libgcc1-armhf-cross libisl10 libitm1 libklibc-dev libowfat-dietlibc-dev
  libpurelibc-dev libpurelibc1 libstdc++-4.8-dev libtsan0
  linux-libc-dev-armel-cross linux-libc-dev-armhf-cross
The following packages will be upgraded:
  cmake cmake-data emacsen-common libgcc1 libgomp1 libquadmath0 libstdc++6
  linux-libc-dev
8 upgraded, 26 newly installed, 0 to remove and 242 not upgraded.
Need to get 43.6 MB of archives.
After this operation, 77.1 MB of additional disk space will be used.

所以你可以看到在install命令行之后没有再提到libc++-dev了。发生的情况是添加了以下包:

所以我想有一些正则表达式魔法在起作用(libc++-dev 是否​​匹配 libc6-dev?)。

那么,如何在 Travis 上安装 libc++-dev?

根本原因是 sources 下列出的存储库不提供 libc++-dev,因此您无法安装包(至少不能从这些存储库安装)。

当包不存在时,apt-get 和 apt(不是 aptitude)回退到将名称解释为与包含正则表达式的所有包匹配的正则表达式。如果您不喜欢这样,您可以将包名称表述为正则表达式:^libc\+\+-dev$