当前位置: 首页 > article >正文

Linux软件包管理

文章目录

    • DNF软件包
      • DNF配置
      • 官方--DNF配置
    • 本地源配置
      • YUM 本地源配置
      • DNF本地源配置
    • 网络源配置

https://i-blog.csdnimg.cn/blog_migrate/58966ddd9b29aabe8841f5ec34f0d31c.gif

🏡作者主页:点击!

🤖Linux专栏:点击

⏰️创作时间:2024年11月11日18点30分

在这里插入图片描述

DNF软件包

DNF是新一代的软件包管理器,各方面由于Yum,但是对于旧版本的系统还是使用 Yum

因为yum性能差、内存占用过多、依赖解析速度变慢问题长期得不到解决,得不到解决,yum工具过度依赖yum源,针对这种情况DNF工具应运而生

  • DNF用来管理RPM软件包
  • DNF和YUM完全兼容,提供了YUM兼容的命令行以及为扩展和插件提供api
  • DNF使用需要管理员权限

DNF配置

  • 主要配置文件在 /etc/dnf/dnf.conf,文件中main部分保存着DNF全局配置
  • 通过cat命令,可以查看main具体参数,cat/etc/dnf/dnf.conf
  • cachedir:缓存目录,用于存储RPM包和数据库文件
  • best:升级包时,总是尝试最高版本,如最高版本无法安装则停止,默认值为true
  • installonly_limit:同时安装数量,默认为3不建议降低(软件包为只能安装不能升级的)
  • clean_requirements_on_remove:删除dnf remove期间不再使用的依赖项,如软件包是通过dnf安装的,只能通过 clean_requirements_on_remove删除软件包,软件包是作为依赖项引入的,默认值为 True

nano /etc/dnf/dnf.conf

添加(可以配置多个软件仓库,只要保证软件仓库名称不冲突即可)

name=demo //软件仓库描述
baseurl=url //(此处可以是http、FTP、file本地)

dnf install createrepo //安装软件包管理工具(将所有的软件包安装到 /mnt/local_repo/)
createrepo -database /mnt/local_repo

dnf repolist //使用命令查看新增的repo id

dnf config-manager --set-enable repo id 启动需要Root

dnf config-manager --set-disable repo id 当软件包不再使用,使用命令进行禁用需要Root

dnf search term //DNF能够快速通过RPM软件包名称,搜索软件包(此处只是举例搜索 term)

dnf list | grep httpd //使用命令查看是否安装了软件包,此处推荐使用管道符或者直接写入名称

dnf info httpd //使用命令查看DNF软件包的详细信息

dnf download Packet_name 下载

dnf install Packet_name 安装

dnf remove Packet_name 删除

dnf groups summary //显示软件包组的概括信息,例如已安装包组的数量

dnf group list //可列出软件包和对饮的组ID

dnf group info “name” //列出一个软件包组中必须安装的软件包及可选包

dnf group install group_name/group_id //安装软件包组

dnf group remove group_name/group_id //删除软件包组

dnf check-update //检查更新

dnf update Packet_name / dnf group update Packet_name //更新指定的软件包

除了添加dnf的也可以添加yum的

dnf config-manager -add-demo demo_url //成功执行之后会在/etc/yum/yum.repo.d目录下生成对应的文件

官方–DNF配置

之后查看dnf的文件发现还是没有软件源
dnf配置软件源:dnf config-manager --add-repo file:///mnt/
nano /etc/yum.repo.d/mnt.repo
gpgcheck=1
gpgkey=file:///mnt/RPM-GEG-KEY openEuler
dnf repolist //之后就能发现已经在软件源里面了
dnf config-manager --set-disable mnt_ //禁用软件源mnt,再次使用mnt进行查询就看不到了
dnf config-manager --set-enable mnt_ //重新启用mnt,使用 dnf repolist就又能看见了

dnf search xxx //查询mnt里面所有软件包
dnf list all //列出软件源里面所有的软件包
dnf list installed //列出系统中所有已经安装的软件包
dnf list aviliable //列出系统中所有已经安装的软件包
dnf info xxxx //查看包的详细信息
dnf groups summary //查看可用的软件包组信息
dnf group list //列出可用的软件包组
dnf group --installed -v //查看系统中已经安装的软件包组信息
dnf check-update //查看系统中需要更新的软件包

本地源配置

YUM 本地源配置

简单理解就是实现离线安装

  • 首先确定在 vmware workstation 里面镜像的已连接勾选好

  • 挂载 mount /dev/cdrom /mnt 将镜像进行挂载 //cdrom其实就是sr0的软链接

  • 使用 df -Th 、 df -h 、 lsblk 进行查看挂载是否成功

  • 更换 yum 源,备份 /etc/yum.repos.d 目录下的文件,并新建 local.repo 文件并进行编辑
    [local.repo]
    name=local.repo
    baseurl=file:///mnt //关联镜像挂载点
    gpgcheck=0 //不做完整性校验
    enabled=1 //使能该文件

  • yum clean all 清空缓存,并使用 yum makecache 新建缓存

  • 之后执行安装命令即可
    yum install -y httpd
    yum install -y bind
    yum install -y vsftpd

  • 在 vm 虚拟机上添加 n 块磁盘

  • cdrom 是 sr0 的软链接,那么其他的磁盘链接就是 sr1 sr2 等等

进行安装的时候可能会出现

您已启用软件包 GPG 签名检查,这样很好。不过您尚未安装任何 GPG 公钥。请下载您希望安装的软件签名公钥并安装。假设公钥已下载,安装命令是:
    rpm --import public.gpg.key


或者,在软件源配置中,使用 'gpgkey' 选项指定软件源使用的公钥 URL,这样 yum 会自动安装它。

详情请联系发行版或软件包制作人。

使用命令:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7    完美解决

echo “/dev/sr0 /mnt iso9660 defaults 0 0” >> /etc/fstab ---- 开机自动挂载其中一种方法

vi /etc/rc.d/rc.local ----//编辑文件
mount /dev/cdrom /mnt ----//添加内容
chmod +x rc.local ----//添加执行权限命令
reboot ----//之后执行重启命令的话就会发现还是挂载到 /mnt 下面 ----//开机自动挂载的其他方法

Yum简单命令

yum install -y bind

yum list installed | grep ^bind ---- 只要在这里里面查到的都是已经安装完成的

yum list | grep iptables* ---- 查看可以安装的所有以 iptables 结尾的 rpm 包

yum search httpd

yum info 名称 ----//使用yum 获取软件包信息

yum update ----//升级系统

yum update 名称 ----//升级指定软件包

yum remove 名称 ----//卸载指定软件包

DNF本地源配置

配置DNF源,最好把之前配置的yum源文件名称修改一下

mount /dev/cdrom /mnt    #将sr0挂载到/mnt,使用 df -Th 或者 lsblk 进行查看
dnf config-manager --add-repo file:///mnt/    #直接从/mnt下提取对应的文件生成repo文件
nano /etc/yum.repo.d/mnt.repo
gpgcheck=1    #检查,当然这边直接配置0,就不需要配置校验字段
gpgkey=file:///mnt/RPM-GEG-KEY openEuler    #校验字段
dnf clean all    #清除缓存
dnf makecache    #重新创建缓存
dnf repolist    #之后就能发现已经在软件源里面了,同时也能看见新增的repo id
dnf config-manager --set-disable mnt_(repo id)    #禁用mnt,再次使用dnf repolist进行查询就看不到了,需要Root
dnf config-manager --set-enable mnt_(repo id)    #重新启用mnt,使用 dnf repolist就又能看见了,需要Root

dnf install createrepo    #安装软件包管理工具(将所有的软件包安装到 /mnt/local_repo/)
createrepo -database /mnt/local_repo

dnf download Packet_name    #下载
dnf install Packet_name    #安装
dnf remove Packet_name    #删除


dnf search xxx    //查询mnt里面所有软件包
dnf list all    //列出软件源里面所有的软件包
dnf list installed    //列出系统中所有已经安装的软件包
dnf list aviliable    //列出系统中所有已经安装的软件包
dnf info  xxxx    //查看包的详细信息
dnf groups summary    //查看可用的软件包组信息
dnf group list    //列出可用的软件包组
dnf group --installed -v    //查看系统中已经安装的软件包组信息
dnf check-update    //查看系统中需要更新的软件包

dnf search xxx    #查询mnt里面所有软件包

dnf list | grep xxx    #列出软件源里面所有的软件包,推荐使用管道符
dnf list installed    #列出系统中所有已经安装的软件包
dnf list aviliable    #列出系统中所有已经安装的软件包

dnf info  xxxx    #查看包的详细信息
dnf groups summary    #查看可用的软件包组信息
dnf group list    #列出可用的软件包组和对应组ID
dnf group --installed -v    #查看系统中已经安装的软件包组信息
dnf group info "name"    #列出一个软件包组中必须安装的软件包及可选包

dnf group install group_name/group_id    #安装软件包组
dnf group remove group_name/group_id    #删除软件包组

dnf check-update    #查看系统中需要更新的软件包
dnf update Packet_name  /  dnf group update Packet_name    #更新指定的软件包

网络源配置

华为开源镜像站找 OpenEuler 镜像


http://www.kler.cn/a/389108.html

相关文章:

  • 【测试框架篇】单元测试框架pytest(1):环境安装和配置
  • git commit 校验
  • 生成 Django 中文文档 PDF 版
  • Dial-insight:利用高质量特定领域数据微调大型语言模型防止灾难性遗忘
  • 2-UML概念模型测试
  • 网络安全-Linux基础(bash脚本)
  • 分布式——BASE理论
  • 【harbor】离线安装2.9.0-arm64架构服务制作和升级部署
  • Java:JVM
  • 解决:使用EasyExcel导入Excel模板时出现数据导入不进去的问题
  • React前端框架:现代网页开发的基石(附带构建简单任务管理应用案例代码)
  • 栈(Stack)和队列(Deque、Queue)
  • 16.useForm
  • (附源码)django仓库管理系统-计算机毕设 30542
  • Python数据分析中的Pandas去重操作详解
  • mysql备份数据库及恢复
  • Elasticsearch和Lucene之间是什么关系?(ChatGPT回答)
  • 小米面试:什么是线程池?工作原理是什么?线程池可以动态修改吗?
  • 【python】路径与文件管理:pathlib库的现代用法
  • 【WRF后处理】基于wrf-python处理wrf运行结果wrfout_d01
  • Linux:基本开发工具
  • 【go从零单排】Rate Limiting限流
  • 成都爱尔小儿眼科及视光团队多人当选“近视防控专家委员会委员”
  • CSS3_3D变换(七)
  • Vue CLI 脚手架
  • ubuntu 22.04 防火墙 ufw