將新的 python 版本添加到 PATH 是否安全?
將新版本的python添加到PATH有什麼危險嗎?即一些重要的系統程序會中斷嗎?
假設這沒有刪除舊的python2,而是有效地將命令“python”更改為指向python3(或python2的非預設版本)。即使更改不影響root,它是否不安全?
TLDR ~
你可能是安全的,但…
有危險。這就是為什麼
python
許多發行版的命令行預設仍然是 python 2 的原因。這真的會傷害你嗎?
如果不知道哪個 Linux 發行版擁有哪些軟體包,這是不可能知道的。我懷疑是否有人對世界上可用的每個軟體包進行了全面監督,以知道如果您嘗試這樣做會破壞什麼。
然而,隨著時間的推移,危險越來越小。Python 3 正在成熟,那些仍在使用 python 2 的人更加意識到他們可以防範的危險。在這個時候,危險可能低到足以讓你逃脫懲罰。
有什麼危險?
有許多在 linux 上執行的程序是用 python 編寫的。您可能沒有意識到您正在使用 python,因為您將它們作為執行檔呼叫。他們使用shebang來呼叫 python,而無需您顯式呼叫它。
問題是很多程序都是為 python 2 編寫的,他們的 shebang設置為
#!/usr/bin/python
. 同樣,呼叫 puthon 腳本的 shell 腳本也很容易呼叫python script.py
. 如果您更改/usr/bin/python
為 Python 3,那麼許多程序都會中斷。然而隨著時間的推移,大多數舊程序已被修改為請求特定版本(/usr/bin/python2
甚至/usr/bin/python2.7
)。Python 3 程序由於雕像而被迫指定一個版本。更改前檢查
除非您有非常好的理由,否則我不會在生產伺服器上更改此設置。但是,如果您要更換自己的筆記型電腦,風險應該會低得多。
我會嘗試執行它以確保:
grep /usr/bin/python /usr/bin/* /usr/sbin/* 2> /dev/null
…尋找任何呼叫
/usr/bin/python
而不指定版本。如果那裡什麼都沒有,那就繼續嘗試。請注意意外發生的事情。