二进制的软件包
源码包 代码 c c++ 高级语言

显卡 驱动 windows Linux 使用者

高级语言 越接近人的语言 越高级
低级语言 汇编 机器语言

软件包和rpm

rpm:redhat package manager红帽的包管理器

vsftpd-3.0.3-28.el8.x86_64.rpm rpmfile名字
vsftpd:软件包的名字
3.0.3:软件包的开源版本号
28.el8:红帽的发布版,编译版本 8.4
x86_64:软件包的架构 x86系统 cpu 80286 80386 80486 80x86 x86
.rpm::扩展名

配置yum仓库

image.png
mount /dev/cdrom /mnt/cdrom
yum自动解决依赖性关系
/etc/yum.repos.d/dvd.repo
[BaseOS] #仓库的名字
name=BaseOS #描述仓库的信息
baseurl=file:///mnt/iso/BaseOS/ 指向repodata所在的路径
enabled=1 #是否开启该仓库 1代表开启0代表关闭
gpgcheck=1 #是否检查软件包的完整性,1代表检查 0代表不检查
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 公钥路径

[AppStream]
name= AppStream
baseurl=file:///mnt/iso/AppStream/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

yum参数

yum clean all yum 会把下载的软件包和header存储在cache中,而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令进行清除
yum repolist all 查看我已经拥有的仓库

yum安装

安装软件包
yum install package… 安装软件包
yum group install packagegroup… 安装包组
yum reinstall package… 重新安装软件包
yum localinstall rpm软件包的路径 安装软件包


移除软件包
yum remove package… 移除软件包
yum group remove packagegroup… 移除包组
升级软件包
yum update [package…]


列出软件包的信息:
yum repolist all 列出所有的仓库信息
yum list [all] 列出仓库里面所有的软件包
yum list available|updates|installed 分别列出未安装的|待更新的|已经安装的软件包
yum info package 查看软件包的信息
yum group info packagegroup查看包组的信息
yum group list [hidden] 列出所有的包组
搜索文件和软件包:
yum provides filename 查找文件来自哪个包
yum search keyword 查找与keyward相关的软件包

yum provides “*/command”


查询软件包的历史记录:
yum history 查询yum的执行记录
yum history list 包名 历史记录中搜索某个软件包
yum history info 4 查询第4条历史记录的信息
yum history undo 7 撤销事务

创建私有的yum源

  • 将rpm包放在一个目录下
  • 将该目录通过http或者ftp共享出去
  • 安装createrepo_c软件包,并执行createrepo -v /packagedir

    • 会创建一个repodata的子目录


    只能用在http的源:
    yum install —downloadonly —downloaddir=/root ansible
    yum reinstall —downloadonly —downloaddir=/root ansible
    image.png

    rpm安装卸载升级软件包

  • -i :安装

  • -v:verbose查看详细信息
  • -h:查看进度条
  • -e:erase一处软件包
  • -F:升级已经安装过的软件包
  • -U:升级和安装软件包
  • —replacepkgs:重新安装
  • —oldpackage 安装旧版的软件包
  • —replacefiles 忽略冲突
  • —nodeps 忽略依赖性关系

    rpm查询

    -q:查询软件包是否安装
    -qa:查询已经安装过的软件包
    -qi:查询软件包的信息yum info
    -ql:查询安装该软件包后会生成的文件
    -qc:查询软件包的配置文件
    -qd:查询软件包的帮助文件
    -qf:查找文件来自于哪个软件包
    -q —scripts:查询在安装或者删除软件包的时候运行的shell脚本
    -q —changelog:查询软件包的变更日志
    -qp [-ilcdR —scripts —changelog] rpmfile :查找本地软件包文件的相关信息

    rpm -qp —scripts vsftpd-3.0.3-28.el8.x86_64.rpm
    rpm -qpl vsftpd-3.0.3-28.el8.x86_64.rpm

    rpm2cpio vsftpd-3.0.3-28.el8.x86_64.rpm | cpio -id


    rpm —import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    [root@yutianedu Packages]# rpm -qa | grep gpg-pub
    gpg-pubkey-d4082792-5b32db75
    gpg-pubkey-fd431d51-4ae0493b
    [root@yutianedu Packages]# rpm -K vsftpd-3.0.3-28.el8.x86_64.rpm
    vsftpd-3.0.3-28.el8.x86_64.rpm: digests signatures OK

    mysql 1.0 2.0
    维护软件包的多个版本

    管理软件包的模块流

    image.png
    image.png
    yum module install name[:stream] 查看模块流的信息
    yum module remove name 查看有关各个模块的配置文件所安装的软件包的信息
    切换模块流:
    第一步:应先删除模块流,yum module remove name
    第二步:重置模块流 (会删除模块配置文件),yum module reset name
    第三步:安装并启用其他模块流 ,yum module install name[::stream]

    ./configure 检查当前的编译是否符合要求,还可以指定安装路径,以及指定开启和关闭的功能模块
    make 编译
    make install 安装

    管理服务
    系统启动流程:破解密码 系统修复 进救援模式