YUM配置

镜像源

CentOS-Base.repo

清华源。记得把版本号替换为需要的。使用 cat /etc/centos-releasecat /etc/os-release 命令获取。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[base]
name=CentOS-$releasever - Base
failovermethod=priority
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.6.1810/os/x86_64/
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.6.1810/os/x86_64/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.6.1810/updates/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.6.1810/extras/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.6.1810/centosplus/x86_64/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

使用代理

1. 获取代理信息

确保您有以下信息:

  • 代理服务器地址(如 proxy.example.com 或 IP 地址)
  • 代理端口(如 8080
  • (可选)代理用户名密码(如果代理需要身份验证)

2. 配置代理设置

2.1 配置全局代理

编辑 /etc/yum.conf 文件:

1
sudo vi /etc/yum.conf

[main] 部分添加以下内容:

1
2
3
proxy=http://代理服务器地址:端口
proxy_username=用户名 # 如果需要身份验证
proxy_password=密码 # 如果需要身份验证

例如:

1
2
3
proxy=http://proxy.example.com:8080
proxy_username=myuser # 如果无需身份验证,省略此行
proxy_password=mypassword # 如果无需身份验证,省略此行

保存并退出。

2.2 配置单个终端的代理(可选)

如果不想修改全局配置,可以在使用 yum 时临时指定代理。

运行以下命令:

1
2
http_proxy=http://用户名:密码@代理服务器地址:端口
export http_proxy

例如:

1
2
http_proxy=http://myuser:mypassword@proxy.example.com:8080
export http_proxy

然后运行 yum 命令:

1
yum update

2.3 配置环境变量(可选)

如果您希望代理对整个系统的所有 HTTP/HTTPS 请求生效,可以设置环境变量。编辑 ~/.bash_profile/etc/profile

1
2
export http_proxy=http://用户名:密码@代理服务器地址:端口
export https_proxy=http://用户名:密码@代理服务器地址:端口

保存文件后,使设置生效:

1
source ~/.bash_profile

3. 测试代理配置

执行以下命令,确认 yum 能通过代理正常工作:

1
2
yum repolist
yum update

安装软件

Python3

方法 1:从 CentOS 默认仓库安装(Python 3.6)

CentOS 7 默认仓库提供 Python 3.6,可以直接安装。

1. 更新系统

1
sudo yum update -y

2. 安装 Python 3

1
sudo yum install -y python3

方法 2:通过 EPEL 或 IUS 仓库安装更新版本的 Python 3

1. 安装 EPEL 仓库

1
sudo yum install -y epel-release

2. 安装 IUS 仓库(可选)

1
sudo yum install -y https://repo.ius.io/ius-release-el7.rpm

3. 安装 Python 3.x(例如 Python 3.9)

1
sudo yum install -y python39

4. 配置默认 python3(可选)

python3 链接到安装的 Python 3.9:

1
2
sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
sudo alternatives --config python3

方法 3:从源代码编译安装最新版 Python

如果需要更高版本的 Python,可以手动编译。

1. 安装编译依赖

1
2
3
sudo yum groupinstall -y "Development Tools"
sudo yum install -y gcc gcc-c++ make zlib-devel bzip2 bzip2-devel readline-devel \
sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel wget

2. 下载 Python 源码

访问 Python 官方下载页面 查找最新版本的链接。例如:

1
wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgz

3. 解压源码并进入目录

1
2
tar -xvf Python-3.10.9.tgz
cd Python-3.10.9

4. 配置并编译

1
2
3
./configure --enable-optimizations
make
sudo make altinstall

注意: 使用 make altinstall 而不是 make install,以避免覆盖系统默认的 Python。

5. 验证安装

1
python3.10 --version

输出示例:

1
Python 3.10.9

方法 4:通过 pyenv 管理多个版本的 Python

pyenv 是一种灵活管理多版本 Python 的工具。

1. 安装依赖

1
2
sudo yum install -y git gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \
openssl-devel xz xz-devel libffi-devel

2. 下载并安装 pyenv

1
curl https://pyenv.run | bash

3. 添加到环境变量

将以下内容添加到 ~/.bashrc~/.bash_profile

1
2
3
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"

加载配置:

1
source ~/.bashrc

4. 安装指定版本 Python

例如,安装 Python 3.9.9:

1
2
pyenv install 3.9.9
pyenv global 3.9.9

Docker

在 CentOS 7.6 上安装 Docker 可以通过以下步骤完成。以下方法基于 Docker 官方推荐的安装方式:


1. 卸载旧版本 Docker(如果已安装)

旧版本的 Docker 可能以 dockerdocker-engine 命名,先卸载它们:

1
sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

2. 安装必要的依赖

1
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3. 添加 Docker 官方仓库

1
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4. 安装 Docker

安装最新版本的 Docker:

1
sudo yum install -y docker-ce docker-ce-cli containerd.io

如果需要特定版本的 Docker,可以使用以下命令列出可用版本并安装:

1
2
yum list docker-ce --showduplicates | sort -r
sudo yum install -y docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

<VERSION_STRING> 替换为所需的版本号,例如 3:20.10.25-3.el7.


5. 启动并启用 Docker 服务

启动 Docker 并设置开机自启:

1
2
sudo systemctl start docker
sudo systemctl enable docker

6. 验证 Docker 安装

运行以下命令,检查 Docker 是否正确安装和运行:

1
2
docker --version
docker run hello-world
  • docker --version 会输出 Docker 的版本号。
  • docker run hello-world 会拉取并运行一个测试容器,验证 Docker 是否正常运行。

7. 配置非 root 用户使用 Docker(可选)

如果希望非 root 用户也能使用 Docker,执行以下步骤:

  1. 将用户添加到 docker 组:

    1
    sudo usermod -aG docker $USER
  2. 重新登录或执行以下命令以应用用户组更改:

    1
    newgrp docker
  3. 测试非 root 用户是否可以运行 Docker:

    1
    docker run hello-world

8. 配置 Docker(可选)

如果需要修改 Docker 默认配置文件,可以编辑 /etc/docker/daemon.json

1
sudo vi /etc/docker/daemon.json

常见的配置示例:

1
2
3
4
5
6
7
8
9
{
"registry-mirrors": ["https://your-mirror-url"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}

保存文件后,重启 Docker:

1
sudo systemctl restart docker

9. 更新和维护

更新 Docker 时,可以运行:

1
sudo yum update -y docker-ce

Docker安装疑难解答

缺少组件

如果出现这样的错误:

1
2
3
4
5
Error: Package: docker-ce-rootless-extras-26.1.4-1.el7.x86_64 (docker-ce-stable)
Requires: slirp4netns >= 0.4
Error: Package: docker-ce-rootless-extras-26.1.4-1.el7.x86_64 (docker-ce-stable)
Requires: fuse-overlayfs >= 0.7
You could try using --skip-broken to work around the problem

需要在/etc/yum.repos.d/docker-ce.repo文件中追加以下内容:

1
2
3
4
5
6
[centos-extras]
name=Centos extras - $basearch
baseurl=http://vault.centos.org/centos/7/extras/x86_64
enabled=1
gpgcheck=1
gpgkey=http://centos.org/keys/RPM-GPG-KEY-CentOS-7

即可安装上述两个缺少的组件.

参考资源 => stackoverflow

Docker显卡支持

3. 安装 NVIDIA Container Toolkit

NVIDIA 提供了 nvidia-container-toolkit,用于在 Docker 容器中启用 GPU 支持。

3.1 设置 NVIDIA 存储库

添加 NVIDIA 的软件源:

1
2
3
distribution=$(. /etc/os-release; echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo

3.2 安装 NVIDIA Container Toolkit

执行以下命令:

1
sudo yum install -y nvidia-container-toolkit

3.3 配置 Docker 使用 NVIDIA Runtime

重新加载容器守护进程的配置:

1
2
sudo nvidia-ctk runtime configure
sudo systemctl restart docker

4. 测试 GPU 支持

拉取一个带有 CUDA 的测试镜像并验证:

1
docker run --rm --gpus all nvidia/cuda:11.4.2-base-ubuntu20.04 nvidia-smi

输出示例:

1
2
3
4
5
6
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.42.01 Driver Version: 470.42.01 CUDA Version: 11.4 |
+-----------------------------------------------------------------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
+-----------------------------------------------------------------------------+

5. 运行 GPU 容器

使用 --gpus 标志运行需要 GPU 支持的容器。例如:

1
docker run --rm --gpus all tensorflow/tensorflow:latest-gpu python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

6. 常见问题和解决办法

6.1 Docker 未识别 GPU

  • 检查 NVIDIA 驱动是否正确安装:
    1
    nvidia-smi
  • 确保 Docker 正确配置了 NVIDIA runtime:
    1
    2
    sudo nvidia-ctk runtime configure
    sudo systemctl restart docker

6.2 容器中未检测到 GPU

确保启动容器时使用了 --gpus all 参数。