arm更换yum源 解决yum -y install gcc-c++不能运行的问题

本文介绍如何将CentOS系统的默认yum源更改为阿里云镜像源,并完成相关配置及验证安装过程。首先备份原始yum源文件,然后修改CentOS-Base.repo等文件中的源地址为阿里云地址,导入新的GPG密钥并生成缓存,最后验证安装gcc-c++成功。

一、进入yum.repo.d

[root@node-01 ~]# cd /etc/yum.repos.d/
 
[root@node-01 yum.repos.d]# ls
Centos-altarch-7.repo  CentOS-Base.repo  CentOS-Huawei.repo  epel.repo

二、备份原yum源

[root@node-01 yum.repos.d]# mkdir yum-back
 
[root@node-01 yum.repos.d]# mv CentOS-* yum-back/
 
[root@node-01 yum.repos.d]# ls
yum-back

三、替换yum源为阿里源

[root@localhost yum.repos.d]# cat Centos-altarch-7.repo 
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos-altarch/$releasever/os/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.aliyun.com/centos-altarch/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.aliyun.com/centos-altarch/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1

#additional packages that extend functionality of existing packages
[centosplus]<
<think> 嗯,用户提出了关于GCC是什么的问题,并附带了四段参考引用。从用户的历史记录看,他之前尝试在Windows命令行中使用sudo安装gcc-7,说明他可能是Windows环境下的开发者,需要了解编译器相关知识来解决实际问题。 用户这次的提问非常明确,就是要了解GCC的基本概念。结合他之前的操作错误(在Windows用Linux命令),我需要特别注意解释的普适性,避免出现Linux专属术语造成混淆。不过有趣的是,他特意引用了glibc相关内容,可能暗示对底层机制也有兴趣。 仔细分析四段引用内容:[1][3]详细说明了GCC的编译过程和glibc关系,[2][4]则侧重于GCC的跨平台特性。用户应该是想获得一个全面但不过于技术化的定义。考虑到他之前操作失败的经历,解释时需要强调“为什么在Windows不能直接用apt安装GCC”这个痛点。 我决定从五个维度展开:定义定位(解决“是什么”)、核心功能(解决“做什么”)、跨平台特性(呼应他之前的系统环境困惑)、与glibc关系(回应引用[1])、版本管理(结合他安装gcc-7的需求)。最后特意加入Windows环境方案,直接解决他最初的操作问题。 在术语处理上需要平衡专业性:对“编译器集合”这样的概念用IDE类比,但对“中间代码”这种关键机制保留专业表述。数学公式用LaTeX规范呈现,比如优化效率的复杂度公式$O(n^2)$。特别注意标注所有引用来,尤其是glibc自举过程这种专业描述。 用户可能延伸的疑问点包括:具体如何用GCC编译程序(实操)、不同版本兼容性(他需要gcc-7)、Windows替代方案(MinGW)。这三个方向正好作为后续问题推荐,形成知识闭环。 </think> ### GCC全面解析 GCC(**GNU Compiler Collection**)是GNU项目开发的核心编译器套件,最初名为*GNU C Compiler*,现已扩展为支持多种语言的**跨平台编译器系统**。以下是其核心特性: #### 一、基本架构与功能 1. **多语言支持** ```mermaid graph LR A[GCC编译器前端] --> B[C/C++] A --> C[Fortran] A --> D[Ada] A --> E[Go] A --> F[Objective-C] ``` 通过不同前端实现语言解析,共享优化器和后端代码生成器[^2]。 2. **编译流程** - **预处理**:宏展开、头文件包含 `$ gcc -E source.c -o source.i` - **编译**:生成汇编代码 `$ gcc -S source.i -o source.s` - **汇编**:生成目标文件 `$ gcc -c source.s -o source.o` - **链接**:生成可执行文件 `$ gcc source.o -o executable` #### 二、关键技术特性 1. **代码优化** - `-O1`:基础优化(跳转/合并) - `-O2`:函数内联/循环展开 - `-O3`:向量化优化 - 数学优化示例: $$ \sum_{i=1}^{n} i = \frac{n(n+1)}{2} $$ 编译器可识别此类模式并优化为闭式解[^3]。 2. **跨平台能力** | 平台 | 支持架构 | 文件格式 | |------------|------------------|---------------| | Linux | x86_64, ARM | ELF | | Windows | x86, ARM64 | PE/COFF | | macOS | Apple Silicon | Mach-O | #### 三、GCC与glibc的关系 ```mermaid graph TD G[GCC编译器] -->|生成| B[二进制程序] L[glibc库] -->|提供| F[系统函数] B -->|运行时依赖| L ``` - **glibc**:提供`printf()`、`malloc()`等标准库实现 - **GCC**:编译时链接glibc,生成可执行文件 - 自举过程:老版本GCC编译新GCC → 新GCC编译新glibc → 构建完整系统[^1] #### 四、版本管理示例(Ubuntu) ```bash # 安装多版本GCC sudo apt install gcc-7 gcc-11 # 切换默认版本 sudo update-alternatives --config gcc # 选择版本号对应的序号 # 验证版本 gcc --version # 输出:gcc (Ubuntu 11.4.0) ... ``` #### 五、Windows解决方案 1. **WSL2方案**: ```bash sudo apt update && sudo apt install build-essential ``` 2. **MinGW-w64**:原生Windows GCC移植版 3. **Cygwin**:POSIX兼容层 + GCC包 > **关键事实**:GCC编译的Linux内核占全球Linux设备的89%,Android NDK也采用GCC工具链[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值