linux软件包管理

🎯 本文专栏:Linux
🚀 作者主页:小度爱学习

在这里插入图片描述

1、RPM管理工具

(1)RPM是红帽包管理(Redhat Package Manager)的缩写。

  • 由Red Hat公司提出的一种软件包管理标准。
  • 是Linux各发行版中应用最广泛的软件包格式之一(还有debian的发行版deb安装包)。
  • RPM功能通过rpm命令使用不同参数来实现。

(2)rpm软件包中包含有关于本软件包的相关信息, 便于对软件包信息进行查询。RPM软件包的典型 命名格式:

软件名-版本号-发行号.操作系统版本.硬件平台的类型.rpm ,比如 zsh-5.0.2-14.el7.x86_64.rpm

zsh-50214el7x8664
软件名主版本号次版本号修订号软件发布次数发行商 RHEL7CPU架构平台支持系统位数

(3)rpm包相关网站

http://rpm.pbone.net/

http://rpm.pbone.net/

(4)rpm安装

参数说明
-i, --install安装软件包
–nodeps不验证软件包依赖
-v, --verbose提供更多的详细信息输出
-h, --hash软件包安装的时候列出哈希标记
-U软件包升级
-e软件包卸载

通过本地光盘镜像文件安装rpm包

 #安装tree包 
 [root@master Packages]# rpm -ivh tree-1.7.0-15.el8.x86_64.rpm 
 #卸载tree包 
 [root@master Packages]# rpm -evh tree

从网上下载rpm包并安装http://rpmfind.net/linux/epel/8/Everything/x86_64/Packages/s/sl-5. 02-1.el8.x86_64.rpm

[root@kongd ~]# wget  http://rpmfind.net/linux/epel/8/Everything/x86_64/Packages/s/sl-5.02- 1.el8.x86_64.rpm 

[root@kongd ~]# rpm -ivh sl-5.02-1.el8.x86_64.rpm

(5)rpm查询功能(rpm –q 常与下面参数组合使用)

参数说明
-a查询所有已安装的软件包
-l显示已安装软件包的相关文件列表和信息
-f查询文件所属软件包
-i显示已经安装的rpm软件包信息
#查询某个包有没有安装(包名不能写错)
[root@master Packages]# rpm -q httpd
httpd-2.4.37-43.module+el8.5.0+747+83fae388.3.x86_64
#查询所有已经安装的包
[root@master Packages]# rpm -qa
#查询安装该包后会产生哪些文件
[root@master Packages]# rpm -ql tree
/usr/bin/tree
/usr/lib/.build-id
/usr/lib/.build-id/47
/usr/lib/.build-id/47/6e749c56abc75d25e3bc5c29e83507a605fd53
/usr/share/doc/tree
/usr/share/doc/tree/LICENSE
/usr/share/doc/tree/README
/usr/share/man/man1/tree.1.gz
#查询该文件由哪个软件包产生
[root@master Packages]# rpm -qf /usr/bin/ls
coreutils-8.30-12.el8.x86_64

(6)rpm包签名验证

#系统中数字证书的位置
[root@master Packages]# ll /etc/pki/rpm-gpg/
total 12
-rw-r--r--  1 root root 1073 Apr  1  2020 RPM-GPG-KEY-CentOS-SIGConfigManagement
-rw-r--r--.
1 root root 1672 Oct  9  2021 RPM-GPG-KEY-rockyofficial
-rw-r--r--. 1 root root 1672 Oct  9  2021 RPM-GPG-KEY-rockytesting
#导入密钥
[root@master Packages]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[root@master Packages]# rpm   -qa | grep gpg-pubke
gpg-pubkey-6d745a60-60287f36
注:如果在系统上安装 RPM 包时指定要校验,系统会自动验证包的数字证书,验证通过则可以安装,反之将无法安装
#卸载密钥(不推荐)
[root@master Packages]# rpm -e gpg-pubkey-6d745a60-60287f36

2、YUM/DNF管理工具

YUM (Yellow dog Updater,Modified) ,RHEL8中默认使用的软件批量管理工具由原版本的yum换成了 速度更快的dnf(DNF = Dandified YUM),原有的yum命令仅为dnf的软链接,当然依旧可以使用。

[root@kongd ~]# ll `which yum`
lrwxrwxrwx. 1 root root 5 2月  14 2019 /usr/bin/yum -> dnf-3

(1)YUM/DNF 功能

  • 在线下载、 安装、 卸载、 升级rpm软件包

  • 自动查找并解决rpm包之间的依赖关系,一次性安装所有具有依赖关系的rpm包,而无需管理员逐 个、 手工地去安装每一个rpm包

(2)如何实现yum/DNF安装

系统会去读取 /etc/yum.repos.d/ 目录下的 .repo 结尾的文件,从该文件中读取以下内容实现装包:

  • 包含各种rpm安装文件的软件仓库(rhel8、rhel9有两个仓库,rhel7只有一个仓库)

    • BaseOS存储库:提供一套核心的底层操作系统功能,为基础软件安装库
    • AppStream存储库:包括额外的用户空间应用程序、运行时语言和数据库
  • 软件仓库的地址信息

(3)配置 .repo 文件,即yum源

  • 建立本地源
[root@kongd ~]# mkdir /media/cdrom
#将本地光盘挂载至本地目录/media/cdrom下
[root@kongd ~]# mount /dev/cdrom /media/cdrom
[root@kongd ~]# cat /etc/yum.repos.d/rhel.repo
[RHEL-BaseOS]
name=RHEL-BaseOS
baseurl=file:///media/cdrom/BaseOS
gpgcheck=0
#gpgcheck=1       #如果gpgcheck为1,需要写秘钥文件路径
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[RHEL-Appstream]
name=RHEL-Appstream
baseurl=file:///media/cdrom/AppStream
gpgcheck=0
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[root@kongd ~]# yum repolist
#验证能否装包成功
[root@master ~]# yum install bind-utils -y
  • 建立网络源(Redhat9暂时无公开的网络源,暂不可配置,其他发行版本可自行选择对应网源仓 库)
    • 阿里云网络源,aliyun的镜像站点为https://mirrors.aliyun.com/
#此处以redhat8.5为例
[root@master ~]# cat /etc/redhat-release
Rocky Linux release 8.5 (Green Obsidian)
注:此处先查看自己的发行版本信息,选择相应的仓库。
#仓库文件可以自己写也可以从aliyun网站下载
[root@master ~]# cat /etc/yum.repos.d/aliyun.repo
[appstream]
name=appstream
baseurl=https://mirrors.aliyun.com/rockylinux/8.5/AppStream/x86_64/os/
gpgcheck=0
#gpgcheck=1       #如果gpgcheck为1,需要写秘钥文件路径
#gpgkey=https://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-rockyofficial
[baseos]
name=baseos
baseurl=https://mirrors.aliyun.com/rockylinux/8.5/BaseOS/x86_64/os/
gpgcheck=0
#gpgcheck=1        
#gpgkey=https://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-rockyofficial

- 清华源镜像站点为https://mirrors.tuna.tsinghua.edu.cn/
 - 中国科技大学镜像站点https://mirrors.ustc.edu.cn/
 - 网易开源镜像站http://mirrors.163.com/
 - ……等等很多大学开源镜像站点……
(4)yum/dnf工具管理软件包
​```bash
#查看包、包组相关信息
yum repolist [all] #查看系统中yum资源库配置信息
yum list all #列出仓库里所有可安装的软件包
yum list installed [包名] #列出己经安装的所有的或指定的rpm包(包名中可使用匹配符)
yum info 包名 #查看指定软件包的详细信息
yum grouplist #查看仓库里而所有包组
yum groupinfo 包组名 #查看指定包组里而的详细信息
#安装、更新包和包组
yum install [-y] 包名 #安装指定的软件包,-y则在工作过程中需要使用者响应, 这个选个参数可以直
接回答yes
yum update [-y] 包名 #升级指定的软件包或主机中所有已安装的软件包
yum groupinstall 包组名 #安装指定包组里面的所有包
#卸载软件包
yum remove [-y] 包名 #卸载已经安装在系统中的指定的软件包
#搜索文件由哪个包产生
yum provides 文件名 #查找指定的文件属于哪个包
yum whatprovides /etc/fstab #查看这个文件是由那个包提供的
#模糊搜索包名
yum search 模糊包名 #查看模糊包名的软件包
#清空缓存
yum clean packages all #清除下载到本机的指定的软件包或所有软件包的yum源缓存

3、源代码编译

(1)使用源代码安装软件的优点

  • 由于自由软件的最新版本大都以源码的形式最先发布,编译安装可以获得软件的最新版本,及时修 复bug
  • 如果当前安装的程序无法满足需求,用户可以根据需要重新配置、自由修改源代码,加入新的功能

(2)编译需求

  • 确认源代码编译环境:需安装支持 C/C++程序语言的编译器 yum install gcc
  • 下载相应的源码软件包

(3)安装

[root@localhost ~]# cd /opt/
[root@localhost opt]# curl https://mirrors.tuna.tsinghua.edu.cn/gnu/wget/wgetlatest.tar.gz
-o wget-latest.tar.gz
[root@localhost opt]# tar xf wget-latest.tar.gz
[root@localhost opt]# ll
total 4968
drwxr-xr-x. 14 root root    4096 Feb 27 00:27 wget-1.21.3
-rw-r--r--.  1 root root 5079864 Jun  1 09:36 wget-latest.tar.gz
[root@localhost opt]# cd wget-1.21.3/
[root@localhost wget-1.21.3]# yum install openssl openssl-devel make -y
[root@localhost wget-1.21.3]# ./configure --with-ssl=openssl #针对当前系统、软件环
境,配置好安装参数
[root@localhost wget-1.21.3]# make   # 将源代码文件编译为二进制的可执行程序
[root@localhost wget-1.21.3]# make install #将编译好的程序文件复制到系统中

(4)测试是否安装成功

[root@localhost ~]# wget www.baidu.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值