核心工具:yum/dnf
(包管理器)、update-alternatives
(全局切換)、scl
(Software Collections,多版本共存)。
yum/dnf
安裝指定版本:通過package-name-version
語法直接安裝特定版本(需倉庫支持)。例如:sudo yum install httpd-2.4.6 # 安裝Apache 2.4.6
sudo dnf install python3.9.16 # 安裝Python 3.9.16(CentOS 8+)
update-alternatives
全局切換:將不同版本的軟件注冊到系統,通過優先級管理默認版本。例如管理Python 3:sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1 # 注冊Python 3.8
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2 # 注冊Python 3.9
sudo update-alternatives --config python3 # 交互式選擇默認版本
scl
工具多版本共存:適用于需要同時運行多個版本的場景(如開發測試)。例如啟用Python 3.8:sudo yum install centos-release-scl # 添加SCL倉庫
sudo yum install rh-python38 # 安裝Python 3.8
scl enable rh-python38 bash # 臨時激活(僅當前shell有效)
激活后,python --version
將顯示3.8版本,退出shell后恢復默認。常用方法:update-alternatives
(系統級)、環境變量/alias(用戶級)。
update-alternatives
全局配置:注冊多個JDK版本,通過優先級切換默認版本。例如:sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_202/bin/java 1
sudo update-alternatives --install /usr/bin/java java /usr/java/jdk-11.0.15/bin/java 2
sudo update-alternatives --config java # 選擇默認JDK
~/.bash_profile
或/etc/profile
,通過alias快速切換。例如:alias java8='export JAVA_HOME=/usr/java/jdk1.8.0_202; export PATH=$JAVA_HOME/bin:$PATH'
alias java11='export JAVA_HOME=/usr/java/jdk-11.0.15; export PATH=$JAVA_HOME/bin:$PATH'
source ~/.bash_profile # 生效配置
java8 # 臨時切換至Java 8
驗證版本:java -version
。推薦工具:pyenv
(靈活)、Anaconda
(科學計算)、手動編譯(基礎)。
pyenv
安裝與管理:# 安裝依賴
sudo yum install -y git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel
# 安裝pyenv
curl https://pyenv.run | bash
# 配置環境變量(~/.bashrc)
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc
# 安裝與切換版本
pyenv install 3.8.10 # 安裝Python 3.8.10
pyenv install 3.9.5 # 安裝Python 3.9.5
pyenv global 3.8.10 # 設置全局默認版本
pyenv local 3.9.5 # 當前目錄使用指定版本(生成.python-version文件)
Anaconda
環境管理:# 下載并安裝Anaconda
wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh
bash Anaconda3-2023.07-2-Linux-x86_64.sh
# 創建與管理環境
conda create -n py38 python=3.8 # 創建Python 3.8環境
conda activate py38 # 激活環境
conda deactivate # 退出環境
# 安裝依賴
sudo yum install -y zlib-devel bzip2-devel openssl-devel
# 下載并編譯
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
tar xzf Python-3.9.5.tgz
cd Python-3.9.5
./configure --enable-optimizations
make altinstall # 避免覆蓋系統Python
# 使用update-alternatives管理
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.9 1
sudo update-alternatives --config python3 # 切換版本
關鍵步驟:安裝多版本、配置不同端口、啟動對應服務。
sudo yum install httpd-2.4 httpd-2.2 # 安裝Apache 2.4和2.2
# Apache 2.4配置(/etc/httpd/conf.d/httpd24.conf)
Listen 8080
ServerName localhost:8080
IncludeOptional conf.modules.d/*.load
IncludeOptional conf.modules.d/*.conf
# Apache 2.2配置(/etc/httpd/conf.d/httpd22.conf)
Listen 8081
ServerName localhost:8081
Include conf/httpd.conf
sudo systemctl start httpd24 # 啟動Apache 2.4
sudo systemctl stop httpd24 # 停止Apache 2.4
sudo systemctl start httpd22 # 啟動Apache 2.2
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp # 開放端口
sudo firewall-cmd --permanent --zone=public --add-port=8081/tcp
sudo firewall-cmd --reload
測試訪問:http://localhost:8080
(Apache 2.4)、http://localhost:8081
(Apache 2.2)。zlib-devel
、openssl-devel
)。altinstall
或別名解決。update-alternatives
為系統級切換,pyenv
/conda
為用戶級或項目級切換,根據需求選擇。