系统管理体系——软件包管理

news/2024/11/13 20:43:39/文章来源:https://www.cnblogs.com/liaofy/p/18544750

1.Linux系统管理体系——软件包管理

Linux下面的软件包格式为:rpm格式(红帽系列系统,CentOS,麒麟系统)或deb格式(Debian,Ubuntu)

安装软件方式 举例 说明 应用场景
yum/apt 方式 点外卖,缺啥少啥,外卖解 决 通过网络下载软件包,替我们安装, 如果 有依赖自动下载依赖并安装. 自动. 大部分场景,没有网络可以自 建yum软件仓库,内网使用。
rpm/dpkg 方式 半成品,缺啥少啥,自己解 决 手动下载rpm包,手动安装rpm包,缺少依 赖需要自己解决 没有网络,误删除软件包,依 赖较少
编译安装 方式 自己做,缺啥少啥,自己解 决 可以自定义安装,比较漫长,缺少依赖自 己解决 软件进行自定义,增加功能
二进制安 装方式 点外卖+自取,缺啥少啥,自 己解决(绿色软件免安装) 类似于绿色软件,解压既用,可能需要准 备环境, 并非每个软件都有,一般是服务,数据 库,k8s,promethues监控 如果有可以选用,优先选择 yum,没有那就选择二进制方式
  • 安装方式推荐
    • 1️⃣yum优先
    • 2️⃣rpm包
    • 3️⃣二进制
    • 4️⃣ 编译安装

1.1 rpm安装方式

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

1.2 增加-安装rpm包

-ivh

-i install

-v 显示过程

-h 人类可读显示过程

案例01 安装rpm包
#下载软件包
wget --no-check-certificate -P /server/tools/ https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.0-1.el7.x86_64.rpmwget下载指定内容,默认下载到当前目录
-P 下载到指定目录,目录不存在会创建
-no-check-certificate 下载地址https,加上这个选项,如果不加(下载失败)#安装依赖(后面yum部分可以解决软件包依赖和查找依赖)
yum install  -y pcre2#安装软件包zabbix-agent2
rpm -ivh zabbix-agent2-6.0.0-1.el7.x86_64.rpm

如果不安装依赖,则会提示缺少依赖而安装失败

image

1.3 查询 - rpm

  • 检查软件包是否安装成功 ⭐️⭐️⭐️⭐️⭐️
# 书写方法 利用管道+grep进行过滤 推荐
rpm -qa |grep zabbix #不使用管道 直接写软件包的名字
rpm -qa zabbix-agent2
  • 检查软件包的内容(已经安装) ⭐️⭐️⭐️⭐️⭐️
rpm -ql  #listrpm -ql 软件rpm -ql zabbix-agent2

⚠️软件包不等同于命令。

  • 一般情况下一个软件包中有1个命令,tree,telnet软件包。

  • 更多情况中1个软件包下面可能有多个命令,lrzsz(rz,sz),net-tools

  • 查询某个命令或文件属于哪个软件包 (熟悉)

rpm -qf 命令或文件的绝对路径,用于查找已经安装命令或文件属于哪个软件包。 后面我们使用yum provides命令查找即可。

未来 一个软件包中可能包含多个命令.
直接通过yum安装就会失败
cowsay 软件包-> cowsay命令-> animalsay命令-> cowthink命令
yum install -y animalsay 则安装失败.
原因: yum/rpm 安装的是软件包,而不是软件包中的命令或文件.
如何通过命令,文件找出归属的软件包(软件包要已经安装)rpm -qf /sbin/ifconfig 

1.4 修改-升级 ⭐

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

  • 升级软件(小版本

6.0.0 升级到 6.0.7 版本

-Uvh -U表示update/upgrade升级的

wget -P /server/tools/ --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.7-1.el7.x86_64.rpmroot@myvps ~]# rpm -Uvh /server/tools/zabbix-agent2-6.0.7-1.el7.x86_64.rpm 
警告:/server/tools/zabbix-agent2-6.0.7-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...1:zabbix-agent2-6.0.7-1.el7        ################################# [ 50%]
正在清理/删除...2:zabbix-agent2-6.0.0-1.el7        ################################# [100%]
[root@myvps ~]# rpm -qa |grep zabbix
zabbix-agent2-6.0.7-1.el7.x86_64

如果直接使用-ivh安装,会提示配置文件的一些冲突导致安装失败(文件冲突)

1.5 删除

  • 删除对应的软件包(rpm安装或yum安装),其他方式(编译,二进制)无法删除。

  • yum,rpm安装软件,删除软件的时候, 建议通过rpm命令删除 , 非必须不推荐删除软件

  • 删除软件包,-e(erase)

rpm -e 软件包
rpm -e zabbix-agent2
rpm -qa |grep zabbix

5.1加餐

echo $?-----------表示上个命令是否执行成功(0表示成功)

2. yum软件包管理

  • yum是软件包管理器,替我们下载rpm包,替我们安装.
  • 推荐安装 命令补全增强工具
yum install -y bash-completion bash-completion-extras
安装后重新登录Linux,可以对yum选项进行tab键
  • yum安装软件流程
  • yum源的配置(从哪里下)
  • yum命令的配置(如何下载与保存到哪里)
  • yum命令

2.1 yum软件安装全流程

  • yum命令: 下载与安装软件包 配置文件/etc/yum.conf
  • yum仓库/源: 存放软件包地方, 配置目录/etc/yum.repos.d/*.repo repository源

image

2.2 yum源配置 ⭐️⭐️⭐️⭐️⭐️

  • 使用虚拟机(私有云),物理服务器需要配置yum源
  • 如果使用公有云,则一般都是配置好的.
yum源配置文件详解
[base] yum源的名字
name= 说明信息
baseurl= yum源地址,打开后要看到repodata目录,这是yum配置的核心.
enabled=1 是否开启这个yum源
gpgcheck=1 开启软件包检查,未来自建yum仓库可以关闭.
gpgkey 用于检查的秘钥. 如果关闭检查gpgkey省略.
  • 更多操作yum源配置文件详解

image

  • 配置文件格式(掌握格式即可)
[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源列表
yum repolist # repo源 list列表
中间的路过
源标识(repo id)
源标识                  源名称                                      状态
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

目前这里从这里可以看出有base,extras,updates,epel 4个yum源

  • base extras updates 是系统默认的yum源
  • epel 是额外的yum源
  • 如何配置置⭐️⭐️⭐️⭐️⭐️
    • 阿里云 /etc/yum.repos.d/ CentOS-Base.repo epel.repo
https://developer.aliyun.com/mirror/		
#配置base源
1.备份已有yum源的配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.rep
https: /mirrors.aliyun.com/repo/Centos-7.repo# 增强yum源 epel源 ()
yum install -y wget# 2.配置系统默认的源,改为阿里云的。
使用wget或者curl 下载阿里云的yum源的配置文件到/etc/yum.repos.d/目录下
wget -O /etc/yum.repos.d/epel.repo http: /mirrors.aliyun.com/repo/epel-7.repo
下载并改名,存放到指定目录中。# 3.修改了bash,extras,updates是系统默认的yum源,改为了阿里云
https: /mirrors.aliyun.com/
#配置base源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo
https: /mirrors.aliyun.com/repo/Centos-7.repo
#增强yum源 epel源 ()
yum install -y wget
wget -O /etc/yum.repos.d/epel.repo http: /mirrors.aliyun.com/repo/epel-7.repo
  • 清华
https: /mirrors.tuna.tsinghua.edu.cn/
# 对于 CentOS 7 新安装的centos 7 没有配置源
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e
's|^#baseurl=http: /mirror.centos.org|baseurl=https: /mirrors.tuna.tsinghua.edu.cn|g
' \-i.bak \/etc/yum.repos.d/CentOS-*.repo
如果已经配置了阿里云的源,修改为清华源,命令如下
CentOS-Base.repo epel.repo
vim中进行替换
:%s#http: /mirrors.aliyun.com#https: /mirrors.tuna.tsinghua.edu.cn#g
:%s#找啥#替换成啥#g
:1,20s#找啥#替换成啥#g

2.3 yum命令配置文件

未来在正式环境中几乎很少修改,未来也就是我们想把yum安装过的rpm包进行保存

  • 修改/etc/yum.conf,找出keepcache行=0改为=1即可;
/etc/yum.conf yum命令的配置文件
keepcache =0关闭缓存,软件下载安装够自动删除rpm包
=1开启缓存,软件下载安装后保留rpm。(自建yum源)
cachedir yum下载软件包的缓存目录,/var/cache/yum/$basearch/$relesever
logfile yum命令的记录 /var/log/yum.log
 /etc/yum.conf[main]
cachedir=/var/cache/yum/$basearch/$releasever  #缓存目录
keepcache=1                                    #是否保留缓存, 0表示不保留缓存, 1表示保留缓存# 测试 重新安装
yum reinstall -y tree cowsay 

生产应用的建议keepcache,未来没有网络的环境,可以找个有公网的主机,开启keepcache,下载各种服务软件. 保留缓存,通过缓存的rpm包进行安装.

2.4 yum命令详情 ⭐️⭐️⭐️⭐️⭐️

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

4.1增-安装软件

  • yum安装软件包
必会:yum install -y tree
-y表示提示是否安装,是否确认的时候默认选择yes使用较少:重新安装软件包
yum reinstall -y tree

4.2查-检查软件/搜索软件

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

必会:根据软件包内容
yum provides 命令或文件 找出这个命令或文件属于的软件包
#rpm -qf进阶版本 ,软件要已经安装.
ifconfig备用搜素命令
yum search all ifconfig 结果会很多。
一个一个测试。
[root@oldboy-lnb-king-v3 ~]# yum provides ifconfig
中间内容略net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
源   :@base
匹配来源:
文件名   :/usr/sbin/ifconfigifconfig属于的软件包:net-tools
  • 必会:查看yum源信息
yum repolist 
  • 熟悉: 显示所有yum仓库中所有软件,未来用于根据软件包名字查找。
yum list

4.3 删

尽量不要使用yum命令删除软件,删除的时候可能会把依赖删除掉。

  • 删除软件包-yum remove

  • 不推荐使用,remove会删除依赖,如果要删除使用rpm -e

  • 删除/情况本地缓存

  • yum clean all 自建yum仓库需要使用,使用公有的yum源,一般不用.

4.4 改-升级

yum install的时候安装或升级。

  • 更新的命令。

  • yum update 或 yum upgrade,软件或命令有BUG或漏洞,需要更新下。

yum install -y tree   vim wget bash-completion bash-completion-extras lrzsz nettools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc httpd-tools bindutils nethogs expecthttps: /www.jianshu.com/p/604b4d79a227 软件说明

3. Ubuntu系统软件包管理

  • apt源
  • apt/apt-get --------> yum
  • dpkg -----------> rpm

3.1配置源

vim /etc/apt/sources.lis
deb https: /mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https: /mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb https: /mirrors.aliyun.com/ubuntu/ focal-security main restricted universe
multiverse
deb-src https: /mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiversedeb https: /mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe
multiverse
deb-src https: /mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe
multiverse# deb https: /mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe
multiverse
# deb-src https: /mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe
multiversedeb https: /mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe
multiverse
deb-src https: /mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse编辑完成一定运行
apt update #命令,用于生成本地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.表示OK了。

3.2安装软件

安装软件并测试
apt install -y cmatrix lolcat sl cowsay

3.3 检查软件

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/833132.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux12位权限管理体

1. Linux12位权限管理体 1.1 权限管理概述Linux通过rwx3种权限控制系统与保护系统,组成9位权限. Linux权限体系中还有3位特殊权限,组合起来就是12位权限体系. Linux这简单的rwx控制整个Linux系统的安全,权限与用户共同组成Linux系统的安全防护体系.1.2 Linux权限计算 2.0 rwx权…

Java流程控制(三)

用户交互Scanner(java.util.Scanner获取用户的输入)//基本语法 Scanner s = new Scanner(System.in)通过Scanner类的next()与nextLine()方法获取输入的字符串,使用hasNext()与hasNextLine()判断是否还有输入的数据(Next不能得到带有空格的字符串,NextLine可以获得空白)im…

0.1+0.2=0.30000000000000004

看下效果这个网站能找到你想要的答案 https://0.30000000000000004.com/ 十进制转二进制 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。 具体做法是:用2整除十进制整数,可以得到一个商和余数; 再用2去除商,又会得到一个商和余数,如此进行,直到商为小…

「AT_diverta2019_2_e」Balanced Piles 题解

题意描述 有一个长度为 \(N(2\le N \le 10^6)\) 的数组,一开始所有元素均为 \(0\)。 设 \(M\) 为当前数组中的最大元素,\(m\) 是当前数组中的最小元素,你可以执行若干次以下操作:选择一个大小为 \(m\) 的元素,把他变为 \(x\),其中 \(M\le x \le M+D\) 且 \(m<x\)。 求…

团队项目Scrum冲刺-day3

一、每天举行站立式会议 站立式会议照片一张昨天已完成的工作成员 任务陈国金 用户模块的部分接口凌枫 用户登录页面陈卓恒 用户注册界面谭立业 题目搜索页面部分内容廖俊龙 接口测试曾平凡 前端页面测试曾俊涛 题目模块的部分接口薛秋昊 题目提交模块的部分接口今天计划完成的…

Logisim-016-海明解码

仓库地址 https://gitee.com/gitliang/logisim-to-cpu

Logisim-016-海明编码

仓库地址 https://gitee.com/gitliang/logisim-to-cpu

Object

Object 类是 Java 中的顶级父类, 所有的类都直接或间接继承于 Object 类. Object 类中的方法可以被所有子类访问. Object 类没有成员变量, 所以只有无参构造方法. Java 中, 子类的共性才会往父类中去抽取, 然而不可能有一个属性是所有类的共性, 所以在 Object 这个类中, 是没有…

Windows平台下安装与配置MySQL5.7

1.下载mysql安装文件 下载地址:https://downloads.mysql.com/archives/installer/2.安装与配置MySQL 双击打开,接受许可协议,点击下一步:选择自定义安装,点击下一步:选择要安装的产品,点击下一步:点击执行按钮:安装完成,点击下一步进入配置界面:配置界面继续点击下一…

C++ 逆向之常用字符集互转

在过往的编程过程中,常常会因为碰到字符集问题而头痛,而每次在进行字符集转换的时候,各种搜索网上文档,想找字符集转换的示例程序,但是都不尽人意,本篇文章的目的就是彻底解决之前编程过程中对字符集认识以及字符集转换之间似懂非懂、云里雾里的状态,并在文章结尾附上 A…

团队作业4——项目冲刺-1-第二篇

团队作业4——项目冲刺-1-第二篇这个作业属于哪个课程 <计科22级34班>这个作业要求在哪里 <作业要求>这个作业的目标 修改完善需求规格说明书、系统设计、Alpha任务分配计划、测试计划GitHub 链接 https://github.com/tangliweiwww/ChatGpt🍟一、团队 1.团队名称…

[Paper Reading] Fusing Monocular Images and Sparse IMU Signals for Real-time Human Motion Capture

目录名称TL;DRMethodLocal Pose EstimationRNN-P1RNN-P2RNN-P3Global Translation EstimationRNN-T1RNN-T2RNN-T3Hidden State Feedback MechanismExperiment效果可视化总结与发散相关链接 名称 link 时间:23.09 作者与单位:主页: https://github.com/shaohua-pan/RobustCap…