Ubuntu18升级cmake和python

news2024/9/27 20:14:27

Ubuntu18升级cmake和python

  • 1、升级cmake至3.22.1
  • 2、升级python至3.8
    • 2.1 安装依赖包
    • 2.2 添加deadsnakes PPA源
    • 2.3 安装python3.8
    • 2.4 将python各版本添加到update-alternatives
    • 2.5 配置python3默认指向python3.8
    • 2.6 测试python3版本
    • 2.7 配置python默认指向python3
    • 2.8 测试python版本

1、升级cmake至3.22.1

某些软件包编译时需要高版本的Cmake,因此需要升级Cmake。 不能使用 sudo apt-get remove cmake卸载低版本cmake后再重装高版本,这样做会导致之前编译和安装的很多库一起被卸载!!!

正确步骤是:

1.1 去https://cmake.org/files下载所需版本的源码。也可以使用wget下载,例如:

cd /opt
wget https://cmake.org/files/v3.22/cmake-3.22.1.tar.gz

1.2 解压

tar -xzvf cmake-3.22.1.tar.gz

1.3 进入解压目录,配置成功之后显示:CMake has bootstrapped. Now run make.

chmod 777 ./configure
./configure

1.4 配置完成后,编译:

make

1.5 编译完成后,安装:

sudo make install

1.6 最后使用新安装的cmake替换旧版本,其中/usr/local/bin/cmake为新安装的cmake目录。

sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force

1.7 最后测试cmake版本:

cmake --version

1.8 原理

安装之前:
在这里插入图片描述
安装之后:
在这里插入图片描述

可以看到/usr/bin目录下的cmake成为了一个软链接,指向了/etc/alternatives/cmake,而后者由指向了/usr/local/bin/cmake,也就是我们安装的版本。其实就是通过软链接的方式将原始的程序“替换”了。

2、升级python至3.8

低版本的Ubuntu官方apt库中还未收录python3.10,这里使用deadsnakes PPA库安装。

2.1 安装依赖包

sudo apt update
sudo apt install software-properties-common

2.2 添加deadsnakes PPA源

sudo add-apt-repository ppa:deadsnakes/ppa

2.3 安装python3.8

sudo apt install python3.8

python3.8 --version

2.4 将python各版本添加到update-alternatives

$ which python3.8
/usr/bin/python3.8

$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1

$ which python3.6
/usr/bin/python3.6

$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2

2.5 配置python3默认指向python3.8

$ sudo update-alternatives --config python3


There are 2 choices for the alternative python3 (providing /usr/bin/python3).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.6   2         auto mode
  1            /usr/bin/python3.6   2         manual mode
  2            /usr/bin/python3.8   1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2

2.6 测试python3版本

python3 --version

2.7 配置python默认指向python3

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 2

$ sudo update-alternatives --config python


There are 2 choices for the alternative python (providing /usr/bin/python3).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python2   2         auto mode
  1            /usr/bin/python2   2         manual mode
  2            /usr/bin/python3   1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2

2.8 测试python版本

python --version

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2170917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《面向对象是怎样工作的》笔记

6、1、在面向对象的世界中&#xff0c;我们需要事先为所有的行动准备好方法并通过消息传递来调用方法&#xff0c;这样事物才会开始运作。 2、实际上&#xff0c;类、继承和多态应该被明确定义为能提高软件的可维护性和可重用行的结构。类将变量和子程序汇总在一起&#xff0c…

叉车高位显示器无线摄影,安装更加便捷!

叉车叉货&#xff0c;基本功能&#xff0c;但货叉升降高度确不一定&#xff0c;普通的3米左右&#xff0c;高的十几米&#xff0c;特别是仓储车&#xff0c;仓库叉货空间小&#xff0c;环境昏暗&#xff0c;视线受阻严重&#xff0c;司机叉货升的那么高怎么准确无误的插到货呢&…

尊享免费博导实验指导、结果解读、一站式实验服务与论文润色,助力科研人员成就卓越

&#x1f31f; 教授团队领衔&#xff0c;全方位服务&#xff01; &#x1f680; 从实验设计到论文发表&#xff0c;一站式解决方案&#xff01; &#x1f4c8; 选择我们&#xff0c;加速您的科研进程&#xff0c;让成果不再等待&#xff01; &#x1f4dd; 专业分析 定制服…

C高级(Day21)

一、学习内容 shell指令 学习回顾 mkdir 创建目录 cd 切换目录 cd \ cd . \ cd .. touch 、 vim 创建文件 rm 删除文件 rm -r 删除文件/删除目录 rmdir 只能删除空目录 cp 复制文件 mv 移动、重命名、剪切 cat 显示文件内容 ls 查看目录下的所有文件 ls -a 、ls -l pw…

kali的tplmap使用报错解决

问题 当我们直接使用kali下的tplmap时报错了。 Tplmap 0.5 Automatic Server-Side Template Injection Detection and Exploitation Tool Testing if GET parameter name is injectable Exiting: module collections has no attribute Mapping 这是因为tplmap要求的版本…

USB 3.1 标准 A 型到 USB 3.1 标准 A 型或 B 型的电缆组件

电线分配 下表定义了电线编号和电线的信号分配&#xff1a; Unshielded twist pair&#xff1a;非屏蔽双绞线Shielded differential pair&#xff1a;屏蔽差分对Braid&#xff1a;编织层Cable external braid to be 360 terminated on to plug metal shell&#xff1a;电缆外部…

文笔差只因没找对工具,这5个AI帮你变身写作高手!

在详细评估了超过二十种AI写作辅助应用后&#xff0c;我挑选了四款特别出色的工具来向您介绍。这些工具不仅能显著提高您的写作速度&#xff0c;而且在特定用途下能够创造出优秀的内容&#xff0c;从而避免了一些常见的AI写作缺陷。 通常情况下&#xff0c;对AI生成内容感到不…

8--苍穹外卖-SpringBoot项目中套餐管理 详解(二)

目录 删除套餐 需求分析和设计 代码开发 根据id查询套餐 mapper层 Service层 ServiceImpl层 Mapper层 批量删除套餐 mapper层 Service层 ServiceImpl层 Mapper层 SetmealMapper.xml 修改套餐 需求分析和设计 代码开发 起售停售套餐 需求分析和设计 代码开发…

【智享AI直播官网】—智享AI直播源码部署—OEM贴牌!

【智享AI直播官网】—智享AI直播源码部署—OEM贴牌&#xff01; 在当今数字化浪潮的推动下&#xff0c;直播行业正以前所未有的速度蓬勃发展&#xff0c;而AI&#xff08;人工智能&#xff09;技术的融入更是为这一领域注入了新的活力与无限可能。【智享AI直播官网】作为行业内…

gMLP:Pay Attention to MLPs--模型代码讲解

gMLP模型代码讲解 IntroductiongMLP网络结构Spatial Gating Unit (SGU) codegMLPBlockSpatial Gating Unit 基于MLP-Mixer 的改进… Introduction 总的来说&#xff0c;gMLP 在视觉和NLP领域的惊人有效性表明&#xff0c;自我注意并不是扩大机器学习模型的必要因素&#xff0c…

基于STM32的DHT11功能实现(操作时序)

1.引脚定义 Pin名称注释1VDD供电 3-5.5V2GND接地&#xff0c;电源负极3DATA串行数据&#xff0c;单总线4NC空脚&#xff0c;请悬空 2.数据格式 DHT11 采用单总线协议与单片机通信&#xff0c;单片机发送一次复位信号后&#xff0c;DHT11 从低功耗模式转换到高速模式&#xff…

新品:新一代全双工音频对讲模块SA618F22-C1

SA618F22-C1是我司一款升级版的无线数字和音频二合一全双工传输模块&#xff0c;支持8路并发高音质通话。用户不仅可以通过串口实现数据的无线传输&#xff0c;还可以通过I2S数字音频或模拟音频接口来传输语音信号。该模块内置高速微控制器、回声消除电路、ESD静电防护、高性能…

全国自闭症学校全寄宿制:为特殊儿童提供专业教育护理

在全国范围内&#xff0c;随着对自闭症儿童教育需求的日益增长&#xff0c;全寄宿制自闭症学校逐渐成为了一种重要的教育模式。这些学校以其专业的教育团队、全面的生活护理以及个性化的教学方案&#xff0c;为自闭症儿童提供了一个安全、稳定、充满爱的成长环境。在广州&#…

走进灯塔工厂,腾讯云携手业界专家共筑AI智造未来

现在&#xff0c;我国工业正处于从数字化向智能化转型的关键阶段&#xff0c;而人工智能、云计算和大数据等前沿技术正成为推动这进程的核心力量。以大模型为例&#xff0c;大模型通过高效处理和分析海量数据&#xff0c;帮助企业挖掘出有价值的规律和趋势&#xff0c;有效拓展…

使用双向链表和哈希表实现LRU缓存

在日常开发中&#xff0c;缓存 是一个非常常见且重要的技术手段&#xff0c;能够显著提升系统性能。为了保证缓存的有效性&#xff0c;需要实现一种机制&#xff0c;在缓存空间不足时&#xff0c;能够自动淘汰最久未被使用的数据。这种机制就是**LRU&#xff08;Least Recently…

CSS文本格式化

通过 CSS 中的文本属性您可以像操作 Word 文档那样定义网页中文本的字符间距、对齐方式、缩进等等&#xff0c;CSS 中常用的文本属性如下所示&#xff1a; text-align&#xff1a;设置文本的水平对齐方式&#xff1b;text-decoration&#xff1a;设置文本的装饰&#xff1b;te…

面试题-部分

目录 1. 从输入url到渲染页面&#xff0c;中间经历了什么&#xff1f; 2. vue中的v-if和v-show有什么区别 3. 什么是Css中的回流&#xff08;重排&#xff09;与重绘 4. 介绍一下let、const、var的区别 5. 箭头函数和普通函数有什么区别 6. Css中常用的水平垂直居中解决方…

传输大咖49 | 科学研究院跨网文件交换高效、安全解决方案

在科学研究领域&#xff0c;数据的价值堪比黄金。科学研究所的日常运作依赖于大量的数据交换&#xff0c;高效的文件交换系统离不开内部合作和与外部合作伙伴的交流。然而&#xff0c;随着数据量的激增和网络环境的复杂性&#xff0c;传统的文件交换方法很难满足需求。本文将讨…

RK3568 android11 适配鼎桥MT5710-CN 5G模块

一,概述 鼎桥MT571X设备和Android系统主要通过USB接口进行数据通信,Android系统上的Linux内核需要根据鼎桥模块设备上报的USB设备接口加载USB驱动,USB驱动正确加载后,鼎桥模块才能正常工作。 Android系统中支持鼎桥模块设备相关的Linux内核驱动架构,如下图所示: 在Lin…

js删除emoji表情问题

emoji标签占位两个 &#xff0c;直接删除后一位会出现乱码符&#xff1b; 判断是否是emoji function isEmoji(char) {let code char.charCodeAt(0);return code>55296&&code<57343 } // 使用方法&#xff0c;传入单字符 console.log(isEmoji(1)); // false con…