- 浏览: 51108 次
- 性别:
- 来自: 深圳
最新评论
Page 1
基本 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 <an rpm macro>
这个命令根据你指定的宏或者命令输出 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 <uservisible> 标记文件中将被设置为“No”。
* groupinfo
yum groupinfo groupname
该操作将显示每个组的详细信息,包括:描述信息,是必须安装还是默认或者可选安
装包。
* groupinstall, groupupdate
yum groupinstall groupname
9
Page 10
yum groupupdate groupname
尽管以上两个命令有所不同,但是他们执行同样的功能。他们将尝试安装/升级所有
在组中类型为“defalut”或者“mandatory”的包 (默认做此操作)。 (要改变这种类型的包,请
修改 yum.conf 配置文件中的 group_package_types 选项)并且此操作会安装任何安装或升级所
需要的额外依赖关系包。
* groupremove
yum groupremove groupname
这个操作将删除在命名组中的任何类型的所有包,并且所有依赖于该组中的包也会被
删除。
在你的软件仓库中设置属于自己的组
这个过程相当的简单,你只需要做以下两步工作即可::
1. 在组中创建一个 yum 所使用的格式的组文件。
2. 告诉 createrepo 包含你的软件仓库中的该组文件。
第一步
你可以打开一个文本编辑器并且手动创建一个组 xml 文件或者你也可以用 yum-utils 中的
yum-groups-manager 命令来完成。
像下面这样使用 groups-create 命令:
yum-groups-manager -n "My Group" --id=mygroup --save=mygroups.xml --mandatory
yum glibc rpm
之后你将看到一个如下文件:
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
10
Page 11
<comps>
<group>
<id>mygroup</id>
<default>False</default>
<uservisible>True</uservisible>
<display_order>1024</display_order>
<name>My group</name>
<description></description>
<packagelist>
<packagereq type="mandatory">glibc</packagereq>
<packagereq type="mandatory">rpm</packagereq>
<packagereq type="mandatory">yum</packagereq>
</packagelist>
</group>
</comps>
第二步
要把这个文件包含进软件仓库,只需要告诉 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
基本 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 <an rpm macro>
这个命令根据你指定的宏或者命令输出 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 <uservisible> 标记文件中将被设置为“No”。
* groupinfo
yum groupinfo groupname
该操作将显示每个组的详细信息,包括:描述信息,是必须安装还是默认或者可选安
装包。
* groupinstall, groupupdate
yum groupinstall groupname
9
Page 10
yum groupupdate groupname
尽管以上两个命令有所不同,但是他们执行同样的功能。他们将尝试安装/升级所有
在组中类型为“defalut”或者“mandatory”的包 (默认做此操作)。 (要改变这种类型的包,请
修改 yum.conf 配置文件中的 group_package_types 选项)并且此操作会安装任何安装或升级所
需要的额外依赖关系包。
* groupremove
yum groupremove groupname
这个操作将删除在命名组中的任何类型的所有包,并且所有依赖于该组中的包也会被
删除。
在你的软件仓库中设置属于自己的组
这个过程相当的简单,你只需要做以下两步工作即可::
1. 在组中创建一个 yum 所使用的格式的组文件。
2. 告诉 createrepo 包含你的软件仓库中的该组文件。
第一步
你可以打开一个文本编辑器并且手动创建一个组 xml 文件或者你也可以用 yum-utils 中的
yum-groups-manager 命令来完成。
像下面这样使用 groups-create 命令:
yum-groups-manager -n "My Group" --id=mygroup --save=mygroups.xml --mandatory
yum glibc rpm
之后你将看到一个如下文件:
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
10
Page 11
<comps>
<group>
<id>mygroup</id>
<default>False</default>
<uservisible>True</uservisible>
<display_order>1024</display_order>
<name>My group</name>
<description></description>
<packagelist>
<packagereq type="mandatory">glibc</packagereq>
<packagereq type="mandatory">rpm</packagereq>
<packagereq type="mandatory">yum</packagereq>
</packagelist>
</group>
</comps>
第二步
要把这个文件包含进软件仓库,只需要告诉 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
发表评论
-
[转]Linux下查看文件和文件夹大小的df和du命令
2012-08-13 10:54 943当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是 ... -
编译程序的.deps目录和.Po文件作用
2012-08-04 17:46 0当使用由automake产生的Makefile文件编译程序时, ... -
[转]Linux信号量 sem_t简介
2012-08-02 08:03 3595信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函 ... -
Linux编译安装软件过程中设置环境变量
2012-07-31 20:28 3283Linux下很多软件需要自己由源代码编译出才能使用,特别是使用 ... -
profile bashrc bash_profile 之间的区别和联系【转】
2012-07-31 19:51 1359/etc/profile:此文件为系统 ... -
[转]Vim+cscope+ctags+tags阅读源代码
2012-03-23 10:06 1387[size=small]linux源代码提供了制作cscope ... -
[转]linux tee命令参数及用法详解---读取输入写入文件
2012-03-23 09:20 2062awk命令简介 在shell命令 ... -
[转]在Linux下编译OpenJdk并调试Hotspot
2012-03-23 09:18 4192背景 对于大多数Java程序员来说,JVM就是一个黑盒子,我 ... -
linux头文件和库文件设置问题
2012-03-22 10:01 1634当初在编译时指定的(在~gcc/gcc/collect2.c: ... -
yum命令
2012-03-20 16:22 930yum check-update 检查可更新的所有软件包 y ... -
CentOS yum源
2012-03-20 15:39 9961.如何设置CentOS 5的yum源为上海交通大学网站 修 ...
相关推荐
下面将深入解析YUM命令的关键功能与使用方法。 #### YUM命令基础 YUM通过连接到多个仓库(Repository),自动处理依赖关系,确保软件包安装顺利。以下是一些常用的YUM命令: 1. **列出所有可更新的软件清单** - ...
### YUM命令使用配置详解 #### 一、YUM简介 YUM(Yellowdog Updater Modified)是一款在Linux系统上非常流行的包管理器工具。它能够处理依赖关系,并且简化了RPM包的安装与升级过程。通过YUM,用户可以方便地安装...
### yum命令详解 #### YUM简介 ...以上就是关于YUM命令的详细介绍,通过这些命令可以帮助用户更有效地管理和维护Linux系统。无论是对于初学者还是高级用户而言,掌握YUM的基本用法都是非常重要的。
总结,Yum命令是Linux系统管理员日常工作中不可或缺的工具,它的强大之处在于自动化处理软件包的依赖关系,使得软件管理变得简单而高效。熟练掌握Yum的使用,能极大地提升系统维护效率,对于Linux系统的管理和优化...
标题与描述:“Linux Yum命令详解” Yum(Yellowdog Updater, Modified)是Linux发行版如Fedora、Red Hat及SUSE等中常见的包管理工具。它通过shell脚本和RPM数据库来管理和更新软件包,使得在Linux环境下安装、升级...
一、`yum`命令基本用法 1. 安装软件包: 使用`yum install <package_name>`命令可以安装指定的软件包。例如,`yum install httpd`将安装Apache HTTP服务器。 2. 更新软件包: `yum update <package_name>`用于...
yum 安装服务和软件的配置 本文档主要介绍了使用 yum 命令安装服务和软件的配置过程,包括配置本地 yum 源、安装 httpd、FTP、...7. 使用 yum 命令安装软件包的基本命令 8. 配置 base.repo 文件的方法 总字数:1066字
以下是一些常用的YUM命令: 1. **安装软件包** ```bash yum install packagename ``` 2. **删除软件包** ```bash yum remove packagename ``` 3. **升级软件包** ```bash yum update packagename ``` 4...
- **证书和身份验证**:`yum`使用证书来进行安全的软件包传输和身份验证,确保只有经过授权的用户能够安装软件包。 总之,使用`yum`安装`g++`是一个自动化程度很高的过程,它不仅简化了软件包的安装,还确保了系统...
在深入探讨如何在CentOS 6.2上通过YUM包管理器安装中文输入法之前,我们先简要了解一下CentOS以及YUM的基本概念。CentOS是基于Red Hat Enterprise Linux (RHEL)源代码编译而成的一个开源操作系统,它旨在提供一个...
### Fedora-YUM 使用详解 #### 一、YUM 概述 YUM(Yellowdog Updater Modified)是一款在Linux发行版中...以上就是关于YUM的基本介绍及其常用命令的详细解释,希望能帮助您更好地理解和使用YUM这一强大的包管理工具。
此外,用户还需要了解 yum 的基本命令,例如 yum clean all、yum grouplist 等。这些命令可以帮助用户管理和维护软件包。 配置 yum 源是 RHEL7 中一个非常重要的步骤,无论是使用 RHEL 安装镜像、在线 yum 源还是...
使用以下命令来清理YUM的缓存并更新所有软件包: ```bash yum clean all yum update ``` 5. 注意事项: - 在使用CentOS作为软件源时,虽然包名和RHEL相同,但是由于CentOS为开源社区维护,可能在某些情况下与...
了解如何正确使用和管理`yum`,对于任何Linux用户来说都是至关重要的。通过本文的介绍,你应该对如何在CentOS 7上安装和使用`yum`有了基本的认识。在实践中不断探索和学习,你会发现`yum`能为你的系统维护和软件部署...
【yum命令使用详解】 yum(Yellow dog Updater, Modified)是一个在Fedora、Red Hat以及CentOS等基于RPM包管理系统的Linux发行版中广泛使用的软件包管理工具。它简化了RPM包的安装、更新和卸载过程,能够自动处理...
Yum(Yellowdog Updater, Modified)是Linux系统中广泛使用的包管理器,特别是在基于RPM的系统如CentOS、Red Hat Enterprise Linux等中,它使得软件的安装、更新和卸载过程变得简单易行。本文将围绕“yum安装包”这...
例如,使用 yum update 命令可以更新所有的软件包,使用 yum install 命令可以安装新的软件包。 Red Hat Linux 配置 YUM 详解是指在 Red Hat Linux 系统中,如何配置 YUM 软件包管理器,以便更好地管理系统中的...