ubuntu16.04安装python3.9之后部分系统软件打不开的问题(软链接;/usr/bin 与 /usr/local/bin 的区别;update-alternatives原理)

ubuntu16.04安装python3.9之后部分系统软件打不开的问题(软链接;/usr/bin 与 /usr/local/bin 的区别;update-alternatives原理)

问题描述

如果你遇到了以下问题:
1.状态栏出现红色圆圈警告并显示“检查更新的时候发生了错误”;
2.部分系统软件无法打开
请继续阅读
在这里插入图片描述

错误原因

按照教程安装python3.9之后更改了默认的python版本导致系统软件出错,红圈警告是系统的软件更新器出了问题,这个问题不容忽视。

相关原理

软链接原理

软链接类似于windows的快捷方式,指令格式为

#sudo ln -s /目录A/文件c /目录B/快捷方式d。例如:
 sudo ln -s /usr/local/bin/python3.9 /usr/bin/python3

    
    

效果是 在目录B下创建一个快捷方式d,指向目录A下的文件c,访问d相当于访问c

/usr/bin 与 /usr/local/bin 的区别

/usr/bin 系统预装的一些可执行程序,随系统升级会改变

/usr/local/bin 用户自己安装的可执行程序,不受系统升级影响,用户编译安装软件时,一般放到/usr/local目录下

如果两个目录含有相同的可执行程序,通过查看PATH,比较优先级,一般/usr/local/bin的优先级大于/usr/bin。也就是说,如果这两个文件夹里有同名的程序,则优先使用/usr/local/bin里的程序

软件版本管理命令update-alternatives原理

命令格式

update-alternatives --install link name path priority

    
    

例如:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100

    
    

–install:向update-alternatives注册服务名
link:注册最终地址,成功后将会把命令在这个固定的目的地址做真实命令的软链,以后管理就是管理这个软链。
name:服务名,个人理解为省略写法,最终会在/etc/alternatives文件夹下生成一个名为name的快捷方式(软链接)
path:被管理的命令绝对路径。也就是之前软链接的最终指向。
priority:优先级,数字越大优先级越高

link-name-path的指向关系如图
在这里插入图片描述

在这里插入图片描述
使用时,调用的是link,最后实际执行命令的是path。

如果用户安装了除python2.7和python3.5之外其他版本的python,如python3.9,则会在/usr/bin/目录下生成python3.9的快捷方式(一般教程里都会有这一步),在文件夹中即可找到

sudo ln -s /usr/local/bin/python3.9 /usr/bin/python3.9

    
    

在这里插入图片描述

解决办法

首先,系统自带的python2.7和python3.5绝对不可以删,否则后患无穷。然后确定3.9的安装位置

which python3.9
#结果为/usr/local/bin/python3.9

    
    

然后建立python3.9在/usr/bin中的快捷方式(/usr/local/bin/python3.9为上一步的结果)

sudo ln -s /usr/local/bin/python3.9 /usr/bin/python3.9

    
    

此时在/usr/bin中会有python2.7,python3.5,python3.9的快捷方式,然后执行:

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 20
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 10

    
    

这样的结果是python3.9比python3.5的优先级高,再执行:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 150
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 100

    
    

这样的结果是python2比python3的优先级高,此时系统中的指向关系如图:
Alt这样,系统默认的python版本就改为了python2.7,由于python3.5比python3.9优先级高,所以默认的python3版本为python3.5。通过以下命令查看:

python -V
python3 -V
#结果:Python 2.7.12/Python 3.5.2

    
    

如果想随时更改默认python版本,可以通过以下命令修改:

sudo update-alternatives --config python

    
    

在这里插入图片描述
此时再点击红色圆圈,随便点击一个可点选项,就会发现软件更新器已经恢复了工作。

还有一种解决办法,就是在需要执行的python文件上添加解释器版本声明,链接.

参考

参考1-/usr/bin 和/usr/local/bin 区别.

参考2-linux软件版本管理命令update-alternatives使用详解.

参考3-ubuntu系统升级Python3.5—>3.9.

参考4-ubuntu下切换默认的python版本.

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Ubuntu 16.04上安装Python 3.9,您可以按照以下步骤操作: 1. 打终端并更新软件包列表: sudo apt-get update 2. 安装依赖项: sudo apt-get install build-essential checkinstall sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev 3. 下载Python 3.9的源代码: wget https://www.python.org/ftp/python/3.9./Python-3.9..tgz 4. 解压缩下载的文件: tar -xvf Python-3.9..tgz 5. 进入解压缩后的目录: cd Python-3.9. 6. 配置安装选项: ./configure --enable-optimizations 7. 编译并安装Python 3.9: sudo make altinstall 8. 检查Python 3.9是否安装成功: python3.9 --version 如果成功安装,将显示Python 3.9的版本号。 希望这可以帮助您在Ubuntu 16.04上安装Python 3.9。 ### 回答2: Ubuntu16.04作为一款Linux操作系统,已经比较老旧,但是针对python3.9的安装,还是可以通过一些方法来完成的。以下是安装python3.9的具体步骤: 1. 更新apt-get库 在终端输入以下命令: sudo apt-get update 2. 安装依赖包 在终端输入以下命令: sudo apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev 3. 下载并解压python3.9 在终端输入以下命令: wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz tar -xf Python-3.9.0.tgz 4. 编译和安装python3.9 在终端输入以下命令: cd Python-3.9.0 ./configure --enable-optimizations make -j8 sudo make altinstall 5. 检查python3.9版本是否安装完成 在终端输入以下命令: python3.9 --version 以上为Ubuntu16.04安装python3.9的详细步骤,但需要注意的是,在安装过程中可能会遇到各种问题,例如出现依赖错误等。在遇到问题时,可以通过查询相关资料来解决,或者尝试升级到更高的Ubuntu版本再进行安装。 ### 回答3: Ubuntu 16.04的官方仓库中默认安装的是Python 3.5版本,如果需要使用Python 3.9的话,则需要手动安装。下面提供两种方式:手动安装和通过ppa安装。 一、手动安装Python 3.9 1. 下载Python3.9的源代码 从Python官网下载源代码:https://www.python.org/downloads/,找到对应版本的源代码进行下载。 2. 安装编译Python3.9 解压下载的源代码,并依次执行如下命令: ``` sudo apt-get update sudo apt-get install build-essential libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev tk-dev libffi-dev wget cd Python-3.9.0 ./configure --enable-optimizations make -j8 sudo make altinstall ``` 上述命令中,-j8表示利用8个CPU核心同时编译。如果你的CPU核心数不足8个,则将-j后的数字改为实际核心数。 3. 检查Python安装是否成功 执行如下命令,如果出现类似输出,则说明Python安装成功: ``` python3.9 --version ``` 二、通过PPA安装Python 3.9 1. 添加PPA源 执行如下命令: ``` sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update ``` 2. 安装Python 3.9 执行如下命令: ``` sudo apt-get install python3.9 ``` 3. 检查Python安装是否成功 执行如下命令,如果出现类似输出,则说明Python安装成功: ``` python3.9 --version ``` 以上两种方法均可以安装Python 3.9,推荐使用通过PPA安装的方式,这种方式更加方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值