Linux系统管理体系-软件包管理

1、linux常见的安装软件方式

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

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

2、rpm安装方式

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

1)增加-安装rpm包

perl 复制代码
#下载软件包
wget --no-check-certificate -P /server/tools/ https://*.com/.../*.rpm
​
wget下载指定内容,默认下载到当前目录
-P 下载到指定目录,目录不存在会创建
--no-check-certificate 下载地址https,加上这个选项

2)查询-检查安装

perl 复制代码
#书写方法 利用管道+grep进行过滤 推荐
rpm -qa |grep zabbix
​
#不使用管道 直接写软件包的名字,全名不能出错
rpm -qa zabbix-agent2
​
#检查软件包的内容(已经安装)
rpm -ql 软件名
rpm -ql zabbix-agent2
​
# 查询某个命令或文件属于哪个软件包
[root@nanjing ~]# rpm -qf "$(pwd)"
filesystem-3.2-25.el7.x86_64

软件包不等同于命令。

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

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

3)修改-升级

bash 复制代码
rpm -Uvh /server/tools/新软件.rpm

4)删除

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

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

rpm -e 软件包

3、yum安装方式

yum是软件包管理器,替我们下载rpm包,替我们安装

推荐安装 命令补全增强工具

yum install -y bash-completion bash-completion-extras

1)yum安装软件全流程

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

2)yum源配置

使用虚拟机(私有云),物理服务器需要配置yum源

如果使用公有云,则一般都是配置好的

ini 复制代码
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.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目录,这是yum配置的核心
enabled=1 是否开启是个yum源
gpgcheck=1 开启软件包检查,未来自建仓库可以关闭
gpgkey 用于检查的秘钥,如果关闭检查gpgkey省略

那么我们应该如何配置yum源呢?我们以阿里云为例

链接指引

bash 复制代码
#1、备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#2、下载yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#3、下载增强yum源(企业增强包) https://developer.aliyun.com/mirror/epel
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
#4、刷新缓存
yum makecache

3)yum命令配置文件

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

适用于把常用的rpm包安装后,留下缓存,这样就形成了一个自己的yum源。

修改/etc/yum.conf配置,找出keepcache行=0改为=1即可

keepcache

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

=1开启缓存,软件下载安装后保留rpm包。(自建yum源)

ini 复制代码
[root@nanjing ~]# vim /etc/yum.conf 
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

测试重新安装即可

yum reinstall -y sl

4)yum命令详解

yum命令 格式和说明
yum insatll -y 软件
yum provides 内容
yum search all 内容
yum repolist 查看源地址
删除 yum remove 删除软件包和依赖
yum clean all 清除缓存
yum update/upgrade
选项 -y 遇到yes/no的时候选择yes
a)增-安装软件
makefile 复制代码
必会:yum install -y tree
-y表示提示是否安装,是否确认的时候默认选择yes
熟悉:重新安装软件包
yum reinstall -y tree
b)查-检查软件/搜索软件
less 复制代码
必会:根据软件包内容
yum provides 命令或文件 找出这个命令或文件属于的软件包
#rpm -qf进阶版本,软件要已经安装
备用搜索命令
yum search all ifconfig 
结果会很多。一个一个测试。

查看yum源信息

yum repolist

显示yum仓库中所有软件

yum list
c)删

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

删除软件包yum remove

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

删除/情况本地缓存.

yum clean all 自建yum仓库需要使用,使用公有云一般不需要使用

d)改-升级

yum insatll 的时候安装或升级

专用更新的命令

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

【必备】那些年想用缺没装的软件(Linux必备工具及软件包名称)

kotlin 复制代码
tree   vim wget  bash-completion  bash-completion-extras  lrzsz  net-tools sysstat  iotop iftop htop unzip nc nmap telnet bc  psmisc httpd-tools  bind-utils nethogs expect
相关推荐
初学者丶一起加油3 分钟前
C语言基础:指针(数组指针与指针数组)
linux·c语言·开发语言·数据结构·c++·算法·visual studio
沛沛老爹34 分钟前
CI/CD是什么?
运维·git·ci/cd
一只搬砖的猹37 分钟前
cJson系列——常用cJson库函数
linux·前端·javascript·python·物联网·mysql·json
IPdodo全球网络服务1 小时前
如何通过TikTok引流到私域流量池
运维·服务器·网络
莫固执,朋友1 小时前
Linux下编译 libwebsockets简介和使用示例
linux·websocket·音视频
IT 古月方源2 小时前
关于高级acl的配置和讲解
运维·开发语言·网络·tcp/ip·智能路由器
DCTANT2 小时前
【合作原创】使用Termux搭建可以使用的生产力环境(八)
linux·debian·idea·termux·vnc·xfce4·termux-x11
Tester_孙大壮2 小时前
运维相关知识科普
大数据·运维·数据库
开疆智能2 小时前
ModbusTCP转Profinet:工业通信的利器
linux·服务器·网络
Carry_NJ2 小时前
docker-compose样例
运维·docker·容器