天天看點

Ubuntu管理軟體的多個版本update-alternatives(維護系統指令連結符)

update-alternatives(維護系統指令連結符)

可用來管理多版本的JDK,python等

管理多版本的Python和pip

一、分别安裝Python2和python3,pip和pip3

[email protected]:~$ sudo apt-get install python
[sudo] sparrow 的密碼:
正在讀取軟體包清單... 完成
正在分析軟體包的依賴關系樹
正在讀取狀态資訊... 完成
python 已經是最新版 (2.7.14-2ubuntu1)。
更新了 0 個軟體包,新安裝了 0 個軟體包,要解除安裝 0 個軟體包,有 198 個軟體包未被更新。
[email protected]:~$ sudo apt-get install python3
正在讀取軟體包清單... 完成
正在分析軟體包的依賴關系樹
正在讀取狀态資訊... 完成
python3 已經是最新版 (3.6.3-0ubuntu2)。
更新了 0 個軟體包,新安裝了 0 個軟體包,要解除安裝 0 個軟體包,有 198 個軟體包未被更新。
[email protected]:~$ sudo apt-get install python-pip
正在讀取軟體包清單... 完成
正在分析軟體包的依賴關系樹
正在讀取狀态資訊... 完成
python-pip 已經是最新版 (9.0.1-2)。
更新了 0 個軟體包,新安裝了 0 個軟體包,要解除安裝 0 個軟體包,有 198 個軟體包未被更新。
[email protected]:~$ sudo apt-get install python3-pip
正在讀取軟體包清單... 完成
正在分析軟體包的依賴關系樹
正在讀取狀态資訊... 完成
python3-pip 已經是最新版 (9.0.1-2)。
更新了 0 個軟體包,新安裝了 0 個軟體包,要解除安裝 0 個軟體包,有 198 個軟體包未被更新。
           

二、管理多版本的Python

  1. 找到python指令的位置
[email protected]:~$ which python
/usr/bin/python
[email protected]:~$ ls /usr/bin/python
/usr/bin/python
[email protected]:~$ ls /usr/bin/python*
/usr/bin/python     /usr/bin/python2.7-config  /usr/bin/python3.6         /usr/bin/python3.6m-config  /usr/bin/python3m-config
/usr/bin/python2    /usr/bin/python2-config    /usr/bin/python3.6-config  /usr/bin/python3-config     /usr/bin/python-config
/usr/bin/python2.7  /usr/bin/python3           /usr/bin/python3.6m        /usr/bin/python3m
[email protected]:~$
           

可以看到,/usr/bin下有Python2和Python3

2. 維護系統指令連結符

[email protected]:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1000
[email protected]:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1500
[email protected]:~$ sudo update-alternatives --list python
/usr/bin/python2
/usr/bin/python3
[email protected]:~$ sudo update-alternatives --config python
有 2 個候選項可用于替換 python (提供 /usr/bin/python)。

  選擇       路徑            優先級  狀态
------------------------------------------------------------
  0            /usr/bin/python3   1500      自動模式
  1            /usr/bin/python2   1000      手動模式
* 2            /usr/bin/python3   1500      手動模式

要維持目前值[*]請按<Enter鍵>,或者鍵入選擇的編号:
[email protected]:~$
           
  • update-alternatives --install <指令位址> <指令名稱(自己随意指定)> <需要連結的指令位址> <優先級,在auto模式下,數字較大的選項有較高的優先級>
  • update-alternatives --list python 檢視已經維護起來的Python的清單
  • update-alternatives --config python 配置Python

二、管理多版本的pip

[email protected]:~$ which pip
/usr/bin/pip
[email protected]:~$ ls /usr/bin/pip*
/usr/bin/pip  /usr/bin/pip2  /usr/bin/pip3
[email protected]:~$ sudo vim /usr/bin/pip2
#!/usr/bin/python2
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
    sys.exit(main())
~
~
~

[email protected]:~$ sudo vim /usr/bin/pip3
[email protected]:~$
           

類似上面的操作,但是要注意修改 /usr/bin/pip2 ,因為檔案預設使用**/usr/bin/python**,要修改為**/usr/bin/python2**,pip3 中也看下是不是也需要修改

注:配置過程中如果出現問題
  1. 删除 /usr/bin/pip
  2. 建立軟連接配接 /usr/bin/pip 指向 /etc/alternatives/pip
  3. 然後按照上面的步驟将多版本的pip管理起來就行了

我的個人部落格,有空來坐坐

繼續閱讀