centos7官方仓库过期替换为阿里云

将 CentOS 的 YUM 源永久替换为阿里云的 YUM 源

  1. 备份原有的 YUM 源
    在修改之前,备份当前系统的默认 YUM 源配置文件,方便问题排查或恢复默认配置。
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
  1. 下载阿里云的 YUM 源配置文件
    根据你的系统版本下载对应的阿里云镜像源。

CentOS 7

执行以下命令:

sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  1. 清理 YUM 缓存并更新
    完成替换后,需要清理缓存并生成新缓存:
sudo yum clean all
sudo yum makecache
  1. 验证配置是否成功
    执行以下命令,检查当前使用的镜像源是否已更换为阿里云:
sudo yum repolist

你应该会看到类似以下输出,显示镜像来自阿里云:

epo id repo name
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com
5. 可选步骤:同步 EPEL 源
阿里云也提供了 EPEL 源镜像,推荐一起替换。

替换 EPEL 源

sudo curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

清理缓存并生成新缓存:

sudo yum clean all
sudo yum makecache

更新到一个更高版本的GCC

#安装CentOS Software Collections仓库
yum install centos-release-scl
#安装之后yum仓库会报错,修改/etc/yum.repos.d/CentOS-SCLo-scl.repo
# CentOS-SCLo-scl.repo
#
# Modified to use Aliyun mirrors

[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/sclo/$basearch/sclo/
# mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
gpgcheck=1
enabled=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-SIG-SCLo

[centos-sclo-sclo-testing]
name=CentOS-7 - SCLo sclo Testing - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/sclo/$basearch/sclo-testing/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-SIG-SCLo

[centos-sclo-sclo-source]
name=CentOS-7 - SCLo sclo Sources - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/sclo/Source/sclo/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-SIG-SCLo

[centos-sclo-sclo-debuginfo]
name=CentOS-7 - SCLo sclo Debuginfo - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/sclo/$basearch/debuginfo/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-SIG-SCLo
#修改/etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
# CentOS-SCLo-scl-rh.repo
#
# Modified to use Aliyun mirrors

[centos-sclo-rh]
name=CentOS-7 - SCLo rh - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/sclo/$basearch/rh/
# mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-rh
gpgcheck=1
enabled=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-SIG-SCLo

[centos-sclo-rh-testing]
name=CentOS-7 - SCLo rh Testing - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/sclo/$basearch/rh-testing/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-SIG-SCLo

[centos-sclo-rh-source]
name=CentOS-7 - SCLo rh Sources - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/sclo/Source/rh/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-SIG-SCLo

[centos-sclo-rh-debuginfo]
name=CentOS-7 - SCLo rh Debuginfo - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/sclo/$basearch/debuginfo-rh/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-SIG-SCLo
#完成上述修改后,执行以下命令来清理YUM缓存并重新生成缓存:
yum clean all
yum makecache
# 安装所需的开发者工具集
yum install devtoolset-9
# 启用开发者工具集环境
scl enable devtoolset-9 bash
安装依赖项
sudo yum install -y gcc make automake libtool pkgconfig python3-pip numactl-devel openssl-devel popt-devel

使用meson作为构建系统,则还需要安装ninja-build工具:

pip3 install meson ninja
sudo yum install -y meson ninja-build

从官方网站下载DPDK 24.11.1 LTS版本,并将其解压缩到一个合适的位置:

wget http://fast.dpdk.org/rel/dpdk-24.11.1.tar.xz
tar xf dpdk-24.11.1.tar.xz
cd dpdk-24.11.1

编译DPDK
进入解压后的目录后,可以使用meson来生成构建文件,并通过ninja来进行编译。这里我们将创建一个名为build的子目录用于存放生成的文件:

meson setup build --prefix=/usr/local -Dexamples=all
ninja -C build
sudo ninja -C build install

升级 Python 版本
在CentOS 7上,默认的Python版本可能是较旧的版本。您可以使用以下步骤来安装更新的Python版本:

# 安装依赖包
yum install -y gcc openssl-devel bzip2-devel libffi-devel

# 下载并编译安装Python 3.9 (或者选择其他版本)
cd /usr/src
wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
tar xzf Python-3.9.0.tgz
cd Python-3.9.0
./configure --enable-optimizations
make altinstall  # 使用altinstall以避免覆盖默认的python二进制文件

创建和激活虚拟环境
创建一个基于新Python版本的虚拟环境,这样不会影响系统的默认Python版本:

/usr/local/bin/python3.9 -m venv dpdk-env
source dpdk-env/bin/activate

在激活的虚拟环境中,安装所需的Python包:

pip install meson ninja pyelftools

确保meson和ninja命令指向的是您刚刚安装的版本,尤其是在使用虚拟环境时:

which meson
which ninja

完成上述步骤后,尝试清理构建目录并重新开始构建过程:

cd /path/to/dpdk-24.11
meson setup builddir
ninja -C builddir

ninja编译报错
[2198/2824] Compiling C object drivers/libtmp_rte_crypto_openssl.a.p/crypto_openssl_rte_openssl_pmd.c.o FAILED: drivers/libtmp_rte_crypto_openssl.a.p/crypto_openssl_rte_openssl_pmd.c.o

解决方案
确认 openssl11.pc 文件位置
确保新版本的OpenSSL有对应的pkg-config文件,并且该文件位于/usr/lib64/pkgconfig/目录下。如果没有,请创建一个:

sudo tee /usr/lib64/pkgconfig/openssl11.pc <<EOF
prefix=/usr
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib64
includedir=\${prefix}/include/openssl11

Name: OpenSSL-1.1
Description: Secure Sockets Layer and cryptography libraries and tools (version 1.1)
Version: 1.1.1k
Requires:
Libs: -L\${libdir} -lssl -lcrypto
Cflags: -I\${includedir}
EOF

确保pkg-config能够找到并优先选择新的openssl11.pc文件。设置PKG_CONFIG_PATH环境变量:

export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:$PKG_CONFIG_PATH

在Meson构建时,使用pkg-config命令来获取编译和链接标志,并将其传递给Meson:

OPENSSL_CFLAGS=$(pkg-config --cflags openssl11)
OPENSSL_LDFLAGS=$(pkg-config --libs openssl11)

meson setup builddir --default-library=shared \
    -Dc_args="$OPENSSL_CFLAGS" \
    -Dc_link_args="$OPENSSL_LDFLAGS"

确认pkg-config返回的是OpenSSL 1.1.x版本的信息:

pkg-config --modversion openssl11

构建目录已经配置过,需要先清理或重新配置:

cd /path/to/dpdk-24.11 #dbdk目录
meson setup --reconfigure builddir

完成上述更改后,运行构建命令:

ninja -C builddir
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值