设为首页 收藏本站
查看: 2149|回复: 0

[经验分享] linux工具apt、yum和dnf运用

[复制链接]

尚未签到

发表于 2017-6-23 11:55:06 | 显示全部楼层 |阅读模式
首先,说明一下我的环境: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


DSC0000.png





    • apt-cache:


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



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



    •   尝试查看火狐



      apt-cache show firefox

      DSC0001.png


    • 查看火狐依赖


      apt-cache rdepends firefox

      DSC0002.png


    • 查看火狐信息


      apt-cache policy firefox  

DSC0003.png





    • aptitude:


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



    • 安装aptitude


      apt install aptitude
    • 查看语法:


      aptitude -h

      DSC0004.png


    • 删除旧的已下载软件包文件


      aptitude autoclean

      DSC0005.png


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

DSC0006.png

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



    • 查看yum语法:


      [iyunv@localhost qvduoduo]# yum -h
      已加载插件:fastestmirror, langpacks
      Usage: yum [options] 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        向系统中安装一个或多个软件包
      langavailable  Check 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 file], --config=[config file]          配置文件路径
      -R [minutes], --randomwait=[minutes]              命令最长等待时间
      -d [debug level], --debuglevel=[debug level]      调试输出级别
      --showduplicates      在 list/search              命令下,显示源里重复的条目
      -e [error level], --errorlevel=[error level]      错误输出级别
      --rpmverbosity=[debug level name]                 RPM 调试输出级别
      -q, --quiet                                       静默执行
      -v, --verbose                                     详尽的操作过程
      -y, --assumeyes                                   回答全部问题为是
      --assumeno                                        回答全部问题为否
      --version                                         显示 Yum 版本然后退出
      --installroot=[path]                              设置安装根目录
      --enablerepo=[repo]                               启用一个或多个软件源(支持通配符)
      --disablerepo=[repo]                              禁用一个或多个软件源(支持通配符)
      -x [package], --exclude=[package]                 采用全名或通配符排除软件包
      --disableexcludes=[repo]                          禁止从主配置,从源或者从任何位置排除
      --disableincludes=[repo]                          disable includepkgs for a repo or for everything
      --obsoletes                                       更新时处理软件包取代关系
      --noplugins                                       禁用 Yum 插件
      --nogpgcheck                                      禁用 GPG 签名检查
      --disableplugin=[plugin]                          禁用指定名称的插件
      --enableplugin=[plugin]                           启用指定名称的插件
      --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

      DSC0007.png


    • 查看火狐依赖


      yum deplist firefox

      DSC0008.png


    •   列出所有的可用群组软件包



      yum grouplist

      DSC0009.png


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



      yum repolist

      DSC00010.png


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



      yum history

      DSC00011.png


    •   使用Yum搜索软件包



      yum search firefox

      DSC00012.png



  虽然这是我第一次用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

      DSC00013.png


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



      # yum install dnf
    • 查看dnf语法:


      dnf -h

      DSC00014.png


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



      dnf --version(注意是--)

      DSC00015.png


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



      dnf repolist

      DSC00016.png

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



      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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-387316-1-1.html 上篇帖子: 安装ARM交叉编译器 下篇帖子: 【Xilinx-Petalinux学习】-04-OpenCV的移植
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表