当前位置: 首页 > ai >正文

CentOS7 安装 rust 1.82.0

CentOS7 安装 rust 1.82.0

我在CentOS7.9中安装rust遇到报错版本低,再升级版本的过程中遇到诸多问题,简单记录。

遇到的问题

提示版本低

centos7 安装 ERROR: Rust 1.75.0 or newer required.Rust version 1.72.1 was found.

原因是 CentOS7 的默认的软件源中的rust是1.72.1版本。下载不到1.75版本。

解决方案1–不管用

在网上找了很多个版本的rust的rpm包,但是由于CentOS7停止维护了,所以rpm包都是CentOS8和CentOS9之后的。下载了之后安装的时候会报错依赖缺失。

下载地址:
https://pkgs.org/download/rust
https://rpmfind.net/linux/rpm2html/search.php?query=rust

root@22_150:~# rpm -ivh rust-1.75.0-1.module_el8.10.0+3770+3cd00e1b.x86_64.rpm 
warning: rust-1.75.0-1.module_el8.10.0+3770+3cd00e1b.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID ced7258b: NOKEY
error: Failed dependencies:libLLVM-17.so()(64bit) is needed by rust-1.75.0-1.module_el8.10.0+3770+3cd00e1b.x86_64libLLVM-17.so(LLVM_17)(64bit) is needed by rust-1.75.0-1.module_el8.10.0+3770+3cd00e1b.x86_64libc.so.6(GLIBC_2.18)(64bit) is needed by rust-1.75.0-1.module_el8.10.0+3770+3cd00e1b.x86_64libc.so.6(GLIBC_2.25)(64bit) is needed by rust-1.75.0-1.module_el8.10.0+3770+3cd00e1b.x86_64libc.so.6(GLIBC_2.27)(64bit) is needed by rust-1.75.0-1.module_el8.10.0+3770+3cd00e1b.x86_64libc.so.6(GLIBC_2.28)(64bit) is needed by rust-1.75.0-1.module_el8.10.0+3770+3cd00e1b.x86_64libstdc++.so.6(CXXABI_1.3.9)(64bit) is needed by rust-1.75.0-1.module_el8.10.0+3770+3cd00e1b.x86_64libstdc++.so.6(GLIBCXX_3.4.21)(64bit) is needed by rust-1.75.0-1.module_el8.10.0+3770+3cd00e1b.x86_64rust-std-static(x86-64) = 1.75.0-1.module_el8.10.0+3770+3cd00e1b is needed by rust-1.75.0-1.module_el8.10.0+3770+3cd00e1b.x86_64

基于这种情况,升级libc和其他的组件会导致系统崩溃,所以不能采用这种方式。

解决方案2–管用

只能采用最原始的源码编译的方式了。这一步虽然复杂,但是可以解决。

首先去github下载一个最新的源码包。我现在这个时间能看到的最新版是1.88,但是我下载1.82的版本。

下载地址:
https://forge.rust-lang.org/infra/other-installation-methods.html
https://github.com/rust-lang/rust/archive/refs/tags/1.82.0.tar.gz

解压之后会看到目录中包含一个 configure,运行

root@22_150:~/rust-1.82.0# ls
build       CODE_OF_CONDUCT.md   config.toml      COPYRIGHT   LICENSE-APACHE  Makefile     REUSE.toml      src             x
Cargo.lock  compiler             configure        INSTALL.md  LICENSE-MIT     README.md    rust-bors.toml  tests           x.ps1
Cargo.toml  config.example.toml  CONTRIBUTING.md  library     LICENSES        RELEASES.md  rustfmt.toml    triagebot.toml  x.py
root@22_150:~/rust-1.82.0# 
root@22_150:~/rust-1.82.0# 
root@22_150:~/rust-1.82.0# 
root@22_150:~/rust-1.82.0# 
root@22_150:~/rust-1.82.0# ./configure 
configure: processing command line
configure: 
configure: build.configure-args := []
configure: profile              := dist
configure: 
configure: writing `config.toml` in current directory
configure: 
configure: run `python /root/rust-1.82.0/x.py --help`

下面提示执行 python /root/rust-1.82.0/x.py --help

执行这个命令超级慢,挂了梯子就快了。

执行的过程,大概就是下载三个文件,文件位置:/root/rust-1.82.0/build/cache/2024-09-05/
我们可以手动操作者三个文件,手动安装。

https://static.rust-lang.org/dist/2024-09-05/rust-std-1.81.0-x86_64-unknown-linux-gnu.tar.xz
https://static.rust-lang.org/dist/2024-09-05/rust-std-1.81.0-x86_64-unknown-linux-gnu.tar.xz
https://static.rust-lang.org/dist/2024-09-05/rustc-1.81.0-x86_64-unknown-linux-gnu.tar.xz

每一个文件都解压,然后执行里面的 install.sh,即可。

root@22_150:~/rust-1.82.0/build/cache# cd rustc-1.81.0-x86_64-unknown-linux-gnu
root@22_150:~/rust-1.82.0/build/cache/rustc-1.81.0-x86_64-unknown-linux-gnu# ls
components  COPYRIGHT  git-commit-hash  git-commit-info  install.sh  LICENSE-APACHE  LICENSE-MIT  README.md  rustc  rust-installer-version  version
root@22_150:~/rust-1.82.0/build/cache/rustc-1.81.0-x86_64-unknown-linux-gnu# ./install.sh 
install: uninstalling component 'rustc'
install: creating uninstall script at /usr/local/lib/rustlib/uninstall.sh
install: installing component 'rustc'rustc installed.root@22_150:~/rust-1.82.0/build/cache/rustc-1.81.0-x86_64-unknown-linux-gnu# 

提示安装完。三个文件一样的操作即可。

系统重启之后就正常了。不重启也行,新开一个shell正常加载环境变量就可以了。

http://www.xdnf.cn/news/16130.html

相关文章:

  • B站 XMCVE Pwn入门课程学习笔记(5)
  • Text2SQL智能问答系统开发(一)
  • vue3:十八、内容管理-搜索栏的完善
  • Sklearn 机器学习 数值标准化
  • HTTP/1.0、HTTP/1.1 和 HTTP/2.0 主要区别
  • LeetCode 2322:从树中删除边的最小分数
  • M3295NL专为千兆以太网设计,支持100/1000Mbps全双工通信M3295支持4对5类UTP电缆
  • 【C++】标准模板库(STL)—— 学习算法的利器
  • 力扣20:有效的括号
  • 【Java工程师面试全攻略】Day12:系统安全与高可用设计
  • Spring Cloud OpenFeign 常用注解_笔记
  • SpringCloud【Sentinel】
  • mac llama_index agent算术式子计算示例
  • AUTOSAR进阶图解==>AUTOSAR_SWS_BSWGeneral
  • [202103][Docker 实战][第2版][耿苏宁][译]
  • Vue3实现视频播放弹窗组件,支持全屏播放,音量控制,进度条自定义样式,适配浏览器小窗播放,视频大小自适配,缓冲loading,代码复制即用
  • 机器学习入门与经典knn算法表文解析
  • USRP X440
  • C++抽象类完全指南
  • 加密算法-----BCrypt
  • 负载均衡-LoadBalance
  • 【数组的定义与使用】
  • 排序查找算法,Map集合,集合的嵌套,Collections工具类
  • 【独立工具】小红书图片采集软件
  • pytest官方Tutorial所有示例详解(二)
  • Python循环结构
  • 【数据结构】二叉树进阶算法题
  • AI服务器给一体成型电感带来多大的市场空间
  • C++开发---奥比中光(Orbbec)的ob库
  • 【CMake】CMake 常用语法总结