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 及其库而不把事情搞砸吗?如何? (例如,如果我使用 synaptic,将 Python 3.4 标记为“删除”将自动删除很多反向依赖项,即我需要的包。所以这是不行的。)
编辑:
为了帮助回答有关我从哪里获得 Python 3.5(Ubuntu 用户通常无法使用的软件包)的问题,我列出了软件包源,来自/etc/apt/sources.list
.我没有列出 ppa,/etc/apt/sources.list.d
因为它们仅专用于一个包,与 Python 3.5 不同:
来自 Canonical,位于http://ubuntu.cica.es/ubuntu/, 除非另有说明: (德布和deb-src)
- 可信主要受限
- 可信更新主要受限
- 可信宇宙
- 可信更新宇宙
- 可信多元宇宙
- 可信更新多元宇宙
- 可信安全主要受限
- 可信安全宇宙
- 可信安全多元宇宙
-http://archive.canonical.com/ubuntu值得信赖的合作伙伴
来自第三方的软件:(德布和deb-src)
--http://extras.ubuntu.com/ubuntu
来自第三方的值得信赖的主要 软件:(德布仅有的)
-http://archive.getdeb.net/ubuntu可信赖的 getdeb 应用程序
-http://ubuntu.cica.es/ubuntu/可信向后移植主宇宙多元宇宙受限
答案1
这样配对的原因是:
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”,与皮马洛克如中所述邮件列表存档:回复:l = range(int(1E9))。这会自动添加“m”后缀(请参阅评论使用 python 3.4 和 pymalloc 开发/boost-python)。
例如,同样的问题被问到python3.4 与 python3.4m #32402(自制),有人在这里指出了更详细的答案:PEP 3149 - ABI 版本标记的 .so 文件。在该 PEP 页面中,基本原理描述了链接的这种使用作为影响共享库所用名称的不同提议更改的背景。
至于删除包:这取决于情况。
- Ubuntu 14.04(如评论中所述)不提供python3.5(它提供了python3.4)。
- 如果您只是从普通的 Ubuntu 14.04 中删除 python3.4,
synaptic
将会(首先提示)删除大约一百个软件包,包括 Firefox。 - 实际上,我
apt-get
先使用,然后用 调整aptitude
,但读到它的synaptic
行为足够接近aptitude
- 并且快速检查表明它确实如此,尽管有几个数量级慢点。 - 所以:如果您使用安装了 python3.5
syntaptic
,这是通过添加存储库(问题中未提及)来完成的,并且synaptic
丢弃 python3.4 的成功取决于什么其他这些附加存储库提供的软件包,以及它是否将它们识别为兼容的或有效的升级。