软件包管理
-
tar
- *.Z 使用compress压缩的文件
*.zip 使用zip压缩的文件
*.gz 使用gzip压缩
*.bz2 使用bzip2压缩
*.xz 使用xz压缩
*.tar 使用tar工具打包,没有压缩
*.tar.gz 使用tar工具打包,经过gzip压缩
*.tar.bz2 使用tar工具打包,经过bzip2压缩
*.tar.xz 使用tar工具打包,经过xz压缩
-
gzip
-
-
Usage: gzip [OPTION]... [FILE]...
-c 保留源文件
-d 解压缩
-h 显示帮助
-t 检查压缩文件的数据一致性,用来确定压缩文件是否有错误
-v 显示压缩包的相关信息,包括压缩比等
-V 显示版本号
-1 压缩最快,压缩比低
-9 压缩最慢,压缩比高
- 举例:
- [root@wood wqf]# gzip -c ifcfg-wqc > ifcfg-wqc.gz
[root@wood wqf]# ll
总用量 24
-rw-rw-rw- 1 root root 0 5月 15 09:51 hjh.txt
-rw-r--r-- 1 root root 365 5月 20 10:44 ifcfg-wqc
-rw-r--r-- 1 root root 274 5月 20 10:50 ifcfg-wqc.gz
-rw-r--r-- 1 root root 361 5月 20 10:44 ifcfg-wqf
-rw-r--r-- 1 root root 273 5月 20 10:50 ifcfg-wqf.gz
[root@wood wqf]# gzip -d ifcfg-wqc.gz
[root@wood wqf]# gzip -d ifcfg-wqf.gz
[root@wood wqf]# ll
总用量 16
-rw-rw-rw- 1 root root 0 5月 15 09:51 hjh.txt
-rw-r--r-- 1 root root 365 5月 20 10:50 ifcfg-wqc
-rw-r--r-- 1 root root 361 5月 20 10:50 ifcfg-wqf
-rw-r--r-- 1 root root 2381 5月 20 10:41 passwd
-
-
bzip2
-
[root@localhost test]# bzip2 -h
-h 帮助
-d 解压
-z 压缩 默认值
-k 保留源文件
-v 查看版本信息
-1 ..-9 同gzip相同
bzip2的使用与gzip相同,两种工具的区别就是压缩算法不同,bzip2的压缩比更好一些,bzip的包查看的时候使用的是bzcat,bzmore,bzless,bzgrep同gzip用法相同
- 举例:
- [root@wood wqf]# bzip2 -k ifcfg-wqc > ifcfg-wqc.gz2
[root@wood wqf]# ll
总用量 20
-rw-rw-rw- 1 root root 0 5月 15 09:51 hjh.txt
-rw-r--r-- 1 root root 365 5月 20 10:50 ifcfg-wqc
-rw-r--r-- 1 root root 297 5月 20 10:50 ifcfg-wqc.bz2
-rw-r--r-- 1 root root 0 5月 20 11:00 ifcfg-wqc.gz2
-rw-r--r-- 1 root root 361 5月 20 10:50 ifcfg-wqf
-rw-r--r-- 1 root root 2381 5月 20 10:41 passwd - [root@wood wqf]# rm -fr ifcfg-wqc
[root@wood wqf]# bzip2 -d ifcfg-wqc.bz2
[root@wood wqf]# ll
总用量 16
-rw-rw-rw- 1 root root 0 5月 15 09:51 hjh.txt
-rw-r--r-- 1 root root 365 5月 20 10:50 ifcfg-wqc
-rw-r--r-- 1 root root 0 5月 20 11:00 ifcfg-wqc.gz2
-rw-r--r-- 1 root root 361 5月 20 10:50 ifcfg-wqf
-rw-r--r-- 1 root root 2381 5月 20 10:41 passwd
xz
-d 解压缩
-t 检查压缩文件的完整性
-l 查看压缩文件的相关信息
-k 保留源文件
-c 将信息输出到显示器上
-0 ... -9 指定压缩级别
-h 显示帮助
- 举例:
- [root@wood wqf]# xz -k passwd
[root@wood wqf]# ll
总用量 20
-rw-r--r-- 1 root root 2381 5月 20 10:41 passwd
-rw-r--r-- 1 root root 1020 5月 20 10:41 passwd.xz - [root@wood wqf]# rm -fr passwd
[root@wood wqf]# xz -d passwd.xz
[root@wood wqf]# ll
总用量 16
-rw-r--r-- 1 root root 2381 5月 20 10:41 passwd
tar
- 大多数压缩工具只能针对单一文件进行操作,如果你要压缩目录的话就会很麻烦,这时候我们可以使用tar这个打包工具,将目录内的多个文件打包成一个文件,再进行压缩。
用法: tar [选项...] [FILE]...
-C 解压到指定目录
-c 建立tar包
-t 查看tar包内的文件
-x 解压tar包
-p 不修改文件属性
-f 指定文件名称
-j 使用bzip2算法
-J 使用xz算法
-z 使用gzip算法
-P 允许压缩路径中包含有"/"
-v 显示详细信息
-?, --help 查看帮助
--exclude 压缩过程中排除指定的文件
- 举例:
-
- [root@wood wqf]# tar -czf sysconfig.tar.gz sysconfig
[root@wood wqf]# tar -cjf sysconfig.tar.bz2 sysconfig
[root@wood wqf]# tar -cJf yy.tar.xz sysconfig
[root@wood wqf]# ll
总用量 52
-rw-r--r-- 1 root root 365 5月 20 10:50 ifcfg-wqc
-rw-r--r-- 1 root root 361 5月 20 10:50 ifcfg-wqf
-rw-r--r-- 1 root root 2381 5月 20 10:41 passwd
drwxr-xr-x 7 root root 4096 5月 20 10:45 sysconfig
-rw-r--r-- 1 root root 8331 5月 20 11:19 sysconfig.tar.bz2
-rw-r--r-- 1 root root 9074 5月 20 11:19 sysconfig.tar.gz
drwxrwxrwx 3 root root 17 5月 15 10:20 yy
-rw-r--r-- 1 root root 8388 5月 20 11:20 yy.tar.xz
[root@wood wqf]# tar -xf sysconfig.tar.gz
[root@wood wqf]# tar -xf yum.tar.bz2
[root@wood wqf]# ll
总用量 44
drwxr-xr-x 7 root root 4096 5月 20 10:45 sysconfig
-rw-r--r-- 1 root root 9074 5月 20 11:19 sysconfig.tar.gz
drwxr-xr-x 2 root root 57 5月 20 11:25 yum
-rw-r--r-- 1 root root 211 5月 20 11:26 yum.tar.bz2 - [root@wood wqf]# tar -xf yum.tar.xz
[root@wood wqf]# ll
总用量 36
drwxr-xr-x 2 root root 57 5月 20 11:25 yum
-rw-r--r-- 1 root root 211 5月 20 11:26 yum.tar.bz2
-rw-r--r-- 1 root root 232 5月 20 11:28 yum.tar.xz
- [root@wood wqf]# tar -czf sysconfig.tar.gz sysconfig
-
- *.Z 使用compress压缩的文件
rpm
rpm包示例:
dhcp-server- 4.3.6 -30 .el8 .x86_64 .rpm
软件名称 版本 编译次数 适用的系统 适用的平台 后缀名
软件名 就是软件包的名称
版本 每次更新版本号都会改变,用来帮助用户判断软件包新旧的
编译次数 也是帮助用户判断软件包新旧的
适用的系统 在哪个系统上可以安装,CentOS和rhel的多数软件包都是通用的
适用的平台 指的是硬件平台,比如如果你是32位的CPU就无法安装这个软件包
参数
[root@localhost Packages]# rpm -ivh dhcp-server-4.3.6-30.el8.x86_64.rpm
-i 安装
-v 显示详细信息
-h 显示安装进度
-e 卸载
-U 升级,如果系统中有低版本的就会升级,如果系统没有安装相应的包,则安装
-F 有条件的升级,会检测用户指定的软件包是否已安装到linux中
-nodeps 忽略软件包之间的依赖关系
--replacefiles 覆盖文件
--replacepkgs 修复
--force 强制
--test 测试
-q 查询指定的软件包是否安装
-qi 查看指定的软件包的信息,包括开发商,版本,说明
-ql 查看指定软件包中所包含的文件列表
-qc 查看指定软件包的配置文件
-qa 查看本机安装的所有包
-qf 查看一个文件归属于哪个已安装的软件包
-
yum
-
yum的介绍
不管是安装、更新或者删除,YUM都会自动的帮你解决软件间的依赖性问题。通过YUM会比单纯使用rpm来得更加方便。YUM包含下列几项组件:
YUM下载源:如果把所有RPM文件放在某一个目录中,这个目录就可称为“YUM下载源(YUM Repository)”。你也可以把YUM下载源,通过HTTP、FTP等方式分享给其他计算机使用;当然,你也可以直接使用别人建好的YUM下载源来取得需安装的软件。
YUM工具:YUM提供了一个名为yum的命令,你可以使用yum来使用YUM提供的众多功能。
YUM插件:YUM还允许第三方厂商(3rd Party)开发YUM的插件(Plug-in),让用户可以任意的扩充YUM的功能,比如说有的插件可以帮助选择最快的yum源
YUM缓存:YUM运行时,会从YUM下载源获得软件信息与文件,并且暂存于本机的硬盘上。这个暂存的目录,称为“YUM缓存(YUM cache)”。缓存目录为/var/cache/yum
yum源的配置 - 将下载好的rpm软件包存放到一个指定的目录中
[root@localhost ~]# cp /mnt/AppStream/Packages/* myrepo/
从光盘镜像中安装createrepo工具
[root@localhost ~]# yum install createrepo
利用createrepo工具生成软件包之间的依赖关系数据文件
[root@localhost ~]# createrepo myrepo/
建立针对此目录的下载源配置文件
[root@localhost ~]# vim /etc/yum.repos.d/myrepo.repo
[myself]
name=packages
enabled=1
gpgcheck=0
baseurl=file:///root/myself
从新的下载源安装软件包
[root@localhost ~]# yum install httpd
- [root@localhost ~]# yum [OPTIONS...] COMMAND [ARGVS...]
-y 如果遇到问题,代替回答yes
--installroot=/path 指定软件包安装的根目录 - 清除yum缓存
[root@localhost ~]# yum clean all
如果有些时候你发现yum运行不太正常,这可能是yum缓存数据错误导致的,所以你需要将yum的缓存清除
查看软件包
[root@localhost ~]# yum list
查看有哪些可用组
[root@localhost ~]# yum grouplist
查看dhcp-server这个包的信息
[root@localhost ~]# yum info dhcp-server
搜索dhcp-server这个软件包
[root@localhost ~]# yum search dhcp-server
yum安装
安装dhcp-server软件包
[root@localhost ~]# yum install dhcp-server -y
安装一组软件包
[root@localhost ~]# yum groupinstall '系统工具' -y
卸载软件包
删除一个软件包
[root@localhost ~]# yum remove dhcp-server -y
删除一组软件包
[root@localhost ~]# yum groupremove '系统工具' -y
使用epel源
EPEL是一个自由开源的附加软件包仓库,可用于 CentOS 和 RHEL 服务器。顾名思义,EPEL 仓库提供了额外的软件包,这些软件在 CentOS 8 和 RHEL 8 的默认软件包仓库中不可用。
安装epel源
epel地址:https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
[root@localhost ~]# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
-
-
dnf
DNF是新一代的rpm软件包管理器。最早出现在 Fedora 18 这个发行版中,在Fedora 22中正式取代了yum
DNF器克服了YUM的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。
安装
在CentOS7中需要单独安装
yum install epel-release -y
yum install dnf
在CentOS8中系统默认使用的是DNF,我们所看到的yum只是dnf的一个软连接
[root@localhost ~]# which yum
/usr/bin/yum
[root@localhost ~]# ll /usr/bin/yum
lrwxrwxrwx. 1 root root 5 5月 14 2019 /usr/bin/yum -> dnf-3
相关目录和使用
目录
/etc/dnf/dnf.conf 配置文件
/etc/dnf/aliases.d/ 为相关命令定义别名的如dnf alias add rm=remove
/etc/dnf/modules.d&/etc/dnf/modules.defaults.d 模块的设置
/etc/dnf/plugins/ 插件的设置
/etc/dnf/protected.d/ 受保护的软件包的设置
/etc/dnf/vars/ 变量设置
查看DNF的版本
[root@localhost ~]# dnf --version
查看dnf的可用软件仓库
[root@localhost ~]# dnf repolist
查看所有软件仓库
[root@localhost ~]# dnf repolist all
查看已安装的软件包
[root@localhost ~]# dnf list installed
查看可安装的软件包
[root@localhost ~]# dnf list available
搜索dhcp-server
[root@localhost ~]# dnf search dhcp-server
查询一个文件是由哪个软件包提供的
[root@localhost ~]# dnf provides /usr/sbin/dhclient
查询软件包详细信息
[root@localhost ~]# dnf info dhcp-server
安装软件包
[root@localhost ~]# dnf install dhcp-server
升级软件包
[root@localhost ~]# dnf update systemd
检查软件包的更新
[root@localhost ~]# dnf check-update
升级所有可升级的软件包
[root@localhost ~]# dnf update
升级所有可升级的软件包
[root@localhost ~]# dnf upgrade
卸载软件包
[root@localhost ~]# dnf remove dhcp-server
[root@localhost ~]# dnf erase dhcp-server
删除无用孤立的软件包
[root@localhost ~]# dnf autoremove
清除缓存中的无用数据
[root@localhost ~]# dnf clean all
获取某一个命令的帮助
[root@localhost ~]# dnf help clean
获取dnf命令的帮助
[root@localhost ~]# dnf help
查看历史命令
[root@localhost ~]# dnf history
重新执行历史命令中的第19条
[root@localhost ~]# dnf history redo 19
查看软件包组
[root@localhost ~]# dnf grouplist
安装一组软件包
[root@localhost ~]# dnf groupinstall '系统工具'
升级一组软件包
[root@localhost ~]# dnf groupupdate '系统工具'
删除一组软件包
[root@localhost ~]# dnf groupremove '系统工具'
从特定的软件仓库安装软件包
[root@localhost ~]# dnf --enablerepo=epel install zabbix
将软件包更新到最新的稳定版
[root@localhost ~]# dnf distro-sync
重新安装指定的软件包
[root@localhost ~]# dnf reinstall dhcp-server
降级软件包
[root@localhost ~]# dnf downgrade dhcp-server