网络服务器配置与管理教辅书 Help

2-4 软件安装、换源

基本知识

包管理器
Linux与Windows管理软件的方式不同。Windows可以从软件网站官网和各式各样的软件站下载,直观、丰富、但是容易下载到恶意软件。
Linux服务器要求软件稳定、安全,采用中心化的管理方式,软件需要提交至操作系统官方平台,操作系统官方维护一个下载地址和版本依赖的配置文件,叫做软件源 ,搭配命令行工具包管理器进行软件安装。

各大操作系统的软件包管理工具: 每家厂商都给自家产品一个命名,计算机圈就是这样。虽然很多种,但用户终端命令大同小异,都是安装、卸载等几个功能。

yum:(yellowdog updater, modified)。Fedora系,例如Redhat、CentOS。

dnf:yum的继任者,拥有更先进的特性如应用隔离化,但目前软件没有yum丰富。Fedora系,例如Redhat、CentOS。

apt:(advanced package tool)。Debian系,例如Debian、Ubuntu。

brew:(yellowdog updater, modified)。Fedora系,例如Redhat、CentOS。

(小众)**chocolaty**。Windows。

可执行二进制文件格式:
C、C++等语言是操作系统的基本语言,相同软件,在不同操作系统上,会编译为不同的可执行二进制。

rpm(Red Hat Package Manager):Fedora系,例如Redhat、CentOS。

deb:Debian系,例如Debian、Ubuntu。

app:Fedora系,例如Redhat、CentOS。

我们最为熟悉,Windows。

图形界面安装

内置的软件商店图形界面,最简单直观。但由于商业linux系统往往是纯命令行版、目前不可用因为机房CentOS8官方软件源已经停止维护、和为了理解包管理原理,这种方式自行尝试。

Yum包管理器

理解原理

  1. 查看linux rpm软件仓库地址
    访问https://mirror.stream.centos.org然后点击rpm链接(当前官网维护的为9、10大版本),老版本需要找其它公司机构的镜像站。然后依次进入 /10-stream/AppStream/x86_64/os/Packages/
    或直接访问https://mirror.stream.centos.org/10-stream/AppStream/x86_64/os/Packages/
    看到软件非常多有数万个。

  2. 查看包管理器中的源配置文件内容

# 注意linux系统中的文件名中的.d代表服务端的意思,并不是指文件后缀。 ls /etc/yum.repos.d cat /etc/yum.repos.d/CentOS-Linux-BaseOS.repo

内容如下

# 类别,系统基础软件,除此之外还有设计、效率工具、游戏、补充软件包等多个配置文件。在后面的系统版本中把多个配置文件合并成了一个。 [baseos] name=CentOS Stream $releasever - BaseOS #mirrorlist=http://mirrorlist.centos.org/?release=$releasever-stream&arch=$basearch&repo=BaseOS&infra=$infra # baseurl即软件源地址,将这个地址复制到浏览器发现已经不能访问,说明官方已经停止对老版本的维护。如果可以访问但速度很慢,说明访问国外服务器慢。后面的换源就是换这部分。 baseurl=http://vault.centos.org/$contentdir/$releasever-stream/BaseOS/$basearch/os/ # gpg key使用非对称加密算法,确保不会连接到钓鱼网站的假源 gpgcheck=1 # 启用此配置文件 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial # 源代码仓库,默认禁用 [baseos-source] name=CentOS Stream $releasever - BaseOS - Source #mirrorlist=http://mirrorlist.centos.org/?release=$releasever-stream&arch=src&repo=BaseOS&infra=$infra baseurl=http://vault.centos.org/$contentdir/$releasever-stream/BaseOS/source/os/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

安装

  1. 更新软件源配置列表和检查系统已安装软件是否有新版本。
    软件源中的软件一直在增加中,因此安装软件前要更新操作系统本地的软件源配置文件到最新版。

yum update

执行成功将看到根据软件源网址更新软件配置文件的下载速度和进度条。如果失败则需要1)先换源,2)检查换源后的链接和配置文件是否正确。

CentOS Stream 8 - AppStream 0.0 B/s | 0B 00:00 Errors during downloading metadata for repository 'appstream': -Curl error: Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64
CentOS Stream 8 - AppStream 85%[=========-] 340.0 B/s | 5321B 00:30 依赖关系解决 升级6软件包 总下载:133k 确定吗?【Y/N】

成功换源后下载有速度,下完软件配置信息会自动检查系统软件更新,这只是系统更新,不是目标安装软件,选N不进行系统更新。

  1. 安装
    测试安装第三章的samba文件服务软件包。yum会安装软件包及相关依赖。

yum install samba # 中途提示是否继续下载安装是输入【Y】回车
  1. 卸载

yum uninstall samba

⭐️换源

换源是国内计算机从业者的必备技能。
原因有几种可能: 1)由于centos8系统版已过维护期官方不在维护。2)国外服务器到国内下载速度慢等。3)源地址被GFW封锁。

  1. 镜像源选型:

  1. 网上可以搜到很多镜像源,但由于网络服务器和流量费用,很多源已经不可用,要先放入浏览器地址栏中验证。

  2. 根据国内镜像站的教程进行设置,比对路径发现镜像源路径跟官方源路径https://vault.centos.org/8-stream/BaseOS/x86_64/os/Packages/ 是一样的,只是前面域名换了。

  3. (可选)备份:
    cp命令复制出备份,如果操作错误破坏配置文件又忘了原来配置字段怎么写的,可以rm命令删除掉错误文件,然后mv命令把bak备份文件重命名回去。

# 要备份一个文件夹,cp -r cp -r /etc/yum.repos.d /etc/yum.repos.d.bak # 还有一种暴力办法,机房电脑重启后还原
  1. 编辑配置文件

  • 方法一:nano编辑单个文件,baseurl那行替换网址为有效的镜像源地址。在新操作系统版本中比较推荐,但CentOS8中有多个子软件仓库需要修改。

  • 方法二:wget命令用于下载网址对应的文件,-O参数表示指定下载路径,下载镜像平台提供的repo文件覆盖掉之前旧的。这是阿里云镜像站提供的命令,但只修改了单个子仓库 wget -O /etc/yum.repos.d/CentOS-Linux-BaseOS.repo https://mirrors.aliyun.com/repo/centos-stream/8/CentOS-Stream-BaseOS.repo

  • ⭐️方法三: sed命令是灵活强大的流式文本编辑工具,比vim/nano更加不直观、但在这种场景下更方便,这里的语法为全文查找替换和文件夹下通配符匹配所有repo文件。 源网址由http://mirror.centos.org替换为第三方镜像地址https://vault.centos.orghttps://mirrors.aliyun.com/。 相比方法二的优点是一次性替换12个配置文件,缺点是如果替换错误不好还原。

# 1.修改/etc/yum.repos.d/目录下所有CentOS-开头的配置文件,把每个文件中mirrorlist=替换为#mirrorlist=,即确保这行注释掉。 sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-* # 2.将baseurl的镜像源地址修改为国内镜像源,根据自己的需要修改baseurl=https://mirrors.cloud.tencent.com部分。 sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=https://mirrors.cloud.tencent.com|g" /etc/yum.repos.d/CentOS-*
  1. 换源后测试

# (可选)替换完成后清除之前的缓存。 yum clean # 更新本地软件列表为最新 # 执行yum update后,会检查所有系统软件是否有新版(类似Windows更新),返回日志"413Mb update?(Y/N)",这里选【N】,时间太久,只是更新,并不是目标安装软件。 yum update # 安装软件。返回日志 300kb continue install(Y/N),这里选【Y】安装软件 yum install samba

本地安装

(详情略,后面课程再说)
目前通过光驱安装软件已经绝迹,通过U盘安装软件可能出现在机房和断网有安全要求的环境。

  1. 下载rpm软件包。一般用wget请求下载链接获取安装包,也可以挂载挂载.iso系统镜像(内含rpm软件包)。如果文件为.tar.gz格式需要先解压缩。 .tar是一种打包格式,在Linux上流行,类似.zip .iso。
    .gz是一种优秀的压缩算法,在Linux上流行(Win11后默认支持新增.tar和.7z)

  2. 安装.rpm文件 rpm -i <installer_name>.rpm

  3. 验证

作业

实验一:命令行跑火车字符画

  1. 换源使yum能正常使用。

  2. 安装sl软件包,这是一个让用户输入ls命令出错时在命令行显示字符画火车的小软件。
    yum install -y epel-release ,epel-release为yum提供企业软件外的额外软件列表。

  3. 安装sl软件包: yum install sl。 调用命令行跑火车命令: sl 。命令行能看到跑火车🚞。

实验二:命令行俄罗斯方块

  1. 项目介绍: (github搜索俄罗斯方块的英文tetris+cli关键字时搜到,go语言写的,go语言是编译型语言,项目的releases页面已经有根据不同操作系统平台编译好的可执行程序)
    tetrigo项目github主页
    找到项目右侧tetrigo/releases页面。
    找到最近版本中的linux-amd64.tar.gz下载文件。

    2-4复制下载文件链接.png
  2. 下载程序:

    • 方法一 点击文件下载到宿主机,再拖动到centos桌面版虚拟机中(vmwaretool会负责宿主机与虚拟机之间的文件拷贝)。

    • 方法二 (推荐) 在tetrigo_0.1.6-rc3_linux_amd64.tar.gz文件上鼠标右键然后选择复制文件链接 ,在虚拟机终端里使用粘贴快捷键shift+ins (复制快捷键是shift+del,linux的命令行的快捷键毕竟不同于windows), 网址粘贴后移动光标到行首(快捷键ctrl+A)添加wget补全下载命令,将会把可执行文件下载至当前文件夹。

    wget https://github.com/Broderick-Westrope/tetrigo/releases/download/v0.1.6-rc3/tetrigo_0.1.6-rc3_linux_amd64.tar.gz
    • 方法三 在linux桌面系统中打开火狐浏览器访问项目地址并下载文件,会下载至用户家目录下。

  3. 解压缩文件tetrigo_0.1.6-rc3_linux_amd64.tar.gz ,重命名解压缩后的文件夹或文件为一个更短的名字tetrigo
    tar是封装格式类似zip、iso,gz是gzip压缩软件类似rar,所以.tar.gz代表先打包再压缩,对应tar和gzip两个命令。
    这里使用tar命令的二合一,参数z 使用gzip压缩、x extract检出文件解压缩、c create创建新的归档文件、v verbose冗余信息显示下载进度、f file指定解压后的文件名,所以创建压缩文件用-zcvf参数,解压缩用-zxvf。

    tar -zxvf tetrigo_0.1.6-rc3_linux_amd64.tar.gz tetrigo
  4. 运行
    ls -l看到解压后并重命名为tetrigo的是一个可执行二进制文件,从文件颜色绿色和文件明细第一个字符-表示单文件这两年来判断。
    执行可执行程序,进入游戏界面。注意这里的* ./tetrigo 是执行命令而不是命令后的参数路径,因此不能简写为tetrigo*,否则会报错 tetrigo不是可执行的命令或函数

    ./tetrigo
    2-4解压缩重命名运行程序.png
    2-4俄罗斯方块命令行版.gif

参考

linux命令行小游戏
best-linux-terminal-console-games
linux命令行跑火车
.tar .gz .tar.gz
wget命令一些用法

15 二月 2026