CentOS 6.4 系統預設 Python 2.6.6,升級至 2.7.3 並將 /usr/bin/python 指向新版本後,yum(依賴 Python 2.6)失效。解決方法:修改 /usr/bin/yum shebang 指向 python2.6.6,若仍失效則從安裝光碟/ISO 重裝系統 Python 相關 RPM 套件。
wget https://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
tar -jxvf Python-2.7.3.tar.bz2
cd Python-2.7.3
./configure
make && make install
# 安裝至 /usr/local/bin/python2.7
# 修改預設 python 指向(導致 yum 失效)
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
vi /usr/bin/yum
# 將第一行:
#!/usr/bin/python
# 改為:
#!/usr/bin/python2.6.6
# 存檔後 yum 即可正常運作
若方法一無效(如系統其他 Python 模組損壞),從 CentOS 6.4 安裝光碟/ISO 提取以下 RPM 重裝:
python-2.6.6-36.el6.x86_64.rpm
python-urlgrabber-3.9.1-8.el6.noarch.rpm
python-devel-2.6.6-36.el6.x86_64.rpm
python-libs-2.6.6-36.el6.x86_64.rpm
yum-3.2.29-40.el6.centos.noarch.rpm
# 版本號以光碟/ISO 實際提供為準
mkdir -p /usr/local/src/Python-2.6.6
cp *.rpm /usr/local/src/Python-2.6.6/
cd /usr/local/src/Python-2.6.6/
rpm -Uvh --replacepkgs *.rpm
# 輸出:
# Preparing... ########################################### [100%]
# 1:python-libs ########################################### [ 20%]
# 2:python ########################################### [ 40%]
# 3:python-urlgrabber ########################################### [ 60%]
# 4:yum ########################################### [ 80%]
# 5:python-devel ########################################### [100%]
# 驗證
yum --version
# 3.2.29

/usr/bin/python,保持 2.6.6 給 yum、系統工具使用。/usr/local/python2.7 或使用 virtualenv/pyenv 管理多版本。#!/usr/local/python2.7/bin/python 或啟用虛擬環境。