0

0

CentOS 7怎么安装软件_CentOS 7使用yum和源码安装软件教程

星夢妙者

星夢妙者

发布时间:2025-08-28 13:19:01

|

435人浏览过

|

来源于php中文网

原创

centos 7安装软件主要有两种方式:首选yum包管理器,可自动处理依赖,适合大多数场景;其次为源码编译安装,灵活性高,适用于需最新版本、特定编译选项或软件无rpm包的情况。使用yum时,通过install、update、remove等命令管理软件,配合epel等第三方仓库扩展软件源;编译安装则需先配置开发环境,再依次执行解压、configure、make、make install,但依赖需手动解决,更新卸载较麻烦。常见问题包括依赖冲突、仓库缺失、权限不足、selinux或防火墙拦截,以及版本冲突。软件管理应区分yum与源码安装:yum安装的可通过yum update定期更新,yum remove卸载并清理缓存;源码安装则需手动更新和删除安装目录,建议使用--prefix统一路径便于管理。通常90%场景推荐yum,仅在需要最新功能、定制编译、无可用包或学习调试时选择源码编译,以平衡便利性与控制力。

centos 7怎么安装软件_centos 7使用yum和源码安装软件教程

CentOS 7上安装软件,主要有两种核心方法:一是通过系统自带的包管理器

yum
,这是最省心、最推荐的方式;二是从源码编译安装,这种方法虽然更复杂,但能提供最大的灵活性和最新版本。在我看来,日常使用90%以上的情况,
yum
都能满足需求,但遇到特殊场景,比如需要最新功能、特定编译选项,或者软件根本没有rpm包,那就得撸起袖子自己编译了。

解决方案

要说CentOS 7上怎么安装软件,其实核心就两套路。

使用

yum
包管理器

这是最主流、最省事的方式。

yum
(Yellowdog Updater, Modified)是CentOS乃至整个RHEL系发行版的核心,它能自动处理依赖关系,让安装、更新、卸载软件变得非常简单。

  1. 安装软件: 最常用的命令,比如你想安装

    nginx

    sudo yum install nginx

    系统会提示你确认安装,包括所需的依赖包。输入

    y
    回车即可。 如果不知道软件包的准确名称,可以用
    yum search

    yum search httpd

    这会列出所有包含“httpd”关键字的软件包。

  2. 更新软件: 更新单个包:

    sudo yum update nginx

    更新所有可更新的包:

    sudo yum update

    这个命令会把系统里所有安装的、有新版本的软件包都更新一遍。我个人习惯定期跑一下,确保系统安全和功能最新。

  3. 删除软件:

    sudo yum remove nginx

    这会卸载

    nginx
    及其不再被其他软件包依赖的依赖项。

  4. 管理软件仓库(Repositories):

    yum
    的软件包都来自配置好的软件仓库。CentOS默认自带了一些官方仓库。但很多时候,我们需要安装一些官方仓库里没有的软件,或者更新的版本。这时,就需要添加第三方仓库,最常见的就是EPEL(Extra Packages for Enterprise Linux)。 安装EPEL:

    sudo yum install epel-release

    安装完成后,

    yum
    就能访问EPEL仓库里的软件了。

从源码编译安装

yum
无法满足需求时,比如需要某个软件的最新开发版,或者需要开启特定的编译选项,那就得从源码安装了。这过程通常涉及下载源码包、配置、编译和安装。

  1. 准备编译环境: 首先,你得有编译工具链。

    sudo yum groupinstall "Development Tools"

    这会安装

    gcc
    make
    等一系列必要的工具。

  2. 下载源码包: 通常是从项目官网下载

    .tar.gz
    .tar.bz2
    格式的压缩包。

    wget https://example.com/software-1.0.tar.gz
  3. 解压源码包:

    tar -zxvf software-1.0.tar.gz
    cd software-1.0
  4. 配置(Configure): 这一步是检查系统环境,生成

    Makefile
    文件,并允许你指定安装路径、开启/关闭特定功能等。

    ./configure --prefix=/usr/local/software --enable-feature-x

    --prefix
    参数非常重要,我通常会把它安装到
    /usr/local/
    下,这样可以避免和
    yum
    安装的软件冲突。不同的软件会有不同的配置选项,通常在
    README
    INSTALL
    文件里有说明。

  5. 编译(Make):

    易优电脑系统教程下载网站源码1.7.0
    易优电脑系统教程下载网站源码1.7.0

    易优电脑系统教程下载网站源码是基于易优cms开发,适合做系统软件下载类网站使用, 内核为Thinkphp5.0开发,后台简洁,为系统软件下载类开发,这是一套安装就能建站的程序, 不定期更新程序BUG,更新网站功能。 我们提供的不仅是源码模板这么简单,我们还提供程序相关咨询、协助安装等服务。 默认不包含小程序插件,需要另外单独购买插件。 模板安装步骤 1、

    下载
    make

    这一步会根据

    Makefile
    文件编译源代码,生成可执行文件。这可能需要一些时间,取决于软件的复杂度和你的机器性能。

  6. 安装(Make Install):

    sudo make install

    将编译好的文件复制到

    configure
    时指定的安装路径。

从源码安装的优点是灵活,但缺点也明显:依赖关系需要手动解决,更新麻烦,卸载也不如

yum
干净。所以,能用
yum
的时候,我还是会优先选择
yum

CentOS 7上安装软件时常见的“坑”有哪些?

我觉得,在CentOS 7上安装软件,尤其对于新手,最容易踩的几个“坑”是:

  • 依赖地狱(Dependency Hell):虽然
    yum
    大部分时候能搞定,但如果你从源码编译,或者想安装一个非常小众的RPM包,它可能需要一系列特定的库文件和开发头文件,而这些又没有在你的系统上安装,或者版本不对。这时候,错误信息会告诉你缺少
    libfoo.so.x
    或者
    foo-devel
    ,你得一个一个去
    yum install
    ,甚至可能要手动下载安装。这简直是“折磨”。
  • 仓库问题(Repository Issues):有时候
    yum
    就是找不到你要的包,或者找到的版本太旧。这通常是因为你没有添加正确的第三方仓库(比如前面提到的EPEL,或者Remi、Nginx官方仓库等)。又或者,你的网络连接有问题,导致
    yum
    无法访问仓库镜像。
  • 权限问题(Permission Denied):在执行
    make install
    或者
    yum install
    时,如果不是以
    root
    用户或者没有
    sudo
    权限,就会遇到权限不足的错误。这很常见,但有时候新手会忘记
    sudo
  • SELinux和防火墙:软件安装成功了,但是服务就是跑不起来,或者外部访问不了。这往往是SELinux(Security-Enhanced Linux)或防火墙(firewalld)在作祟。SELinux可能会阻止程序访问某些目录或端口,防火墙则会阻止外部连接。我遇到过好几次,明明服务起来了,但就是访问不了,最后才发现是防火墙没开端口。
  • 版本冲突:系统自带了一个旧版本的库,但你要安装的软件需要新版本,或者反过来。强制安装可能会破坏系统稳定性。这是个很棘手的问题,有时需要通过
    rpm
    --force
    参数,但那是非常危险的操作,通常不推荐。

这些问题,很多时候都需要你仔细阅读错误信息,然后去搜索引擎上找解决方案,或者查看软件的官方文档。

如何有效管理CentOS 7上的软件更新和卸载?

管理软件的更新和卸载,其实就是确保系统健康和稳定运行的关键。我的经验是,要分清楚

yum
安装的和源码安装的,然后采取不同的策略。

对于

yum
安装的软件:

  • 定期更新: 我个人习惯每周或每月运行一次

    sudo yum update
    。这能确保所有通过
    yum
    安装的软件包都保持最新状态,修补安全漏洞,并获得功能改进。如果你想更精细地控制,可以只更新特定的软件包,比如
    sudo yum update httpd
    。 另外,
    yum-cron
    这个工具可以配置自动更新,对于一些非关键性、希望保持最新状态的系统,可以考虑启用。但对于生产环境,我更倾向于手动更新,或者在维护窗口期进行,以避免不必要的风险。

  • 安全卸载:

    sudo yum remove package_name
    是卸载软件包的标准做法。
    yum
    会自动处理依赖关系,移除那些不再被其他软件包需要的依赖项。如果想彻底清理,包括配置文件,有时还需要手动删除
    /etc/package_name
    /var/lib/package_name
    等目录。但要小心,别误删了重要数据。

  • 清理缓存:

    yum clean all
    可以清除
    yum
    的缓存,释放一些磁盘空间。虽然不是经常需要,但在磁盘空间紧张或者
    yum
    出现奇怪问题时,可以尝试。

对于源码安装的软件:

  • 更新: 这是最麻烦的部分。源码安装的软件没有

    yum
    这样的包管理器来追踪版本和依赖。要更新,你通常需要重复安装过程:下载新版本源码,解压,
    ./configure
    make
    sudo make install
    。这会覆盖旧版本的文件。 在更新前,最好备份旧的配置文件和数据。有时,新旧版本之间配置文件的格式会有变化,需要手动调整。

  • 卸载: 如果源码包提供了

    make uninstall
    命令,那是最理想的。进入源码目录,运行
    sudo make uninstall
    即可。 但很多软件不提供这个功能。这时候,卸载就变成了一件“体力活”:你得手动删除
    configure
    时指定的安装路径下的所有文件(比如
    /usr/local/software
    )。这要求你在安装时就清楚地知道文件都去了哪里。这也是为什么我强调
    --prefix
    参数的重要性,它能帮你把所有文件集中管理。

总之,管理软件更新和卸载,最重要的是“知道你安装了什么,以及它是怎么安装的”。做好记录,能省去很多不必要的麻烦。

什么时候我应该考虑在CentOS 7上编译安装软件?

在我看来,选择编译安装而不是

yum
,通常是出于一些特定的、非日常的需求,它代表了对系统更深层次的掌控和定制。

  1. 需要最新版本或开发版本时:

    yum
    仓库里的软件版本往往会滞后于项目的最新发布。CentOS 7的仓库更是如此,它倾向于提供稳定但可能较旧的版本。如果你需要体验软件的最新功能,或者修复了某个bug但
    yum
    里还没更新,那么编译安装是唯一的选择。比如,我想用Nginx的某个最新模块,或者PHP的某个新特性,
    yum
    里的版本可能就不够用了。

  2. 需要特定的编译选项或功能时: 很多软件在编译时可以启用或禁用特定的模块或功能。

    yum
    提供的预编译包通常是通用配置,可能不包含你需要的特定功能,或者包含了你不需要的臃肿功能。通过
    ./configure
    参数,你可以精确控制软件的构建,例如为Nginx添加某个第三方模块,或者为Python编译时启用特定的优化。这种定制化是
    yum
    无法提供的。

  3. 软件不在任何可用仓库中时: 有些小众的、新开发的或者内部使用的软件,可能根本没有RPM包,也没有被任何公共仓库收录。这时候,从源码编译安装就成了唯一的出路。

  4. 进行开发或调试时: 如果你是软件开发者,或者需要深入调试某个软件,编译安装可以让你更好地理解其内部工作原理,甚至可以打补丁、修改代码后再编译运行。这提供了最高的透明度和可控性。

  5. 学习和理解Linux系统时: 对于想要深入理解Linux系统如何工作的用户来说,从源码编译是一个绝佳的学习过程。它会让你接触到编译工具链、依赖管理、文件系统结构等诸多概念,加深对系统底层机制的理解。

尽管编译安装提供了极大的灵活性,但我也想提醒一句:如果

yum
能满足你的需求,那么就优先使用
yum
。它能帮你处理依赖、简化更新、方便卸载,大大降低了维护成本。只有当
yum
确实无法满足你的特定需求时,才应该考虑动手编译。这是权衡便利性与控制力的一个选择。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

246

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

522

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

610

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

244

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

693

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3618

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

54

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

71

2026.01.13

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 6.8万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号