基本 yum 命令和用法
 这不是一个 yum 命令的详细列表而是一些基本的,通用的,重要的一些。想要获得详细
 列表请查看帮助页面
 ● yum list [available|installed|extras|updates|obsoletes|all|recent] [pkgspec]
 使用这个命令你可以列出任何在你系统上启用或者安装的仓库里的软件包。它还可
 以列出指定类型的软件包,还可以用包的名字,架构,版本,发行日期作为软件包的规范重
 新定义你的列表。
 ● yum list
 默认情况下无参数的‘yum list‘列出在所有软件仓库里的和系统安装的所有的软件包。
 注意:‘yum list’ 和‘yum list all’的结果是一样的。
 ● yum list available
 列出在所有可用的软件仓库里可以安装的软件包
 ● yum list installed
 这个命令和 rpm -qa 的功能是一样的,可以列出系统上安装的软件列表
 ● yum list extra
 这个命令获得在系统上安装但是没有出现在激活的软件仓库里的软件包列表。用于
 寻找等待升级或者不是从 fedora 更新镜像上安装的软件包。
 ● yum list obsoletes
 这个命令列出系统上安装但是被软件仓库废除的软件包列表
 ● yum list updates
 这个命令列出已安装的可升级的软件包列表
 ● yum list recent
 1
 Page 2
 这个命令列出最近 7 天加入的软件包列表
 ● yum list pkgspec
 这个命令允许你自定义软件包列表
 pkgspec 的例子
 ? yum list zsh //会列出包 zsh 的详细信息,比如有没有安装,包的架构,软件仓库等。
 ? yum list joe/*
 ? yum list /*.i386 //根据通配符列出符合要求的列表
 ● yum install/remove/update
 ……
 ● yum check-update
 很像 yum list updates 但是如果有可用更新的话会返回退出代  100。方便写 shell 脚本
 ? yum grouplist
 ? yum groupinfo
 ? yum groupinstall
 ? yum groupupdate
 ? yum groupremove
 要想查看上面的命令信息请查看 YumGroups 页面
 ● yum info
 显示已安装或者可获得的软件包详细信息,它可以使用和 yum list 一样的参数但最好
 为它指定一个软件包名,例如:
 $ yum info yum
 Installed Packages
 Name : yum
 Arch : noarch
 Version : 3.2.20
 Release : 3.fc10
 Size : 2.5 M
 Repo : installed
 Summary : RPM installer/updater
 URL : http://yum.baseurl.org/
 License : GPLv2+
 Description: Yum is a utility that can check for and automatically download and
 : install updated RPM packages. Dependencies are obtained and downloaded
 : automatically prompting the user as necessary.
 2
 Page 3
 ● yum search
 这个命令可以根据各种元数据查找软件包的信息。它可以接受多个参数.它根据提供信息
 的最高匹配次数输出符合要求的软件包信息列表.yum search 主要查找以下域:name(名
 字),summary(摘要),description(描述),url.如果你想查找什么软件包提供某一个命令,请使用
 yum provides.
 yum search 的例子:
 $ yum search python rsync ssh
 Matched: python, rsync, ssh
 rdiff-backup.i386 : Convenient and transparent local/remote incremental
 : mirror/backup
 Matched: python, rsync
 cobbler.noarch : Boot server configurator
 Matched: python, ssh
 denyhosts.noarch : A script to help thwart ssh server attacks
 pexpect.noarch : Pure Python Expect-like module
 python-paramiko.noarch : A SSH2 protocol library for python
 python-twisted-conch.i386 : Twisted SSHv2 implementation
 Matched: rsync, ssh
 duplicity.i386 : Encrypted bandwidth-efficient backup using rsync algorithm
 pssh.noarch : Parallel SSH tools
 ● yum provides/yum whatprovides
 这个命令可以查找哪个软件包提供请求的相关内容,可以使用通配符。例如:
 $ yum provides MTA
 2ostfix-2.5.5-1.fc10.i386 : Postfix Mail Transport Agent
 Matched from:
 Other : MTA
 exim-4.69-7.fc10.i386 : The exim mail transfer agent
 Matched from:
 Other : MTA
 sendmail-8.14.3-1.fc10.i386 : A widely used Mail Transport Agent (MTA)
 3
 Page 4
 Matched from:
 Other : Provides-match: MTA
 $ yum provides /*bin/ls
 coreutils-6.12-17.fc10.i386 : The GNU core utilities: a set of tools commonly
 : used in shell scripts
 Matched from:
 Filename : /bin/ls
 yum shell
 ……
 ● yum clean
 在正常使用 yum 时,会产生一些元数据和软件包的缓存,这些缓存会占用一定的空
 间。yum clean 命令可以清除这些缓存文件。yum clean 处理的文件一般会被存储在/var/cache/
 yum.
 ● yum clean packages
 清除软件仓库缓存目录里的缓存软件包
 ● yum clean metadata
 清除来自软件仓库的缓存的 xml 元数据。
 ● yum clean dbcache
 yum 正常运行时会伴随着产生或者下载一些 sqlite 数据库文件,这个命令会清除来自
 所有软件仓库的这些缓存文件的拷贝。
 ● yum clean all
 清除来自所有软件仓库的所有的缓存文件。经常使用该命令可以确保不会占用一些
 不必要的空间。
 4
 Page 5
 有用的(而且很少人知道的)rpm 命令
 这里是一个比较有用而且不是很多人知道的 rpm 命令使用列表.如果你想到使用过的更多
 的内容,请随时联系我们以便把它们收录进来.
  rpm -qa --last
 这个命令反序列出已安装的软件包和安装时间,因此,最近安装的软件包会被列在前面.
 例子:
 $ rpm -qa –last | head -14
 gnome-python2-gtkhtml2-2.19.1-16.fc9 Thu 17 Jul 2008 11:40:44 PM EDT
 gnome-python2-libegg-2.19.1-16.fc9 Thu 17 Jul 2008 11:40:43 PM EDT
 gnome-python2-gtkmozembed-2.19.1-16.fc9 Thu 17 Jul 2008 11:40:43 PM EDT
 gnome-python2-extras-2.19.1-16.fc9 Thu 17 Jul 2008 11:40:42 PM EDT
 kernel-2.6.25.11-93.fc9 Thu 17 Jul 2008 04:01:13 PM EDT
 hugin-0.7.0-0.3.20080528svn.fc9 Tue 15 Jul 2008 11:24:37 PM EDT
 hugin-base-0.7.0-0.3.20080528svn.fc9 Tue 15 Jul 2008 11:24:35 PM EDT
 enblend-3.1-0.5.20080529cvs.fc9 Tue 15 Jul 2008 11:24:34 PM EDT
 perl-Image-ExifTool-7.25-2.fc9 Tue 15 Jul 2008 11:24:29 PM EDT
 glew-1.5.0-2.fc9 Tue 15 Jul 2008 11:24:28 PM EDT
 boost-1.34.1-13.fc9 Tue 15 Jul 2008 11:24:27 PM EDT
 libicu-3.8.1-7.fc9 Tue 15 Jul 2008 11:24:25 PM EDT
 plotutils-2.5-5.fc9 Tue 15 Jul 2008 11:24:23 PM EDT
 libpano13-tools-2.9.12-7.fc9 Tue 15 Jul 2008 11:24:22 PM EDT
  rpm -qa –qf “%{size} %{name}.%{arch}/n” | sort -n
 这个命令显示系统上的所有软件包的大小(按字节),名字.架构(显示格式)的列表,并按
 软件包的大小从小到大的顺序排列.
 这个命令在寻找哪些软件包占用比较大的空间时很有用.谨慎使用可以清除系统中不
 必要的占用空间的软件包.
 例子:
 $ rpm -qa –qf “%{size} %{name}.%{arch}/n” | sort -n
 22429792 Miro.i386
 22495239 xulrunner.i386
 23553254 anthy.i386
 27332634 fonts-japanese.noarch
 28805881 ghostscript.i386
 29475842 foomatic.i386
 29613520 selinux-policy-targeted.noarch
 32793230 gnumeric.i386
 36362111 gnome-games.i386
 5
 Page 6
 38401148 gimp.i386
 40969098 evolution.i386
 41452165 perl.i386
 42001812 mono-core.i386
 46827945 samba-common.i386
 48317271 libgweather.i386
 49798328 gutenprint-foomatic.i386
 52051447 kernel.i686
 52058430 kernel.i686
 52071231 kernel.i686
 91610549 glibc-common.i386
  rmp –showrc
 这个命令显示 rpm 资源配置状态,如果你在试图找出在指定的文件中能够使用的变量
 定义时,它将非常有用.这个命令的输入非常长而且复杂,使用 less 通过管道查看比较好.
  rpm -Va –nofiles –nomd5
 这个命令检查你的系统中 rpm 数据库里未解决的包依赖关系,冲突和其他软件包相关
 的问题,在一般情况下它不返回任何东西.
  rpm –eval 
 这个命令根据你指定的宏或者命令输出 rpm 的返回值.
 例子:
 $ rpm –eval “%{_arch} %{_bindir}”
 i386 /usr/bin
 6
 Page 7
 怎样设置你的软件仓库
 概述:
 有时你会发现你需要搜集一些 rpm 格式的软件包,把他们放到一个地方,并且能够通过运
 行系统的 yum 工具去使用它们.这样做其实很简单.
 yum 使用的软件仓库其实就是一个目录.这个目录包含有很多 rpm 软件包和 yum 用来获
 得软件包信息(相关性,文件列表等)的”元信息”.yum 就可以通过 ftp/http 或者文件的 URI(包括
 通过 NFS)获取它.
 步骤:
 1.搜集一些软件包放到一个目录里.你可以创建任意多个子目录,但是必须有一个存放所有
 子目录的顶层目录.我们就在这里创建我们的软件仓库.
 2.yum 使用存储在每一个 rpm 包里的信息摘要去完成它的工作.这个摘要信息
 由’createrepo’程序创建,如果你没有’createrepo’可以通过以下方式安装:
 yum install createrepo
 如果你在不使用 rpm 的机器上组建软件仓库,可以从下面的地址下载’createrepo’
 http://createrepo.baseurl.org/ 然后手动安装.
 安装完’createrepo’之后就可以运行它,它只有一个参数,就是你想创建软件仓库的那个顶层
 目录.假如第一步我们创建的目录是/srv/my/repo,我们只需运行:
 createrepo /srv/my/repo
 你会看到很多内容飞过但是最后应该会以无错结束。最后你应该会有一个叫
 做/srv/my/repo/repodata 的目录,该目录至少含有 4 个文件。
 3. 为了让 yum 知道你的这个软件仓库,你需要把一个.repo 文件加入到你的 yum 的配置
 文件中。在你需要使用这个软件仓库的系统上,在以下目录下创建一个新的文
 件:”’/etc/yum.repos.d/”’。文件名可以是任意合法文件名但是文件扩展名必须是以.repo 结尾。
 这里是我们将其命名为: ‘myrepo.repo’.
 在该文件中我们只需要包含以下内容即可:
 [myrepo]
 name = This is my repo
 baseurl = url://to/get/to/srv/my/repo/
 这就是在次文件中的所有内容. 其中 ‘baseurl’ 行的内容是机器用来获取软件仓库的路径名。
 7
 Page 8
 如果机器可以直接访问它或者把它作为一个文件系统挂载的话你还可以使用如下的 baseurl:
 baseurl = file:///srv/my/repo/
 ”注意:上面的路径中 file 后是三个反斜杠 (/)而不是两个,上面的写法是正确的。
 如果你通过 http 或者 https 服务器访问该文件,你可以使用如下的 baseurl:
 baseurl = http://servername/my/repo
 更多的关于客户端 repo 配置细节可以在 yum.conf 的帮助页面中找到。
 4. 现在当你每次修改诶,删除或者添加一个新的 RPM 包到/srv/my/repo 时你只需要
 重新创建一下软件仓库的 metadata 就可以了。步骤和第二步中的一样。
 == 更多高级选项==
 1. createrepo –update: 有时候你的软件仓库中含有很多的软件包,虽然只是其中的一小
 部分有所改动但是你却不必为每个软件包重新产生元数据,这样做明显太浪费时间了。
 这就是 re –update 选项诞生的原因。你像之前一样运行 createrepo 命令但是添加了–
 update 选项.
 例如:
 createrepo –update /srv/my/repo
 现在 createrepo 只更新那些在上次产生元数据之后被改变,添加或者删除 u 了的项目。
 2. createrepo -x package_file_name: 假设你有几个软件包在你的软件仓库目录中,但是你
 确实不想被人随便看到,你可以使用 createrepo 命令轻松的运行软件包:
 createrepo -x filename -x filename2 -x filename* /srv/my/repo
 如果你像知道更多关于使用 createrepo 来创建和维护你自己的软件包仓库的方法请访问
 8
 Page 9
 createrepo 的帮助文件或者本集中的其他文档。
 Yum 组和软件仓库
 Yum 支持组命令
 * grouplist
 * groupinfo
 * groupinstall
 * groupremove
 * groupupdate
 组从“group”xml 元数据中读取数据,每个软件仓库可选支持组功能。如果 yum 没有一个软
 件仓库支持组功能那么所有的组操作都不能工作。
 * grouplist
 yum grouplist [hidden]
 这个操作将为你的系统在两个单独的列表中列出所有已经安装的和可用的组。如果你
 使用了 hidden 参数那么所有被设置的组在 xml 
 * groupinfo
 yum groupinfo groupname
 该操作将显示每个组的详细信息,包括:描述信息,是必须安装还是默认或者可选安
 装包。
 * groupinstall, groupupdate
 yum groupinstall groupname
 9
 Page 10
 
 
 
 
 
 
 
 
 
 第二步
 要把这个文件包含进软件仓库,只需要告诉 cretaerepo 在创建或者重新创建你自己的软
 件仓库的时候使用该文件就可以了。
 createrepo -g /path/to/mygroups.xml /srv/my/repo
 怎样管理软件仓库
  repomanage
 这个工具允许你为新的或旧的软件包创建列表以传递给其他的命令。如果你想从一个目
 录结构中标记一个指定的软件包集的话,那么该命令很有用。它直接爱软件包上操作,通过
 他们的 rpm epoch,版本和发布信息比较软件包。
 11
 Page 12
 例如:
 repomanage -k2 –old /some/dir | xargs rm -f
 这个操作将列出/some/dir 目录内的陈旧的软件包,同时-k2 命令告诉要抑制版本为 2
 的软件包。
  reposync
 这个工具允许你下载整个远程 yum 软件仓库或者远程软件仓库的一部分。它还将使用一
 个本地目录来与远程的软件仓库同步。
 示例:
 从’updates’软件仓库同步所有软件包到当前目录 :
 reposync –repoid=updates
 仅从 ’updates’软件仓库同步最新的软件包到当前目录:
 reposync -n –repoid=updates
 同步软件包从 ’updates’和 ’extras’软件仓库到当前目录:
 reposync –repoid=updates –repoid=extras
 同步所有软件包从 ’updates’软件仓库到 repos 目录:
 reposync -p repos –repoid=updates
 同步所有的软件仓库至 ‘localcache’ 目录( 每个软件仓库对应自己的路径):
 reposync -p localcache
 允许插件的软件包同步 (当插件要求访问软件仓库时很有用):
 12
 Page 13
 reposync -l
  verifytree
 如果你刚刚做了一个 repo 并且你想要验证在你的 repo 中的所有东西都是正确且可以完成
 其功能的话,你可以运行 erifytree 命令来检查所有的 repodata 和软件包。
 示例:
 $ verifytree /home/skvidal/tmp/empty-repoverifytree /home/skvidal/tmp/empty-repo/
 Checking repodata:
 verifying repomd.xml with yum
 verifying filelists checksum
 verifying primary checksum
 verifying primary_db checksum
 verifying other_db checksum
 verifying other checksum
 verifying filelists_db checksum
 Checking groups (comps.xml):
 verifying comps.xml with yum
 comps file missing or unparseable
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树基础语法内置类208061 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!