我已经/usr/bin/python
映射到/usr/bin/python3.7
,但我更喜欢使用python3.6
。因此我手动重新创建了链接,但每次我用 更新系统时,pacman -Syu
它们都会被系统默认值再次覆盖。
处理此问题的最佳做法是什么?我是否应该添加alias python=/usr/bin/python3.6
(这无论如何都会使非 cli 应用程序使用错误的 python)或其他选项,以使我的系统在从任何地方python3.6
运行时默认运行python
?
答案1
如果程序仅需要python
并且不指定其完整路径,则可以创建具有正确符号链接的另一个目录并将其放在 $PATH 的前面。
例如:
$ mkdir ~/bin
$ ln -s /usr/bin/python3.6 ~/bin/python
$ export PATH="$HOME/bin:$PATH"
$ type python
python is /home/xxx/bin/python
$ python --version
Python 3.6.x
如果程序特别需要/usr/bin/python
,没有 root 权限你就无能为力。(而且你不应该,由于 Arch 发布的程序通常需要与 Arch 发布的相同的 Python – 因此使用较旧的版本才是安全的你自己程式。)
但是,root 可以改变这一点暂时使用挂载命名空间,或者直接将文件移走即可永久更改。要永久更改它(并冒着破坏官方软件包的风险):
- 在 /etc/pacman.conf 的常规 [options] 部分中,添加
NoUpgrade = usr/bin/python
。 - 用于
ln -s
以您想要的任何方式更改实际的 /usr/bin/python 符号链接。Python 升级后,新链接将被提取到 /usr/bin/python.pacnew 并且不会重置您的更改。