【Linux】yum/rpm/dnf/apt-get/dpkg/brew命令以及区别

目录

简略说明

详细说明

Yum

apt-get

dnf

 Homebrew

区别

YUM和DNF的区别

Yum和apt-get的区别

Yum和rpm的区别

常用命令

yum/dnf 常用命令

rpm命令

linux命令好玩的命令


简略说明

apt-get 是德班系(Debian、Ubuntu等)的软件管理命令

yum 是红帽系(Redhat、Centos、Fedora等)的软件包管理命令

rpm  是红帽系(Redhat、Centos、Fedora等)的软件包管理命令,但rpm不会管理依赖关系。              yum会自动管理依赖关系,底层调用rpm管理软件包

dnf(全称为Dandified yum)是新一代的rpm软件包管理器,目前和YUM共存。但Fedora 22 中,它取代了yum,正式成为 Fedora 22 的包管理器。

详细说明

Yum

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum的用法:https://blog.csdn.net/bandaoyu/article/details/108254624

apt-get

apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。

dnf

DNF (全称为Dandified yum)是新一代的rpm软件包管理器,他首先出现在 Fedora 18 这个发行版中,目前和YUM共存。但最近,它取代了yum,正式成为 Fedora 22 的包管理器

DNF克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。

DNF使用Hawkey库,该库解析RPM依赖性以在客户端计算机上运行查询。 它们基于libsolv构建,libsolv是一种使用可满足性算法的程序包相关性求解器。 您可以在libsolv的GitHub存储库中找到有关该算法的更多详细信息。

 Homebrew

linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有yum,Ubuntu有apt-get

神马,你用mac os,不好意Mac os木有类似的东东,泪奔中几经折腾总算找到了第三方支持:Homebrew,Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get、yum神器

区别

YUM和DNF的区别

dnf(全称为Dandified yum)是新一代的rpm软件包管理器,DNF克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。目前和YUM共存,未来应该会逐步取代。

两者的参数和使用方式区别很小,使用方法大致相同,常用命令并无区别,推荐使用dnf代替yum。

2.5 DNF的优势


DNF使用C语言库hawkey进行软件包依赖关系解析,效率提升,内存消耗降低。
DNF如果配置和启用的库没有响应,DNF将跳过它并使用可用的repos继续事务,而不会像YUM,如果配置库不可用,YUM将立即停止工作。


2.6 DNF的不足

在 DNF 中没有 –skip-broken 命令,并且没有替代命令供选择。
在 DNF 中没有判断哪个包提供了指定依赖的 resolvedep 命令。
在 DNF 中没有用来列出某个软件依赖包的 deplist 命令。
当你在 DNF 中排除了某个软件库,那么该操作将会影响到你之后所有的操作,不像在 YUM 下那样,你的排除操作只会咋升级和安装软件时才起作用。
 

(摘自:Linux环境下YUM和DNF详细介绍_https://blog.csdn.net/xaosky/article/details/123034396)

源/软件仓

默认情况下,RHEL、CentOS、OEL的7和8版本系统下,YUM/DNF软件仓库的配置文件都存放在/etc/yum.repo.d/目录下,以repo作为后缀。

Yum和apt-get的区别

[Linux] yum和apt-get用法及区别

一般来说著名的linux系统基本上分两大类:

1.RedHat系列:Redhat、Centos、Fedora等

2.Debian系列:Debian、Ubuntu等

RedHat 系列 
1 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数” 
2 包管理工具 yum 
3 支持tar包

Debian系列 
1 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数” 
2 包管理工具 apt-get 
3 支持tar包

tar 只是一种压缩文件格式,所以,它只是把文件压缩打包而已。 
rpm 相当于windows中的安装文件,它会自动处理软件包之间的依赖关系。 
优缺点来说,rpm一般都是预先编译好的文件,它可能已经绑定到某种CPU或者发行版上面了。 
tar一般包括编译脚本,你可以在你的环境下编译,所以具有通用性。 
如果你的包不想开放源代码,你可以制作成rpm,如果开源,用tar更方便了。 
tar一般都是源码打包的软件,需要自己解包,然后进行安装三部曲,./configure, make, make install. 来安装软件。

Yum和rpm的区别

https://blog.csdn.net/lxlmycsdnfree/article/details/80843197

yum 是rpm的前端,yum 最终会调用rpm。因为rpm不会自己处理依赖关系,所以当出现依赖问题时,需要人工去处理。yum 调用rpm当出现依赖问题时会自动处理依赖关系。

常用命令

yum/dnf 常用命令


前提:下面的内容主要体现DNF命令操作,如无特别说明,YUM命令同样适用。

查看系统中可用的软件仓库

# dnf repolist

查看系统中可用和不可用的所有的软件仓库

# dnf repolist all

列出软件仓库中的所有RPM软件包
# dnf list

列出软件仓库中所有已安装的 RPM软件包
# dnf list installed

列出软件仓库中所有可供安装的RPM软件包
# dnf list available

搜索软件仓库中的RPM软件包
# dnf search vsftpd

查找某一文件的提供者
# dnf provides vsftpd

查看软件包详情
# dnf info vsftpd

安装软件包及其依赖的其他软件包
# dnf install vsftpd

# dnf install vsftpd -y

删除软件包
# dnf remove vsftpd

删除无用孤立的软件包
# dnf autoremove

删除缓存的无用软件包
# dnf clean all

获取有关某条命令的使用帮助
# dnf help clean

获取软件仓库中的软件包列表到缓存中
# dnf makecache

更新软件仓库中的软件包列表
# dnf check- update

查看 DNF 命令的执行历史
# dnf history

查看所有的软件包组
# dnf grouplist 

安装一个软件包组
# dnf groupinstall ‘System Tools’

# dnf groupinstall ‘System Tools’ -y

卸载一个软件包组
# dnf groupremove ‘System Tools’

# dnf groupremove ‘System Tools’ -y

从特定的软件包库安装特定的软件
# dnf -enablerepo=epel install vsftpd

重新安装特定软件包
# dnf reinstall vsftpd

更新系统中所有需要更新的包
# dnf update

更新一个特定的软件包
# dnf update vsftpd

列出所有命令及其用途
# dnf help
 

rpm命令

rpm   -i	        ###安装
rpm   -v	        ###显示过程
rpm   -h 	hash    ###进度
rpm	  -e	        ###卸载
rpm	  -q 包名        ###查看包是否已经安装
rpm   -qa           :查询系统中所有安装的软件包
rpm   -qi 包名      :查询软件包的详细信息
rpm   -ql	        ###命令查询软件包的文件列表,查看软件在系统中的安装文件路径
rpm   -qR 包名       :查询软件包的依赖关系
rpm   -qlp	        ###查看未安装的软件包在系统中如果安装后产生文件的路径
rpm   -p	        ###软件包
rpm	  -a	        ###所有
rpm   -qf	        ###根据系统文件找出此文件属于哪个安装包
rpm   -qf 系统文件名
rpm	  -qc	        ###查看软件的配置文件名称
rpm	  -qd	        ###查看软件的说明
rpm   --scritps	    ###查看脚本
rpm	  --kv	        ###检测软件包是否被篡改
rpm	  --nodeps	    ###安装软件忽略软件依赖
rpm   --force	    ###强行安装软件


1.--nodeps就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了--nodeps你就能装上了。
2.--force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用--force强制安装。


i -> 安装
v -> 啰嗦模式
h -> 进度条
e -> 卸载
q -> 查询
a -> 所有
l -> 显示rpm中的文件.



-ivh:安装显示安装进度--install--verbose--hash
-Uvh:升级软件包--Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包
 

rpm -q samba //查询程序是否安装

rpm -ivh  /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm //按路径安装并显示进度
rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm    //指定安装目录

rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm    //用来检查依赖关系;并不是真正的安装;
rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm //新版本降级为旧版本

rpm -qa | grep httpd      #[搜索指定rpm包是否安装]--all搜索*httpd*
rpm -ql httpd         #[搜索rpm包]--list所有文件安装目录

rpm -qpi Linux-1.4-6.i368.rpm #[查看rpm包]--query--package--install package信息
rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--file
rpm -qpR file.rpm       #[查看包]依赖关系
rpm2cpio file.rpm |cpio -div    #[抽出文件]

rpm -ivh file.rpm  #[安装新的rpm]--install--verbose--hash
rpm -ivh

rpm -Uvh file.rpm    #[升级一个rpm]--upgrade
rpm -e file.rpm      #[删除一个rpm包]--erase

常用参数:

Install/Upgrade/Erase options:

复制代码
-i, --install                     install package(s)
-v, --verbose                     provide more detailed output
-h, --hash                        print hash marks as package installs (good with -v)
-e, --erase                       erase (uninstall) package
-U, --upgrade=<packagefile>+      upgrade package(s)
--replacepkge                    无论软件包是否已被安装,都强行安装软件包
--test                            安装测试,并不实际安装
--nodeps                          忽略软件包的依赖关系强行安装
--force                           忽略软件包及文件的冲突

Query options (with -q or --query):
-a, --all                         query/verify all packages
-p, --package                     query/verify a package file
-l, --list                        list files in package
-d, --docfiles                    list all documentation files
-f, --file                        query/verify package(s) owning file

https://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/08/2203153.html


# 覆盖安装,并自动卸载老版本
rpm -Uvh xxx.rpm --nodeps --force

# 覆盖安装,忽略package xxx is already installed错误
rpm -ivh --replacepkgs xxx.rpm
# 文件冲突,忽略报错:file filepath from install of xxx1 conflicts with file from package xxx2
rpm -ivh --replacefiles xxx.rpm
以为你是流过泪的人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42427540/article/details/117035848


==查rpm包信息:

[root@localhost ~]# yum info zlib-1.2.3-7.el5
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Installed Packages
Name       : zlib
Arch       : i386
Version    : 1.2.3
Release    : 7.el5
Size       : 77 k
Repo       : installed
Summary    : The zlib compression and decompression library.
URL        : http://www.gzip.org/zlib/
License    : BSD
Description: Zlib is a general-purpose, patent-free, lossless data compression
           : library which is used by many different programs.

Name       : zlib
Arch       : x86_64
Version    : 1.2.3
Release    : 7.el5
Size       : 87 k
Repo       : installed
Summary    : The zlib compression and decompression library.
URL        : http://www.gzip.org/zlib/
License    : BSD
Description: Zlib is a general-purpose, patent-free, lossless data compression
           : library which is used by many different programs.

原文链接:https://blog.csdn.net/u010039418/article/details/81231785



==获取rpm包名称/架构



使用大杀器,rpm –qf,注意是两个-,命令全称是,

rpm --queryformat [QUERYFMT]
1
其中QUERYFMT是一系列rpm的查询标志,可以通过以下命令查询有哪些标志可以使用,

[root@localhost ~]# rpm --querytags
ARCH
ARCHIVESIZE
BASENAMES
BUGURL
BUILDARCHS
BUILDHOST
BUILDTIME
C
CHANGELOGNAME
CHANGELOGTEXT
CHANGELOGTIME
....

默认情况下,rpm -q 的格式为,

[root@localhost ~]# rpm -q --qf '%{name}-%{version}-%{release}\n' zlib
zlib-1.2.3-7.el5
zlib-1.2.3-7.el5
[root@localhost ~]# 

不带有架构信息,因此觉得有两个相同版本的包。所以我们可以在查询格式中定义架构信息,这样就能区分出两个包。

[root@localhost ~]# rpm -q --qf '%{name}-%{version}-%{release}.%{arch}\n' zlib
zlib-1.2.3-7.el5.x86_64
zlib-1.2.3-7.el5.i386
[root@localhost ~]# 

原文链接:https://blog.csdn.net/u010039418/article/details/81231785

linux命令好玩的命令

传送门好玩的linux命令 - Elite_Y - 博客园 
就写一个sudo homebrew install sl 

转自:http://blog.csdn.net/yi_an/article/details/54141766

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值