fix: improve system dependency installation in manylinux containers

- Add yum cache cleaning and updating
- Make package installations more resilient with fallbacks
- Use pkgconfig instead of pkg-config (CentOS 7 naming)
- Handle optional packages that might not be available
- Add error handling for package installation failures
This commit is contained in:
Andy Lee
2025-07-25 00:30:29 -07:00
parent c4a0a68581
commit 179f30bc36
2 changed files with 36 additions and 9 deletions

View File

@@ -51,9 +51,10 @@ jobs:
CIBW_SKIP: "*-win32 *-manylinux_i686 pp*"
CIBW_BEFORE_ALL_LINUX: |
yum install -y epel-release
yum install -y boost-devel protobuf-compiler zeromq-devel \
pkg-config openblas-devel
yum clean all && yum makecache
yum install -y epel-release || true
yum makecache || true
yum install -y boost-devel protobuf-compiler zeromq-devel pkgconfig openblas-devel || echo "Some packages failed, continuing..."
CIBW_BEFORE_ALL_MACOS: |
brew install llvm libomp boost protobuf zeromq
@@ -76,9 +77,11 @@ jobs:
CIBW_SKIP: "*-win32 *-manylinux_i686 pp*"
CIBW_BEFORE_ALL_LINUX: |
yum install -y epel-release
yum install -y protobuf-compiler openblas-devel \
libaio-devel protobuf-devel
yum clean all && yum makecache
yum install -y epel-release || true
yum makecache || true
yum install -y protobuf-compiler openblas-devel protobuf-devel || echo "Some packages failed, continuing..."
yum install -y libaio-devel || echo "libaio-devel not available, continuing..."
CIBW_BEFORE_ALL_MACOS: |
brew install llvm libomp protobuf

View File

@@ -124,9 +124,33 @@ jobs:
if: runner.os == 'Linux' && matrix.container != ''
run: |
# manylinux2014 uses yum instead of apt
yum install -y epel-release
yum install -y boost-devel protobuf-compiler zeromq-devel \
pkg-config openblas-devel libaio-devel protobuf-devel
# Update yum cache first
yum clean all
yum makecache
# Install EPEL repository
yum install -y epel-release || true
# Update cache again after EPEL
yum makecache || true
# Install development packages
# Note: Some packages might have different names in CentOS 7
yum install -y \
boost-devel \
protobuf-compiler \
zeromq-devel \
pkgconfig \
openblas-devel \
protobuf-devel || {
echo "Some packages failed to install, trying alternatives..."
# Try alternative package names
yum install -y libzmq3-devel || true
yum install -y libzmq-devel || true
}
# Install optional packages that might not be available
yum install -y libaio-devel || echo "libaio-devel not available, continuing..."
# Build tools are pre-installed in manylinux
# MKL is more complex in container, skip for now and use OpenBLAS