安裝和解除安裝 Python 3.x(版本 3.5 / 3.4.3)
synaptic
我剛剛在 Ubuntu 14.04 中安裝的現有功能 Python 3.4 之上安裝了 Python 3.5(及其 2908 個庫文件) 。查看結果,安裝後:$ cd /usr/bin $ ls -lsAFi python* 393463 0 lrwxrwxrwx 1 root root 18 Jul 2 2014 python -> /usr/bin/python2.7* 394201 0 lrwxrwxrwx 1 root root 9 May 9 2014 python2 -> python2.7* 393228 3272 -rwxr-xr-x 1 root root 3345416 Jun 22 20:51 python2.7* 394075 0 lrwxrwxrwx 1 root root 33 Jun 22 20:51 python2.7-config -> x86_64-linux-gnu-python2.7-config* 398355 0 lrwxrwxrwx 1 root root 16 Dec 21 2013 python2-config -> python2.7-config* 394203 0 lrwxrwxrwx 1 root root 9 Nov 27 11:04 python3 -> python3.5* 394046 3628 -rwxr-xr-x 2 root root 3709944 Oct 14 23:42 python3.4* 394046 3628 -rwxr-xr-x 2 root root 3709944 Oct 14 23:42 python3.4m* 395645 3672 -rwxr-xr-x 2 root root 3754696 Sep 17 19:03 python3.5* 396673 0 lrwxrwxrwx 1 root root 33 Sep 17 19:03 python3.5-config -> x86_64-linux-gnu-python3.5-config* 396677 0 lrwxrwxrwx 1 root root 11 Sep 17 19:03 python3.5-dbg -> python3.5dm* 396678 0 lrwxrwxrwx 1 root root 37 Sep 17 19:03 python3.5-dbg-config -> x86_64-linux-gnu-python3.5-dbg-config* 396676 13164 -rwxr-xr-x 1 root root 13455475 Sep 17 18:58 python3.5dm* 396679 0 lrwxrwxrwx 1 root root 35 Sep 17 19:03 python3.5dm-config -> x86_64-linux-gnu-python3.5dm-config* 395645 3672 -rwxr-xr-x 2 root root 3754696 Sep 17 19:03 python3.5m* 396674 0 lrwxrwxrwx 1 root root 34 Sep 17 19:03 python3.5m-config -> x86_64-linux-gnu-python3.5m-config* 394206 0 lrwxrwxrwx 1 root root 10 Nov 27 11:12 python3m -> python3.5m* 398354 0 lrwxrwxrwx 1 root root 16 Dec 21 2013 python-config -> python2.7-config*
–> … 一些符號連結 + 2 個硬連結(索引節點:394046 和 395645)。
我的問題:
- 文件 pythonX.Y 和 pythonX.Ym 共存的原因是什麼?
python3.4
並python3.4m
指向具有兩個名稱的相同儲存內容(硬連結)。python3.5
和相同python3.5m
。那麼python3.4m
和有什麼用python3.5m
呢?- 我可以擺脫 Python 3.4 及其庫而不會搞砸嗎?如何?(例如,如果我使用突觸,將 Python 3.4 標記為“刪除”將自動刪除許多反向依賴項,即我需要的包。所以不行。)
編輯:
為了幫助回答我從哪裡獲得 Python 3.5(Ubuntu 使用者通常無法使用的包)的問題,我列出了包源,來自
/etc/apt/sources.list
. 我沒有在其中列出 ppa,/etc/apt/sources.list.d
因為它們僅用於一個包,與 Python 3.5 不同:來自http://ubuntu.cica.es/ubuntu/的Canonical,除非另有說明:( deb和deb-src)
可信賴的 main受限
可信更新主受限
可信宇宙
可信更新宇宙
可信多元宇宙
可信更新多元宇宙
可信安全主 受限
可信安全宇宙
trusty-security multiverse
第三方軟體:(deb和deb-src)
的第三方軟體-派對:(僅限deb)
http://archive.getdeb.net/ubuntu trusty-getdeb 應用程序
像這樣的對的原因:
394046 3628 -rwxr-xr-x 2 root root 3709944 Oct 14 23:42 python3.4* 394046 3628 -rwxr-xr-x 2 root root 3709944 Oct 14 23:42 python3.4m*
是這樣的:“3.4m”恰好是“3.4”,與郵件列表存檔中所述的Pymalloc連結:Re: l = range(int(1E9))。這會自動添加“m”後綴(請參閱帶有 python 3.4 和 pymalloc 的註釋 devel/boost-python)。
例如,在python3.4 vs python3.4m #32402 (Homebrew) 中提出了同樣的問題,有人在這裡指出了更詳細的答案:PEP 3149 - ABI version tagged .so files。在那個 PEP 頁面中,基本原理描述了這種使用連結作為影響共享庫名稱的不同提議更改的背景。
至於刪除一個包:這取決於。
- Ubuntu 14.04(如註釋中所述)不提供 python3.5(它提供 python3.4)。
- 如果您只是從普通的 Ubuntu 14.04 中刪除 python3.4,
synaptic
將(首先提示)刪除大約 100 個軟體包,包括 Firefox。- 實際上,我
apt-get
首先使用,然後使用 調整aptitude
,但 read 的synaptic
行為足夠接近aptitude
- 並且快速檢查表明確實如此,儘管慢了幾個數量級。- 因此:如果您使用 安裝 python3.5
syntaptic
,這是通過添加儲存庫(問題中未提及)來完成的,並且synaptic
丟棄 python3.4 的成功將取決於這些附加儲存庫提供的其他軟體包,以及它是否辨識那些作為兼容或有效升級。