赞
踩
目录
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(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum的用法:https://blog.csdn.net/bandaoyu/article/details/108254624
apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。
DNF (全称为Dandified yum)是新一代的rpm软件包管理器,他首先出现在 Fedora 18 这个发行版中,目前和YUM共存。但最近,它取代了yum,正式成为 Fedora 22 的包管理器
DNF克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。
DNF使用Hawkey库,该库解析RPM依赖性以在客户端计算机上运行查询。 它们基于libsolv构建,libsolv是一种使用可满足性算法的程序包相关性求解器。 您可以在libsolv的GitHub存储库中找到有关该算法的更多详细信息。
linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有yum,Ubuntu有apt-get
神马,你用mac os,不好意Mac os木有类似的东东,泪奔中几经折腾总算找到了第三方支持:Homebrew,Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get、yum神器
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作为后缀。
[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. 来安装软件。
https://blog.csdn.net/lxlmycsdnfree/article/details/80843197
yum 是rpm的前端,yum 最终会调用rpm。因为rpm不会自己处理依赖关系,所以当出现依赖问题时,需要人工去处理。yum 调用rpm当出现依赖问题时会自动处理依赖关系。
前提:下面的内容主要体现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 -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命令 - Elite_Y - 博客园
就写一个sudo homebrew install sl
转自:http://blog.csdn.net/yi_an/article/details/54141766
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。