第九篇:系统管理体系之软件包管理

Linux常见的安装软件方式

  •  Linux下面软件包格式:
    • rpm格式(红帽系列系统,CentOS,麒麟系统)
    • deb格式(Debian,Ubuntu)
安装软件方式 举例 说明 应用场景
yum/apt方式 点外卖,缺啥少啥,外卖解决(不需要手动安装依赖) 通过网络下载软件包,替我们安装,如果有依赖则自动下载依赖并安装 大部分场景,没有网络可以自建yum软件仓库
rpm/dpkg方式 半成品,缺啥少啥,自己解决(需要手动安装依赖) 手动下载rpm包,手动安装rpm包,缺少依赖需要自己解决 没有网络、误删除软件包、依赖较少
编译安装方式 自己做,缺啥少啥,自己解决(需要手动安装依赖) 可以自定义安装,比较漫长,缺少依赖需要自己解决 软件安装需要自定义、增加功能
二进制安装方式 点外卖+自取,缺啥少啥,自己解决(需要手动安装依赖)

类似于绿色软件,解压即可,可能需要准备环境

并非每个软件都有,一般数据库、服务、k8s、promethues监控有

如果有可以选用,优先选择yum,没有那么选择二进制

安装方式推荐:yum > rpm > 二进制 > 编译安装

rpm安装方式

rpm命令 选项及其含义
增加--安装 -ivh(-i install) xxx.rpm
查看--检查 -qa(query all)查看软件包是否安装
  -ql  查看软件包内容
  -qf  文件或命令绝对路径  查询某个文件或命令所归属的软件包
修改--升级 -Uvh  升级软件包(如果软件包不存在,相当于ivh安装)
删除 -e  删除软件包

  增加-安装rpm包⭐⭐⭐⭐⭐

-ivh  
-i install 下载
-v verbose 详细,显示过程
-h human readable  人类可读形式显示
复制代码
# 案例:安装rpm包

# 下载软件包
[root@yuan ~]# wget --no-check-certificate -P /server/tools/ https://mirrors-i.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent-6.0.0-1.el7.x86_64.rpm
[root@yuan tools]# ll
总用量 508
-rw-r--r-- 1 root root 517992 2月  14 2022 zabbix-agent-6.0.0-1.el7.x86_64.rpm

    wget下载指定内容,默认下载到当前目录
    -P  下载到指定目录,目录不存在则自动创建
    --no-check-certificate  下载地址https,需要加上该选项

# 安装依赖
yum install -y pcre2

# 安装软件包zabbix-agent
[root@yuan tools]# rpm -ivh zabbix-agent-6.0.0-1.el7.x86_64.rpm
复制代码

  查看--检查

选项 说明
-q query  查询
-l list  列表  表示指出rpm包中包含的文件
-f file  文件  表示查询那个包提供了指定的文件
复制代码
# 检查软件包是否安装成功⭐⭐⭐⭐⭐
    # 利用管道+grep方式(推荐)
        [root@yuan ~]# rpm -qa |grep zabbix
        zabbix-agent-6.0.0-1.el7.x86_64
    # 不利用管道,直接写出软件包的名字
        [root@yuan ~]# rpm -qa zabbix-agent
        zabbix-agent-6.0.0-1.el7.x86_64

# 案例:检查软件包的内容(软件包已安装)⭐⭐⭐⭐⭐
    [root@yuan ~]# rpm -ql zabbix-agent
    /etc/logrotate.d/zabbix-agent
    /etc/zabbix/zabbix_agentd.conf
    /usr/lib/systemd/system/zabbix-agent.service

温馨提示:软件包不等同于命令
    一般情况下一个软件包中有一个命令(tree、telnet软件包)
    更多情况下一个软件包中可能有多条命令(lrzsz(rz、sz))
复制代码

  修改--升级(Upgrade)

用于通过rpm包的方式升级软件

# 案例:升级软件(小版本)
6.0.0 升级到 6.0.7版本
-Uvh -U表示update/upgrade 升级
如果直接使用-ivh安装,会提示配置文件的一些冲突导致安装失败

  删除 

  • 删除对应的软件包(rpm安装或yum安装),其他方式(编译,二进制)无法删除
  • yum,rpm安装/删除软件时,推荐使用rpm命令删除,非必须不推荐删除软件
  • 删除软件包 -e (erase)
rpm -e 软件包
rpm -e zabbix-agent2
rpm -qa |grep zabbix

yum软件包管理

  • yum是红帽系列系统中默认的软件包管理器
    • 会自动下载默认的rpm包并且安装,安装过程中如果有依赖会自动下载
  • 推荐安装命令补全工具
    • yum install -y bash-completion bash-completion-extras
    • 安装后重启Linux,可以对yum选项进行tap

  yum安装全流程

  1. 运行yum install -y tree 命令
  2. 解析tree软件包是否有依赖
  3. yum会根据本地配置的yum源地址,进行请求(请求相关软件包、依赖软件包)
  4. 如果yum源存在对应的软件包,则会通知yum进行下载,rpm包就会下载到yum缓存目录中
  5. 软件包和依赖都下载好,则开始安装
  6. 安装完成删除刚刚下载的rpm包(默认)

yum命令:下载与安装软件包(配置文件:/etc/yum.conf)

yum仓库/源:存放软件包的地方(配置目录:/etc/yum.repos.d/*.repo repository源)

  yum源配置

 为何配置yum源地址

  • 使其下载速度更快
  • 系统默认的yum源无法满足要求(需要的软件yum源没有)

使用虚拟机(私有云)、物理服务器需要配置yum源,使用公有云,则一般都是配好的

 一键配置阿里云的yum源

  • 查看系统正在使用的yum源列表
复制代码
[root@yuan ~]# yum repolist  # 查看系统正在使用的源
源标识                       源名称                                         状态
!base/7/x86_64        CentOS-7 - Base - mirrors.aliyun.com                10,072
!epel/x86_64          Extra Packages for Enterprise Linux 7 - x86_64      13,791
!extras/7/x86_64      CentOS-7 - Extras - mirrors.aliyun.com              526
!updates/7/x86_64     CentOS-7 - Updates - mirrors.aliyun.com             6,173
repolist: 30,562

上述有base、extras、updates、epel四个yum源
    base、extras、updates是系统默认的yum源
    epel是额外的yum源
复制代码
  • 设置系统的yum源为阿里云
复制代码
https://developer.aliyun.com/mirror/
选择centos

# 1、备份已有yum源的配置文件
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

# 2、配置系统默认的源,改为阿里的源
使用wget或curl命令下载,下载阿里云到yum源的配置文件(/etc/yum.repos.d/)的目录
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
-O  :下载并改名,存放到指定目录

base、extras、updates系统默认的yum源改为阿里云
复制代码
  • 增加epel源
# 1、备份(由于epel源不是系统默认的源,所以第一次使用时,提示文件不存在)
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup

# 2、增加系统的epel源(企业级Linux的额外的软件包)
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

 yum配置文件详解

存放在/etc/yum.repos.d/目录下,都是以.repo结尾且只能识别.repo结尾的文件

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
yum源配置文件详情  
[base] yum源文件
name= 说明信息
baseurl= yum源地址,浏览器打开地址后要看到repodata文件
enabled=1 是否开启这个源
gpgcheck=1 开启软件包检查,未来自建yum仓库可以关闭
gpgkey 用于检查的密钥,如果关闭检查gpgkey省略

 yum命令配置文件

  • 未来在正式环境中几乎很少修改
  • 未来把yum安装过的rpm包进行保存时使用
  • 修改/etc/yum.conf配置,找出keepcache行=0改为=1即可
/etc/yum.conf 说明
keepcache

=0关闭缓存,软件下载安装后自动删除rpm包

=1开启缓存,软件下载安装后保留rpm包

cachedir yum下载软件包的缓存目录:/var/cache/yum/$basearch/$releasever
logfile yum命令的记录 /var/log/yum.log

 yum命令详解⭐⭐⭐⭐⭐

yum命令 格式与说明
yum install -y tree
  yum reinstall -y tree 重新安装
yum provides 内容
  yum search all 内容
  yum repolist 查看源列表
删除 yum remove 删除软件包及依赖
  yum clean all 清空缓存
yum update/upgrade
选项 -y 遇到有yes/no的时候选择yes 
  •  增-安装软件
# yum安装软件包
    yum install -y tree

# 重新安装软件包(使用较少)
    yum reinstall -y tree
  • 查-检查命令/依赖/文件属于哪个软件包

查询某个命令属于哪个软件包,查询某个依赖属于哪个软件包

复制代码
# 根据软件包内容找到被查询的命令或文件属于的软件包
yum provides 命令或文件
[root@yuan ~]# yum provides ls
已加载插件:fastestmirror
......
coreutils-8.22-24.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
源 :@anaconda
匹配来源:
文件名 :/usr/bin/ls

# 备用搜索命令
yum search all ifconfig    
# 先用provides,查不到再用search
# search命令查询的结果会非常的多,需要一个个的测试

# 必会:查询yum源信息
yum repolist

# 熟悉:显示yum仓库中所有的软件
yum list
复制代码
    • 删软件包yum remove
    • 不推荐使用,remove会删除依赖,如果要删除使用rpm -e  
    • 删除本地缓存(yum clean all 自建yum仓库使用)
  • 改-升级

yum install的时候(安装/升级)

更新的命令:yum update 或者 yum upgrade ,软件或命令有BUG或漏洞,需要更新下

Ubantu系统软件包管理

debian(Ubuntu) 红帽(CentOS、麒麟)
apt源 yum源
apt/apt-get yum
dpkg rpm

  配置源

复制代码
vim /etc/apt/sources.list
    将/etc/apt/sources.list文件中原有的内容替换成    
    https://developer.aliyun.com/mirror/ubuntu中的内容

编辑完成后运行
apt update    # 用于生成本地apt缓存,如果不做则无法安装软件

提示该内容则本地apt缓存已生成
    Fetched 39.1 MB in 44s (888 kB/s) 
    Reading package lists . Done
    Building dependency tree       
    Reading state information . Done
    103 packages can be upgraded. Run 'apt list -upgradable' to see them.
复制代码

  安软件

apt install -y cmatrix lolcat
root@yuan-virtual-machine:~# ll /etc/passwd |lolcat
-rw-r--r-- 1 root root 2924 9月 21 09:27 /etc/passwd

  检查软件

功能 debian(ubuntu) 红帽(CentOS、麒麟)
检查是否安装 dpkg -l rpm -qa
安装 dpkg -i rpm -ivh
检查软件包内容 dpkg -L rpm -ql
删除 dkkg -r rpm -e
root@yuan-virtual-machine:~# dpkg -l |grep lolcat
ii  lolcat        42.0.99-1      all             colorful `cat`
root@yuan-virtual-machine:~# dpkg -l |grep cmatrix
ii  cmatrix     2.0-2             amd64      simulates the display from "The Matrix"

编译安装

  • 自定义
  • yum安不上,rpm没有包

编译本质:源代码(C语言)-->命令

编译安装三部曲:配置-->编译-->编译安装

  编译安装的步骤

  1. 安装依赖的软件包,工具......
  2. ./configure      进行配置,安装到哪个目录(默认是/usr/local下面)、开启或关闭功能
  3. make    编译(代码-->命令)
  4. make install     安装(创建目录、复制命令、复制配置(复制到指定目录))

  编译安装黑客帝国

复制代码
# 上传软件包并安装依赖
    1、上传压缩包
        lrzsz包
        上传文件:rz
        下载文件:sz filename
    2、解压压缩包
        tar xf cmatrix-1.2a.tar.gz
    3、进入压缩包
        cd cmatrix-1.2a/
    4、安装依赖
        yum install -y ncurses-devel

# ./configure  进行配置,按转到哪个目录(默认是/usr/local下面)、开启或关闭功能
  需要在代码目录下面执行./configure (cd cmatrix-1.2a/)
  .configure 执行该命令后屏幕上会输出一堆内容
  echo $? 如果结果为0,则表示上一条命令执行成功

# 继续编译
  make # 运行该命令即可
  echo $? 检查上一条命令是否执行成功

# 安装
  make install

# 运行cmatrix命令,检查结果
复制代码

 

posted @   猿小姜  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示