CentOS怎么安装完程序_CentOS软件安装与后续配置步骤教程

答案是选择合适安装方式并完成后续配置。在CentOS上安装软件需根据来源选择YUM/DNF包管理器、RPM包或源码编译,安装后必须配置服务启动、防火墙、SELinux、环境变量及日志管理,确保软件正常运行并融入系统。

centos怎么安装完程序_centos软件安装与后续配置步骤教程

CentOS上安装程序,核心就是选择合适的安装方式——通常是包管理器(YUM或DNF),或者直接处理RPM包,更复杂些会涉及源码编译。安装完成后,真正的“活儿”才刚刚开始,因为你还需要一系列后续配置,比如服务启动、防火墙规则、SELinux策略、环境变量甚至日志管理,才能让软件真正跑起来并融入系统。

解决方案

在CentOS上安装软件并进行后续配置,这事儿说起来简单,做起来细节可不少。我通常会根据软件的来源和我的需求来选择不同的安装路径。

1. 使用包管理器(YUM/DNF)这是最省心、也是我最推荐的方式。CentOS 7及之前版本用

yum

,CentOS 8及以后版本用

dnf

,它们本质上是管理RPM包的工具,能自动处理依赖关系。

搜索软件:

# CentOS 7yum search # CentOS 8+dnf search 

这能帮你确认软件是否存在于已配置的仓库中。

安装软件:

# CentOS 7sudo yum install # CentOS 8+sudo dnf install 

系统会列出需要安装的包及其依赖,确认后就会自动下载安装。

更新软件:

sudo yum update  # 或 yum updatesudo dnf update  # 或 dnf update

保持软件最新是好习惯,可以修复漏洞,提升性能。

删除软件:

sudo yum remove sudo dnf remove 

清理不再需要的软件。

2. 直接安装RPM包有时候,厂商会直接提供

.rpm

安装包,而不是通过官方仓库。

安装:

sudo rpm -ivh .rpm

这里的

-i

是安装,

-v

是显示详细信息,

-h

是显示进度条。这种方式的缺点是,如果RPM包有依赖,你可能需要手动解决“依赖地狱”。我个人不太喜欢直接用

rpm -ivh

,除非确定没有复杂依赖,或者我能找到所有依赖包。

通过YUM/DNF安装本地RPM:一个更好的办法是利用YUM/DNF来安装本地RPM包,它们会尝试解决依赖:

sudo yum localinstall .rpm # CentOS 7sudo dnf install .rpm       # CentOS 8+

3. 源码编译安装这是最灵活但也最复杂的方式,通常用于安装最新版本、定制功能或者官方仓库没有的软件。

准备编译环境:你可能需要安装开发工具包:

sudo yum groupinstall "Development Tools" # CentOS 7sudo dnf groupinstall "Development Tools" # CentOS 8+

下载源码:通常是

.tar.gz

.tar.bz2

格式。

wget tar -zxvf .tar.gzcd 

配置、编译、安装:

./configure --prefix=/usr/local/ # 配置安装路径和特性make                                    # 编译sudo make install                       # 安装

./configure

这一步非常关键,它会检查你的系统环境,并生成

Makefile

。不同的软件会有不同的配置选项,需要仔细阅读其

README

INSTALL

文件。我曾经为了编译一个老旧的软件,花了一整天时间去解决各种库依赖问题,那感觉真是又痛苦又成就感爆棚。

后续配置步骤:

安装完软件,通常还需要一系列的配置才能让它正常工作。

服务管理(Systemd):对于后台服务类软件(如Nginx、MySQL),你需要用

systemctl

来管理。

sudo systemctl start     # 启动服务sudo systemctl enable    # 设置开机自启sudo systemctl status    # 查看服务状态sudo systemctl restart   # 重启服务

我以前有个习惯,就是安装完服务后,总会手动

systemctl start

一下,然后就忘了

enable

,结果重启服务器后,服务全歇菜了,还得手动一个个起,真是血的教训。

防火墙配置(Firewalld):CentOS默认启用

firewalld

。如果你的服务需要对外提供访问,就必须开放相应的端口或服务。

sudo firewall-cmd --permanent --add-service=http # 开放HTTP服务sudo firewall-cmd --permanent --add-port=8080/tcp # 开放TCP 8080端口sudo firewall-cmd --reload                       # 重新加载防火墙规则sudo firewall-cmd --list-all                     # 查看所有规则

忘记这一步,你就会发现服务明明启动了,却怎么也访问不了。

SELinux策略:SELinux是CentOS的安全增强机制,有时会阻止新安装的软件正常运行。

getenforce          # 查看SELinux状态 (Enforcing/Permissive/Disabled)sudo setenforce 0   # 临时设置为Permissive模式 (不强制执行策略)

如果确定是SELinux的问题,你需要为软件设置正确的安全上下文,或者生成自定义策略。直接禁用SELinux虽然省事,但会降低系统安全性,不推荐长期使用。说实话,SELinux这东西,很多时候真的让人又爱又恨。它确实能提升安全性,但对于新手来说,排查起来简直是噩梦。

配置文件修改:大多数软件都有自己的配置文件,通常位于

/etc/

目录下,或者软件安装路径下的

conf/

目录。例如,Nginx的配置文件是

/etc/nginx/nginx.conf

,MySQL的是

/etc/my.cnf

。根据你的需求修改这些文件,然后重启服务使其生效。

环境变量:对于一些命令行工具,你可能需要将其可执行文件路径添加到

PATH

环境变量中,以便在任何目录下都能直接调用。

echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrcsource ~/.bashrc

或者在

/etc/profile.d/

下创建新的

.sh

文件。

权限管理:确保软件运行所需的目录和文件具有正确的用户和组权限,避免因权限不足导致服务启动失败或数据无法读写。

为什么有时候YUM/DNF找不到我想要的软件?

这绝对是初学者,甚至是我们这些老手都会遇到的一个“坑”。我记得有一次,我尝试安装某个工具,结果

yum search

了半天都没结果,后来才发现是忘了启用EPEL。这背后其实有好几个原因:

仓库未启用或缺失: CentOS默认的官方仓库提供的软件是有限的,很多第三方或更小众的软件需要额外的仓库。最常见的就是EPEL (Extra Packages for Enterprise Linux)。如果你想安装一些非官方的工具,比如

htop

nginx

(虽然现在官方仓库也有),很可能需要先安装EPEL仓库:

# CentOS 7sudo yum install epel-release# CentOS 8+sudo dnf install epel-release

还有一些厂商会提供自己的仓库,比如Docker、MongoDB等,你需要按照它们的官方文档添加对应的

.repo

文件。

缓存未更新: YUM/DNF会缓存仓库的元数据(包列表、依赖信息等)。如果仓库内容有更新,而你的本地缓存没更新,就可能搜不到最新的包。

sudo yum clean all && sudo yum makecache # 清理并重建YUM缓存sudo dnf clean all && sudo dnf makecache # 清理并重建DNF缓存

我习惯在添加新仓库或者长时间没更新后,就跑一下这个命令,确保信息是最新的。

软件版本不匹配: 你正在使用的CentOS版本可能太旧,导致仓库中没有你想要的新版本软件;或者反过来,你想安装一个很老的软件,但当前仓库已经不再提供。这种情况下,可能需要考虑源码编译,或者寻找其他更老的仓库(不推荐,有安全风险)。

软件名称不准确: 有时候我们记不住软件的完整名称,或者以为的名称和实际的包名有出入。

yum search

dnf search

的模糊匹配功能可以帮助你,但如果关键词不对,也可能一无所获。

软件根本就没有RPM包: 并不是所有软件都有预编译的RPM包,有些软件可能只提供源码,需要你自己编译安装;或者它是一个Python、Node.js等脚本语言写的工具,需要通过对应的包管理器(如

pip

npm

)来安装。

安装完软件后,防火墙和SELinux总是给我添堵怎么办?

防火墙和SELinux,这俩兄弟在CentOS的安全体系里扮演着非常重要的角色,但对于不熟悉的人来说,它们确实是“添堵”的常客。它们的设计初衷是为了保护系统,但往往在服务启动后,你发现外部根本访问不了,或者程序报错,这时候多半就是它们在“作祟”。

处理防火墙 (Firewalld):

豆包AI编程 豆包AI编程

豆包推出的AI编程助手

豆包AI编程 483 查看详情 豆包AI编程

CentOS 7及更高版本默认使用

firewalld

。当你安装了Web服务器(如Nginx、Apache)、数据库(MySQL、PostgreSQL)或其他网络服务后,通常需要开放相应的端口或服务。

检查防火墙状态:

sudo systemctl status firewalld

如果显示

active (running)

,说明防火墙正在运行。

查看已开放的端口/服务:

sudo firewall-cmd --list-all

这个命令会列出所有当前区域(通常是

public

)的配置,包括开放的服务和端口。

开放服务或端口:

开放预定义服务: 很多常用服务(如http, https, ssh, mysql)在

firewalld

中都有预定义的服务名。

sudo firewall-cmd --permanent --add-service=http  # 开放HTTP服务sudo firewall-cmd --permanent --add-service=https # 开放HTTPS服务sudo firewall-cmd --permanent --add-service=mysql # 开放MySQL服务

开放自定义端口: 如果你的服务运行在一个非标准端口上,或者没有预定义服务。

sudo firewall-cmd --permanent --add-port=8080/tcp # 开放TCP 8080端口sudo firewall-cmd --permanent --add-port=5432/udp # 开放UDP 5432端口

注意:

--permanent

参数很重要,它表示这些规则会写入配置文件,在系统重启后依然有效。如果没有这个参数,规则只在当前会话中生效,重启就没了。

重新加载防火墙规则:在添加或修改规则后,必须重新加载

firewalld

才能使这些更改生效。

sudo firewall-cmd --reload

这是我每次修改防火墙规则后,最容易忘记但又最关键的一步。

处理SELinux (Security-Enhanced Linux):

SELinux是一个强制访问控制系统,它为系统上的所有文件、进程、端口等都设置了安全上下文。当你的新软件尝试访问某个文件或端口,而其安全上下文不匹配SELinux策略时,就会被阻止。

检查SELinux状态:

getenforce
Enforcing

:SELinux策略强制执行,任何违规行为都会被阻止。

Permissive

:SELinux策略不强制执行,违规行为会被记录日志,但不会被阻止。

Disabled

:SELinux被禁用。

临时设置为Permissive模式:如果你怀疑是SELinux导致的问题,可以暂时将其设置为

Permissive

模式来验证。

sudo setenforce 0

然后再次测试你的软件。如果问题解决了,那么就是SELinux策略的问题。记住,这只是临时措施,不应该在生产环境中长期使用。

永久修改SELinux模式(不推荐直接禁用):修改

/etc/selinux/config

文件:

SELINUX=enforcing  # 默认强制执行# SELINUX=permissive # 宽松模式# SELINUX=disabled   # 禁用

修改后需要重启系统才能生效。我强烈不建议直接设置为

Disabled

,这会大大降低系统的安全性。

排查SELinux拒绝访问日志:当SELinux阻止了某个操作时,它会在审计日志中记录下来。

sudo tail -f /var/log/audit/audit.log | grep AVC# 或者使用 journalctlsudo journalctl -t AVC -f

这些日志会告诉你哪个进程、哪个文件或端口被SELinux阻止了。

为文件或目录设置正确的安全上下文:这是解决SELinux问题的推荐方法。例如,如果你把Web根目录放到了

/opt/mywebsite

,而不是标准的

/var/www/html

,那么SELinux可能不允许Web服务器访问它。

sudo semanage fcontext -a -t httpd_sys_content_t "/opt/mywebsite(/.*)?"sudo restorecon -Rv /opt/mywebsite

这会将

/opt/mywebsite

及其子目录的安全上下文设置为

httpd_sys_content_t

,允许HTTP服务访问。

为端口设置正确的安全上下文:如果你的服务监听在一个非标准端口,SELinux可能不允许。

sudo semanage port -a -t http_port_t -p tcp 8080 # 允许HTTP服务使用TCP 8080端口

使用

audit2allow

生成自定义策略:这是一个更高级的工具,可以根据

audit.log

中的拒绝日志,自动生成SELinux策略模块。

sudo yum install policycoreutils-python-utils # CentOS 7sudo dnf install policycoreutils-python-utils # CentOS 8+sudo grep "SELinux is preventing" /var/log/audit/audit.log | audit2allow -M mypolsudo semodule -i mypol.pp

这会生成一个名为

mypol.pp

的策略文件并加载它。这在处理一些复杂或特定软件的SELinux问题时非常有用。

软件安装后,如何确保它能在系统启动时自动运行,并且能正确地进行日志记录?

确保软件能在系统启动时自动运行,以及正确地进行日志记录,这是运维工作中非常基础但又极其重要的一环。如果服务不能自启,每次重启服务器都得手动干预,那效率可想而知;而没有日志,排查问题简直是盲人摸象。

确保系统启动时自动运行 (Systemd):

在CentOS 7及更高版本中,

systemd

是管理系统服务的主力。如果你安装的软件是一个后台服务(Daemon),通常会自带一个

systemd unit

文件。

检查服务是否已注册:安装完服务后,通常它的

unit

文件会放在

/usr/lib/systemd/system/

/etc/systemd/system/

目录下。你可以用

ls

命令查看是否存在

你的服务名.service

文件。

启用服务开机自启:

sudo systemctl enable .service

这个命令会在

/etc/systemd/system/multi-user.target.wants/

目录下创建一个指向你服务

unit

文件的软链接,从而让

systemd

在多用户模式启动时加载它。

启动服务:

sudo systemctl start .service

启用自启只是配置,服务本身不会立即启动,所以你需要手动启动一次。

检查服务状态:

sudo systemctl status .service

这个命令会显示服务的当前状态、进程ID、最近的日志输出等,非常有用。如果服务启动失败,这里通常会有错误提示。

自定义

systemd unit

文件:如果你的软件是一个自定义脚本,或者没有提供

systemd unit

文件,你可以自己创建一个。例如,创建一个

/etc/systemd/system/myscript.service

文件:

[Unit]Description=My Custom Script ServiceAfter=network.target # 在网络服务启动后启动[Service]ExecStart=/usr/local/bin/myscript.sh # 你的脚本路径Type=simpleRestart=on-failure # 崩溃时自动重启User=myuser        # 以哪个用户身份运行Group=mygroup      # 以哪个组身份运行[Install]WantedBy=multi-user.target

创建或修改

unit

文件后,需要重新加载

systemd

配置:

sudo systemctl daemon-reloadsudo systemctl enable myscript.servicesudo systemctl start myscript.service

我以前就经常为一些自定义的数据同步脚本写这样的

unit

文件,方便管理。

**

以上就是CentOS怎么安装完程序_CentOS软件安装与后续配置步骤教程的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/348969.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月5日 21:29:36
下一篇 2025年11月5日 21:30:42

相关推荐

  • 如何解决本地图片在使用 mask JS 库时出现的跨域错误?

    如何跨越localhost使用本地图片? 问题: 在本地使用mask js库时,引入本地图片会报跨域错误。 解决方案: 要解决此问题,需要使用本地服务器启动文件,以http或https协议访问图片,而不是使用file://协议。例如: python -m http.server 8000 然后,可以…

    2025年12月24日
    200
  • 使用 Mask 导入本地图片时,如何解决跨域问题?

    跨域疑难:如何解决 mask 引入本地图片产生的跨域问题? 在使用 mask 导入本地图片时,你可能会遇到令人沮丧的跨域错误。为什么会出现跨域问题呢?让我们深入了解一下: mask 框架假设你以 http(s) 协议加载你的 html 文件,而当使用 file:// 协议打开本地文件时,就会产生跨域…

    2025年12月24日
    200
  • 正则表达式在文本验证中的常见问题有哪些?

    正则表达式助力文本输入验证 在文本输入框的验证中,经常遇到需要限定输入内容的情况。例如,输入框只能输入整数,第一位可以为负号。对于不会使用正则表达式的人来说,这可能是个难题。下面我们将提供三种正则表达式,分别满足不同的验证要求。 1. 可选负号,任意数量数字 如果输入框中允许第一位为负号,后面可输入…

    2025年12月24日
    000
  • 如何在 VS Code 中解决折叠代码复制问题?

    解决 VS Code 折叠代码复制问题 在 VS Code 中使用折叠功能可以帮助组织长代码,但使用复制功能时,可能会遇到只复制可见部分的问题。以下是如何解决此问题: 当代码被折叠时,可以使用以下简单操作复制整个折叠代码: 按下 Ctrl + C (Windows/Linux) 或 Cmd + C …

    2025年12月24日
    000
  • 网络进化!

    Web 应用程序从静态网站到动态网页的演变是由对更具交互性、用户友好性和功能丰富的 Web 体验的需求推动的。以下是这种范式转变的概述: 1. 静态网站(1990 年代) 定义:静态网站由用 HTML 编写的固定内容组成。每个页面都是预先构建并存储在服务器上,并且向每个用户传递相同的内容。技术:HT…

    2025年12月24日
    000
  • 为什么多年的经验让我选择全栈而不是平均栈

    在全栈和平均栈开发方面工作了 6 年多,我可以告诉您,虽然这两种方法都是流行且有效的方法,但它们满足不同的需求,并且有自己的优点和缺点。这两个堆栈都可以帮助您创建 Web 应用程序,但它们的实现方式却截然不同。如果您在两者之间难以选择,我希望我在两者之间的经验能给您一些有用的见解。 在这篇文章中,我…

    2025年12月24日
    000
  • 姜戈顺风

    本教程演示如何在新项目中从头开始配置 django 和 tailwindcss。 django 设置 创建一个名为 .venv 的新虚拟环境。 # windows$ python -m venv .venv$ .venvscriptsactivate.ps1(.venv) $# macos/linu…

    2025年12月24日
    000
  • 花 $o 学习这些编程语言或免费

    → Python → JavaScript → Java → C# → 红宝石 → 斯威夫特 → 科特林 → C++ → PHP → 出发 → R → 打字稿 []https://x.com/e_opore/status/1811567830594388315?t=_j4nncuiy2wfbm7ic…

    2025年12月24日
    000
  • 学会从头开始学习CSS,掌握制作基本网页框架的技巧

    从零开始学习CSS,掌握网页基本框架制作技巧 前言: 在现今互联网时代,网页设计和开发是一个非常重要的技能。而学习CSS(层叠样式表)是掌握网页设计的关键之一。CSS不仅可以为网页添加样式和布局,还可以为用户呈现独特且具有吸引力的页面效果。在本文中,我将为您介绍一些基本的CSS知识,以及一些常用的代…

    2025年12月24日
    200
  • 揭秘Web标准涵盖的语言:了解网页开发必备的语言范围

    在当今数字时代,互联网成为了人们生活中不可或缺的一部分。作为互联网的基本构成单位,网页承载着我们获取和分享信息的重要任务。而网页开发作为一门独特的技术,离不开一些必备的语言。本文将揭秘Web标准涵盖的语言,让我们一起了解网页开发所需的语言范围。 首先,HTML(HyperText Markup La…

    2025年12月24日
    000
  • 揭开Web开发的语言之谜:了解构建网页所需的语言有哪些?

    Web标准中的语言大揭秘:掌握网页开发所需的语言有哪些? 随着互联网的快速发展,网页开发已经成为人们重要的职业之一。而要成为一名优秀的网页开发者,掌握网页开发所需的语言是必不可少的。本文将为大家揭示Web标准中的语言大揭秘,介绍网页开发所需的主要语言。 HTML(超文本标记语言)HTML是网页开发的…

    2025年12月24日
    400
  • 常用的网页开发语言:了解Web标准的要点

    了解Web标准的语言要点:常见的哪些语言应用在网页开发中? 随着互联网的不断发展,网页已经成为人们获取信息和交流的重要途径。而要实现一个高质量、易用的网页,离不开一种被广泛接受的Web标准。Web标准的制定和应用,涉及到多种语言和技术,本文将介绍常见的几种语言在网页开发中的应用。 首先,HTML(H…

    2025年12月24日
    000
  • 网页开发中常见的Web标准语言有哪些?

    探索Web标准语言的世界:网页开发中常用的语言有哪些? 在现代社会中,互联网的普及程度越来越高,网页已成为人们获取资讯、娱乐、交流的重要途径。而网页的开发离不开各种编程语言的应用和支持。在这个虚拟世界的网络,有许多被广泛应用的标准化语言,用于为用户提供优质的网页体验。本文将探索网页开发中常用的语言,…

    2025年12月24日
    000
  • 深入探究Web标准语言的范围,涵盖了哪些语言?

    Web标准是指互联网上的各个网页所需遵循的一系列规范,确保网页在不同的浏览器和设备上能够正确地显示和运行。这些标准包括HTML、CSS和JavaScript等语言。本文将深入解析Web标准涵盖的语言范围。 首先,HTML(HyperText Markup Language)是构建网页的基础语言。它使…

    2025年12月24日
    000
  • 深入理解CSS框架与JS之间的关系

    深入理解CSS框架与JS之间的关系 在现代web开发中,CSS框架和JavaScript (JS) 是两个常用的工具。CSS框架通过提供一系列样式和布局选项,可以帮助我们快速构建美观的网页。而JS则提供了一套功能强大的脚本语言,可以为网页添加交互和动态效果。本文将深入探讨CSS框架和JS之间的关系,…

    2025年12月24日
    000
  • CSS 超链接属性解析:text-decoration 和 color

    CSS 超链接属性解析:text-decoration 和 color 超链接是网页中常用的元素之一,它能够在不同页面之间建立连接。为了使超链接在页面中有明显的标识和吸引力,CSS 提供了一些属性来调整超链接的样式。本文将重点介绍 text-decoration 和 color 这两个与超链接相关的…

    2025年12月24日
    000
  • 看看这些前端面试题,带你搞定高频知识点(一)

    每天10道题,100天后,搞定所有前端面试的高频知识点,加油!!!,在看文章的同时,希望不要直接看答案,先思考一下自己会不会,如果会,自己的答案是什么?想过之后再与答案比对,是不是会更好一点,当然如果你有比我更好的答案,欢迎评论区留言,一起探讨技术之美。 面试官:给定一个元素,如何实现水平垂直居中?…

    2025年12月24日 好文分享
    300
  • 看看这些前端面试题,带你搞定高频知识点(二)

    每天10道题,100天后,搞定所有前端面试的高频知识点,加油!!!,在看文章的同时,希望不要直接看答案,先思考一下自己会不会,如果会,自己的答案是什么?想过之后再与答案比对,是不是会更好一点,当然如果你有比我更好的答案,欢迎评论区留言,一起探讨技术之美。 面试官:页面导入样式时,使用 link 和 …

    2025年12月24日 好文分享
    200
  • 看看这些前端面试题,带你搞定高频知识点(三)

    每天10道题,100天后,搞定所有前端面试的高频知识点,加油!!!,在看文章的同时,希望不要直接看答案,先思考一下自己会不会,如果会,自己的答案是什么?想过之后再与答案比对,是不是会更好一点,当然如果你有比我更好的答案,欢迎评论区留言,一起探讨技术之美。 面试官:清除浮动有哪些方式? 我:呃~,浮动…

    2025年12月24日 好文分享
    000
  • 看看这些前端面试题,带你搞定高频知识点(四)

    每天10道题,100天后,搞定所有前端面试的高频知识点,加油!!!,在看文章的同时,希望不要直接看答案,先思考一下自己会不会,如果会,自己的答案是什么?想过之后再与答案比对,是不是会更好一点,当然如果你有比我更好的答案,欢迎评论区留言,一起探讨技术之美。 面试官:请你谈一下自适应(适配)的方案 我:…

    2025年12月24日 好文分享
    000

发表回复

登录后才能评论
关注微信