转:https://blog.csdn.net/weixin_43880061/article/details/125354573
1 简介
在CentOS系统中,软件管理方式通常有这几种方式: rpm安装 、yum安装、编译安装、二进制安装 。
编译安装,从过程上来讲比较麻烦,包需要用户自行下载,下载的是源码包,需要进行编译操作,编译好了才 能进行安装,这个过程对于刚接触Linux的人来说比较麻烦,而且还容易出错。好处在于是源码包,对于有需 要自定义模块的用户来说非常方便
2 rpm安装
2.1 rpm介绍
rpm也就是red hat package manager,是红帽公司出品的软件包管理工具,能进行软件包的安装,卸载,升级,查询
rpm 是centos/redhat系统里软件安装管理的命令,比yum要底层,yum底层就是调用rpm去安装软件的。
2.2 rpm包管理机制的系统
centos
redhat
opensuse
oracle linux
fedora
2.3 deb包管理机制的系统
debian
Ubuntu
zfsutils-linux_0.8.3-1ubuntu12_amd64.deb
2.4 rpm包
rpm包其实就是redhat系列的Linux系统里的软件包,是别人制作好的可以直接安装使用的软件包,类似于windows里的.exe。rpm包的来源是自己或者公司
2.5 src.rpm
如:openssh-8.0p1-5.el8.src.rpm
源码的rpm包,不能直接安装使用,安装的过程其实是解压src.rpm包得到软件的源代码
2.6 哪里可以下载rpm包
1)镜像文件,centos或者redhat公司制作,使用方法如下
挂载镜像
(1)请将镜像文件放入光驱
(2)使用mount命令挂载
mount /dev/cdrom /mnt
(3)使用
2)官方网站
3)第三方平台
4)自己制作
2.7 使用rpm的缺点
不能自动解决软件包之间的依赖关系,缺乏自动化以及智能化
2.8 rpm命令详解
2.8.1 查询类选项
-q --query 查询
-qa 查询系统里已经安装了的所有的软件
-qi 查询命令的详细信息
-ql 查询已经安装的软件的路径,也就是安装到了哪里
-qc 查询配置文件的路径
-qf 查询已经安装的命令或者是文件是通过哪个软件包安装过来的
-qd 显示文档文件列表
-qpl 查询没有安装的一个软件包,它会安装到哪里
-qpi 查询没有安装的一个软件包,它的信息
2.8.2 安装类选项
-i -- install 安装
-ivh 可以查看到安装的进度
[root@sc-lvm Packages]# rpm -ivh tree-1.7.0-15.el8.x86_64.rpm
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:tree-1.7.0-15.el8 ################################# [100%]
[root@sc-lvm Packages]#
--reinstall 重新安装
[root@huoyrz Packages]# rpm --reinstall tree-1.6.0-10.el7.x86_64.rpm
2.8.3 卸载类选项
-e erase 卸载
[root@sc-lvm Packages]# rpm -e tree
2.8.4 升级类选项
-U 如果软件没有安装,升级操作会自动帮助安装,需要你提供高版本的软件包,不会自动去帮助到哪里下载
[root@sc-lvm Packages]# rpm -U tree-1.7.0-15.el8.x86_64.rpm
3 yum安装
3.1 简介
yum是基于rpm但更胜于rpm的软件管理工具,是python编写的一个软件管理的工具
基于rpm包管理,能够从指定的服务器(yum源)自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
yum的优点:
更方便的管理rpm软件包
自动解决rpm包的依赖关系,可以配置多个资源仓库
rpm/yum 软件安装的过程,本质上就是解压文件,然后拷贝文件到某些目录下的过程
3.2 yum是如何解决依赖关系
3.3 仓库文件目录
1)仓库配置文件目录
/etc/yum.repos.d/
2)仓库文件
都是以.repo结尾的,前面叫什么名字不重要,只是识别
repo文件详解
[root@sc-lvm /]# cd /etc/yum.repos.d/ 是yum会到这个目录下查找repo结尾的文件
[root@sc-lvm yum.repos.d]# ls
CentOS-Linux-AppStream.repo CentOS-Linux-Debuginfo.repo CentOS-Linux-FastTrack.repo CentOS-Linux-Plus.repo
CentOS-Linux-BaseOS.repo CentOS-Linux-Devel.repo CentOS-Linux-HighAvailability.repo CentOS-Linux-PowerTools.repo
CentOS-Linux-ContinuousRelease.repo CentOS-Linux-Extras.repo CentOS-Linux-Media.repo CentOS-Linux-Sources.repo
[root@sc-lvm yum.repos.d]# vim grafana.repo
[grafana] --》yum源的名字,仓库的名字
name=grafana sanchaung --》对这个源的描述
baseurl=https://packages.grafana.com/enterprise/rpm --》仓库的具体位置 源的位置
repo_gpgcheck=1 --》gpg 是一种加密技术 repo_gpgcheck 对源进行检查,是否是真正的grafana的仓库
enabled=1 表示这个源可以使用 1 启用 0 禁用
gpgcheck=1 对这个源里的下载的所有的软件进行gpg校验--》检验所有从这个源下载的软件,防止是假的 --》防伪
gpgkey=https://packages.grafana.com/gpg.key --》具体的加密和解密使用的key的位置
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
#yum源: 软件的仓库
#问渠那得清如许,为有源头活水来
[root@sc-lvm yum.repos.d]# vim CentOS-Linux-BaseOS.repo
[baseos]
name=CentOS Linux $releasever - BaseOS
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra --》查询获取离你的机器最近的镜像的位置
#baseurl=http://mirror.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial --》gppkey的位置
===
3)如何获得仓库文件
1 自己vim一个 grafana
2 下载rpm包安装
3 下载repo文件 docker
4)使用阿里yum源代替系统默认的yum源
使用阿里云的yum源代替默认的yum源,下载软件更快
(1)备份默认源
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
(2)下载新CentOS-Base.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
(3)清除所有缓存
yum clean all
(4)重新生成缓存
yum makecache
3.4 缓存目录
/var/cache/yum/x86_64/7
3.5元数据
元数据就是解决依赖关系的数据:安装一条命令有哪些软件,每个软件依赖哪些软件等
/var/cache/dnf:存放的是各个源解决依赖关系和软件信息的元数据
[root@sc-lvm dnf]# yum clean all -->清除缓存的元数据
3.6 源
1)官方源
包括centos的官方,或者是某个软件的官方(例如nginx)
2)第三方
epel-release
yum install epel-release
安装好后会存放在 /etc/yum.repos.d/epel.repo
3)可以自己制作源
3.7 如何禁用某个源
有如下几种方式
1 enableed=0
2 删除repo文件
3 修改repo文件的后缀名
4 yum-config-manager --enable docker-ce-nightly
yum-config-manager --disable docker-ce-nightly
3.8 命令详解
3.8.1 查询类
yum search
yum list 查看哪些软件安装了,哪些软件没安装,相当于prm -qa
[root@localhost base]# yum list|more
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
已安装的软件包
NetworkManager.x86_64 1:1.18.8-1.el7 @anaconda
NetworkManager-libnm.x86_64 1:1.18.8-1.el7 @anaconda
NetworkManager-team.x86_64 1:1.18.8-1.el7 @anaconda
NetworkManager-tui.x86_64 1:1.18.8-1.el7 @anaconda
acl.x86_64 2.2.51-15.el7 @anaconda
aic94xx-firmware.noarch 30-6.el7 @anaconda
[root@localhost base]# yum list|grep tree
tree.x86_64 1.6.0-10.el7 @base
gomtree.x86_64 0.5.0-0.2.git16da0f8.el7 extras
maven-dependency-tree.noarch 2.0-7.el7 base
maven-dependency-tree-javadoc.noarch 2.0-7.el7 base
ostree.x86_64 2019.1-2.el7 extras
ostree-devel.x86_64 2019.1-2.el7 extras
ostree-fuse.x86_64 2019.1-2.el7 extras
ostree-grub2.x86_64 2019.1-2.el7 extras
subscription-manager-plugin-ostree.x86_64 1.24.51-1.el7.centos updates
texlive-pst-tree.noarch 2:svn24142.1.12-45.el7 base
texlive-pst-tree-doc.noarch 2:svn24142.1.12-45.el7 base
[root@localhost base]#
有@符号的,表示是已经安装,并且@符号后面接的字符串,表示使用那个源安装的
没有@符号,表示软件没有安装,可以通过那个源安装
yum repolist 查看哪些源可以使用
yum provides 查看某个命令是通过哪个软件包安装过来的(本机没有安装的命令也可以查询得到)
[root@sc-lvm mnt]# yum provides iostat
上次元数据过期检查:0:37:14 前,执行于 2021年09月04日 星期六 11时14分13秒。
sysstat-11.7.3-5.el8.x86_64 : Collection of performance monitoring tools for Linux
仓库 :@System
匹配来源:
文件名 :/usr/bin/iostat
sysstat-11.7.3-5.el8.x86_64 : Collection of performance monitoring tools for Linux
仓库 :appstream
匹配来源:
文件名 :/usr/bin/iostat
[root@sc-lvm mnt]# which iostat
/usr/bin/iostat
[root@sc-lvm mnt]# rpm -qf /usr/bin/iostat
sysstat-11.7.3-5.el8.x86_64
[root@sc-lvm mnt]#
3.8.2 安装类
yum install
yum reinstall
3.8.3 卸载类
yum remove
3.8.4 升级类
yum update 默认会升级所有的软件,安装好系统后马上升级所有的软件
3.8.5 清除缓存类
yum clean all 只要我们安装软件,就会自动下载相应源的元数据
3.8.6 其他
yum repolist 查看所有的仓库
[root@sc-lvm yum.repos.d]# yum repolist
仓库 id 仓库名称
appstream CentOS Linux 8 - AppStream
baseos CentOS Linux 8 - BaseOS
docker-ce-stable Docker CE Stable - x86_64
epel Extra Packages for Enterprise Linux 8 - x86_64
epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64
extras CentOS Linux 8 - Extras
mysql-connectors-community MySQL Connectors Community
mysql-tools-community MySQL Tools Community
mysql80-community MySQL 8.0 Community Server
[root@sc-lvm yum.repos.d]#
4 编译安装
4.1 简介
编译安装可以根据需求来定制软件
可以指定安装路径
可以指定某些模块的功能开启或者禁用
4.2 编译安装的优缺点
4.2.1 优点
可以自定义,非常的安全,一般安装的都是最新版本的软件
4.2.2 缺点
速度稍微慢点,步骤多
4.3 举例说明----编译安装nginx
1)下载,然后解压
2)编译前的配置
./configure --prefix=/usr/local/nginx
收集安装的参数:
--with-http_ssl_module 启用
--without-pcre2 禁用
编译前的配置,生成Makefile的文件,指导make工作的配置文件
3)make
将c语言编写的代码文件编译成二进制文件
4)make install
将编译好的二进制文件拷贝指定的安装目录下
5 进制安装
到官方网站下载源码包解压后,直接使用
里面的程序都是一件编译好的可执行的二进制文件
非常的快捷方便
例如安装prometheus和MySQL
6 比喻说明
1)rpm和yum
相当于到专卖店买衣服,款式,颜色,面料等都不可以修改了,喜欢,直接带走。速度快,安装路径都是固定了的,不能修改,部分功能也许没有开启
2)源码编译安装
到裁缝店去定制衣服,颜色,面料,款式都可以自己决定,可以选择定制。时间长,好处功能完全可以自己定制
3)二进制安装
解压后就可以使用,速度快
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-06-01 tomcat报错:java.io.IOException: No space left on device
2021-06-01 Activiti01-基本介绍