spell 发表于 2017-6-23 11:55:06

linux工具apt、yum和dnf运用

首先,说明一下我的环境:ubuntu16.04。

[*]什么是APT:
  高级包装工具(英语:Advanced Packaging Tools,简称:APT)是Debian及其衍生发行版(如:ubuntu)的软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软 件包,因此简化了 Unix系统                            上管理软件的过程.这次我主要尝试的是apt-get、apt-file、apt-cache和aptitude


[*]

[*]apt-get:


  apt-get 是一个下载安装软件包的简单命令行接口。 最常用的命令是update(更新) 和install(安装)。这个命令的家都比较熟悉就不做截图了。
  命令:
  update - 重新获取软件包列表
  upgrade - 进行更新
  install - 安装新的软件包
  remove - 移除软件包
  autoremove - 自动移除全部不使用的软件包
  purge - 移除软件包和配置文件
  source - 下载源码档案
  build-dep - 为源码包配置编译依赖
  dist-upgrade - 发行版升级
  dselect-upgrade - 依照 dselect 的选择更新
  clean - 清除下载的归档文件
  autoclean - 清除旧的的已下载的归档文件
  check - 检验是否有损坏的依赖
  选项:
  -h 本帮助文件。
  -q 输出到日志 - 无进展指示
  -qq 不输出信息,错误除外
  -d 仅下载 - 不安装或解压归档文件
  -s 不实际安装。模拟执行命令
  -y 假定对所有的询问选是,不提示
  -f 尝试修正系统依赖损坏处
  -m 如果归档无法定位,尝试继续
  -u 同时显示更新软件包的列表
  -b 获取源码包后编译 -V 显示详细的版本号
  -c=? 阅读此配置文件
  -o=? 设置自定的配置选项,如 -o dir::cache=/tmp


[*]

[*]apt-file:


  apt-file是一个软件包查找工具,可以查到软件包所含的文件和安装的位置。(ps:据说是解决依赖的利器,不过我现在还不大懂)


[*]
[*]
[*]安装apt-file


apt-get install apt-file
[*]接着更新apt-file的缓存


apt-file update
[*]查看语法,如图:


apt-file -h





[*]

[*]apt-cache:


  通过apt-cache命令结合一些参数使用能查寻到软件包信息和软件包依赖关系


[*]
[*]apt-cache的常用命令:   showsrc - 显示源文件的各项记录
search - 根据正则表达式搜索软件包列表
depends - 显示该软件包的依赖关系信息
rdepends - 显示所有依赖于该软件包的软件包名字
show - 以便于阅读的格式介绍该软件包
pkgnames - 列出所有软件包的名字
policy - 显示软件包的安装设置状态


[*]  尝试查看火狐



apt-cache show firefox



[*]查看火狐依赖


apt-cache rdepends firefox



[*]查看火狐信息


apt-cache policy firefox  




[*]

[*]aptitude:


  aptitude与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的                                  包。这样,系统中不会残留无用的包,整个系统更为干净。


[*]
[*]安装aptitude


apt install aptitude
[*]查看语法:


aptitude -h



[*]删除旧的已下载软件包文件


aptitude autoclean



[*]扫雷小游戏,在尝试各种语法时无意中发现的,大家有兴趣可以找一找。^V^


  _______________________________________________________________________________________________________________________________
  分割线_______________________________________________________________________________________________________________________________
  接着,换入vmware 12 中的CentOS 7.学习yum命令
  什么是yum:
  YUM(Yellowdog Updater Modified)是一款开源命令行及图形化软件包管理工具,面向基于RPM(红帽软件包管理器)的Linux系统。它让广大用户和系统管理员可以在系统上轻松地安                  装、更新、移除或搜                  索软件包。它由Seth Vidal开发和发布,采用了GPL(通用公共许可证),是一款开源工具。这意味着,谁都可以下载和访问代码,以修复软件错误,开发定制的软件                  包。YUM通过解决软件包的依赖项问题,                  使用众多的第三方软件库来自动安装软件包。
  (先获得管理员权限)


[*]
[*]查看yum语法:


# yum -h
已加载插件:fastestmirror, langpacks
Usage: yum COMMAND
List of Commands:
check          检查 RPM 数据库问题
check-update   检查是否有可用的软件包更新
clean          删除缓存数据
deplist      列出软件包的依赖关系
distribution-synchronization 已同步软件包到最新可用版本
downgrade      降级软件包
erase          从系统中移除一个或多个软件包
fs             Creates filesystem snapshots, or lists/deletes current snapshots.
fssnapshot   Creates filesystem snapshots, or lists/deletes current snapshots.
groups         显示或使用、组信息
help         显示用法提示
history      显示或使用事务历史
info         显示关于软件包或组的详细信息
install      向系统中安装一个或多个软件包
langavailableCheck available languages
langinfo       List languages information
langinstall    Install appropriate language packs for a language
langlist       List installed languages
langremove   Remove installed language packs for a language
list         列出一个或一组软件包
load-transaction 从文件名中加载一个已存事务
makecache      创建元数据缓存
provides       查找提供指定内容的软件包
reinstall      覆盖安装软件包
repo-pkgs      将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。
repolist       显示已配置的源
search         在软件包详细信息中搜索指定字符串
shell          运行交互式的 yum shell
swap         Simple way to swap packages, instead of using shell
update         更新系统中的一个或多个软件包
update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system
updateinfo   Acts on repository update information
upgrade      更新软件包同时考虑软件包取代关系
version      显示机器和/或可用的源版本。

Options:
-h, --help                                        显示此帮助消息并退出
-t, --tolerant                                    忽略错误
-C, --cacheonly                                 完全从系统缓存运行,不升级缓存
-c , --config=          配置文件路径
-R , --randomwait=            命令最长等待时间
-d , --debuglevel=      调试输出级别
--showduplicates      在 list/search            命令下,显示源里重复的条目
-e , --errorlevel=      错误输出级别
--rpmverbosity=               RPM 调试输出级别
-q, --quiet                                       静默执行
-v, --verbose                                     详尽的操作过程
-y, --assumeyes                                 回答全部问题为是
--assumeno                                        回答全部问题为否
--version                                       显示 Yum 版本然后退出
--installroot=                              设置安装根目录
--enablerepo=                               启用一个或多个软件源(支持通配符)
--disablerepo=                              禁用一个或多个软件源(支持通配符)
-x , --exclude=               采用全名或通配符排除软件包
--disableexcludes=                        禁止从主配置,从源或者从任何位置排除
--disableincludes=                        disable includepkgs for a repo or for everything
--obsoletes                                       更新时处理软件包取代关系
--noplugins                                       禁用 Yum 插件
--nogpgcheck                                    禁用 GPG 签名检查
--disableplugin=                        禁用指定名称的插件
--enableplugin=                           启用指定名称的插件
--skip-broken                                     忽略存在依赖关系问题的软件包
--color=COLOR                                     配置是否使用颜色
--releasever=RELEASEVER                           在 yum 配置和 repo 文件里设置 $releasever 的值
--downloadonly                                    仅下载而不更新
--downloaddir=DLDIR                               指定一个其他文件夹用于保存软件包
--setopt=SETOPTS                                  设置任意配置和源选项
--bugfix                                          Include bugfix relevant packages, in updates
--security                                        Include security relevant packages, in updates
--advisory=ADVS, --advisories=ADVS                Include packages needed to fix the given advisory, in updates
--bzs=BZS                                       Include packages needed to fix the given BZ, in updates
--cves=CVES                                       Include packages needed to fix the given CVE, in updates
--sec-severity=SEVS, --secseverity=SEVS         Include security relevant packages matching the severity, in updates
[*]  使用Yum移除软件包
  想完全移除软件包连同所有依赖项,只要运行下面这个命令,如下所示。



yum remove firefox



[*]查看火狐依赖


yum deplist firefox



[*]  列出所有的可用群组软件包



yum grouplist



[*]  列出启用的Yum软件库
  列出系统里面所有启用的Yum软件库,使用下面这个选项



yum repolist



[*]  查看Yum的历史记录
  想查看Yum命令的所有过去的事务,只要使用下面这个命令



yum history



[*]  使用Yum搜索软件包



yum search firefox




  虽然这是我第一次用CentOS也是第一次用yum但是感觉比apt好用,至少是在汉化上。:)
  _______________________________________________________________________________________________________________________________
  分割线
  _______________________________________________________________________________________________________________________________
  什么是dnf:
  DNF新一代的RPM软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近,他取代了YUM,正式成为 Fedora 22 的包管理器。
  DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。
  DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。
  DNF 的最新稳定发行版版本号是 1.0,发行日期是2015年5月11日。 这一版本的额 DNF 包管理器(包括在他之前的所有版本)都大部分采用 Pathon 编写,发行许可为GPL v2.


[*]
[*]为了安装 DNF ,您必须先安装并启用 epel-release 依赖。


# yum install epel-release



[*]  使用 epel-release 依赖中的 YUM 命令来安装 DNF 包



# yum install dnf
[*]查看dnf语法:


dnf -h



[*]  查看 DNF 包管理器版本
  用处:该命令用于查看安装在您系统中的 DNF 包管理器的版本



dnf --version(注意是--)



[*]  查看系统中可用的 DNF 软件库
  用处:该命令用于显示系统中可用的 DNF 软件库



dnf repolist


  之前这里我遇到了一个问题,出现了以下状况:



Failed to open: /var/cache/dnf/x86_64/7/x86_64/7/epel/repodata/908717b2d1a9a0d1642da53884fdce66a4db1b0130e3a0ffb923d596423192c6-updateinfo.xml.bz2.

  解决方法是:



yum remove epel-release

  参考文章:


[*]http://unix.stackexchange.com/questions/250249/error-after-installing-dnf-on-centos-7
[*]http://m.blog.csdn.net/article/details?id=16960149
[*]http://www.iyunv.com/Linux/2015-06/118751.htm
页: [1]
查看完整版本: linux工具apt、yum和dnf运用