Linux软件包管理
文章目录
- DNF软件包
- DNF配置
- 官方--DNF配置
- 本地源配置
- YUM 本地源配置
- DNF本地源配置
- 网络源配置
🏡作者主页:点击!
🤖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_repodnf 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 镜像