Den*_*tov 3 environment-variables update-alternatives 18.04
我遇到了一个问题,当我搜索正确版本的python 时,我每次都发现python 3.7:
python3 --version
Python 3.7.0
Run Code Online (Sandbox Code Playgroud)
然后我检查了update-alternatives配置:
sudo update-alternatives --config python3
There are 3 choices for the alternative python3 (providing /usr/bin/python3).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/local/bin/python3.7 2 auto mode
1 /<HOME_DIR>/Software/anaconda3/bin/python3 1 manual mode
* 2 /usr/bin/python3.6 1 manual mode
3 /usr/local/bin/python3.7 2 manual mode
Run Code Online (Sandbox Code Playgroud)
然后我检查了python3的位置:
which python3
/usr/local/bin/python3
Run Code Online (Sandbox Code Playgroud)
然后我检查了PATH:
echo $PATH
/usr/lib/x86_64-linux-gnu/dbus-1.0/include:/usr/local/lib/boost/include:/<HOME_DIR>/bin:/<HOME_DIR>/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/<HOME_DIR>/.dotnet/tools
Run Code Online (Sandbox Code Playgroud)
原来在 /usr/bin 中搜索之前,python3已经在 /usr/local/bin 中找到了
为什么update-alternatives没有在 /usr/local/bin 中创建链接以维护正确搜索应用程序?
我不想从 /usr/local/bin 中删除python3,但在这种情况下,update-alternatives变得无用
如何解决 update-alternatives 也在 /usr/local/bin 中创建链接的问题?
回答你的第一个问题
为什么 update-alternatives 没有在 /usr/local/bin 中创建链接以维护正确搜索应用程序?
这仅仅是因为alternativesforpython3被配置为在/usr/bin 中创建符号链接。从上面的输出:
sudo update-alternatives --config python3
There are 3 choices for the alternative python3 (providing /usr/bin/python3).
...
Run Code Online (Sandbox Code Playgroud)
对于任何 Linux 发行版来说,在/usr /bin之前搜索/usr/local/bin查找可执行文件是很正常的,因为这使您可以自由地将任何二进制文件和库放入/usr/local 中,而不会干扰 dpkg 包。
对于你的具体问题,从sudo update-alternatives --config python3我猜/usr/local/bin/python3 的输出是到/usr/local/bin/python3.7的符号链接
root@host:~# ls -l /usr/local/bin/python3
lrwxrwxrwx 1 root root 25 Sep 22 15:36 /usr/local/bin/python3 -> /usr/local/bin/python3.7
Run Code Online (Sandbox Code Playgroud)
如果是这样的话,只是删除符号链接的/ usr / local / bin目录/ python3,你应该罚款,打电话时因为python3只有在/ usr / bin中/ python3被发现,这应该指向的/ etc /方案/ python3这turn 应该指向所选的二进制文件。
如果/usr/local/bin/python3不是符号链接,请将其重命名并进行update-alternatives适当配置。
虽然这可能暂时拯救您,但下一次更新可能会使您的配置再次变得无用。符号链接/usr/bin/python3随包一起提供python3-minimal,通过使用update-alternatives符号链接管理此链接,从python3-minimal包的角度来看会被破坏。这个包的下一次更新可以解决这个问题,但是从update-alternatives.
要解决这两个问题,最好配置update-alternatives为使用/usr/local/bin/python3作为提供所选版本的符号链接。
为此,以下步骤应该可以解决问题,包括修复/usr/bin/python3链接。
sudo update-alternatives --install /usr/local/bin/python3 python3 /usr/bin/python3.6 2
apt-get install --reinstall python3-minimal
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8521 次 |
| 最近记录: |