Yum的一些Tips技巧
Q: 我有软件包来自yum仓库之外,但是如果我用rpm -i安装它的话,需要自己解决包的依赖关系,我可以使用yum来安装它并由yum来解决依赖的包,如果这些包在yum的仓库里?
A: 当然可以,可以执行本地安装:
# yum localinstall packagefile.rpm
Q: 可否对于服务器(经常没有用户登录在上面)提供类似Fedora桌面的自动更新提示的功能,在有可用更新时自动更新系统?
A: 当然,从Fedora Core 6开始Fedora提供了 yum-updatesd服务用于自动更新系统;yum-updatesd的主控制文件是/etc/yum/yum-updatesd.conf.
# how often to check for new updates (in seconds)
run_interval = 3600
# how often to allow checking on request (in seconds)
updaterefresh = 600
# how to send notifications (valid: dbus, email, syslog)
emit_via = dbus
# automatically install updates
do_update = no
# automatically download updates
do_download = no
# automatically download deps of updates
do_download_deps = no
默认的情况的配置为检查更新并通过dbus通知桌面系统程序,这个通知可以被桌面的puplet程序获取并最终在界面上通知用户,这就是桌面可用更新提醒的实质。
如果选项do_update设置成yes,yum-updatesd可以自动更新可用的更新。
相应的,如果你不想自动完成升级而仅仅是下载需要的更新,可以设置do_updaate = no 并且设置do_download = yes, do_download_deps = yes, 这样yum-updatesd可以在有可用更新时,下载需要升级的软件包但是不执行真正的升级安装。当然真正升级安装只有当你执行pup或yum命令并同意安装时才执行。
Q: Yum看起来混乱似乎有错误的数据缓存下来,我该怎么办?
A: 清除缓存,可以让yum重新开始:
# yum clean all
Q: 怎样配置才可以卸载,删除或重新正确安装软件包?
A: Fedora的包管理工具(yum,pup,pirut)都是基于RPM的工具,RPM有个功能就是在卸载软件包时制作相应的repackage包,以备日后需要时重新安装。这个repackage的包包含卸载软件包时从系统删除的文件,包括你修改过的配置文件和数据文件,这样说来,在你后悔的时候你可以很快的使用这个软件包回复删除过的软件。
这种机制同样适用于包更新时的情况。尽管这种机制无法保证软件使用过程中创建的数据文件,但是还是具有实用的意义。repackaging机制很费系统空间,所以默认是禁止该功能的。
1. yum (and pup, pirut, and yum-updatesd)相关设置
将这行tsflags=repackage 加到/etc/yum.conf.
2. 配置rpm命令行, 添加
%_repackage_all_erasures 1
到/etc/rpm/macros.
3. 用yum等工具安装,删除和升级软件;
4. 如果需要进行回滚恢复,执行rpm update --rollback option, rollback的option选项需要一个时间戳, (回滚是基于时间的,例如你删除软件a,然后是软件b,然后是软件c,接着回滚软件a,配置文件可能出现错误,因为软件配置具有相关联性),例子:
- rpm -Uhv --rollback '9:00 am'
- rpm -Uhv --rollback '4 hours ago'
- rpm -Uhv --rollback 'december 25'
Q.软件安装,删除,更新的记录有吗?
A: 记录位于: /var/log/yum.log
Q: 如何避免更新特定的软件包?
A: 使用yum --exclude/-x选项或者添加下面的行到 /etc/yum.conf:
exclude kernel*
*是通配符,可以使用通配符和正则表达式。
命令例子:
# yum -x kernel* update
Q: Yum很耗网络带宽,可以进行限制吗?
A: 在/etc/yum.conf 中添加如下行进行限制:
throttle 150k
这个例子限制yum每秒使用150kBytes的带宽,注意150KBytes/S大约等于150x8 = 1200 KBits/S的带宽。
Bit意为“位”或“比特”,是计算机运算的基础,属于二进制的范筹;
Byte意为“字节”,是计算机文件大小的基本计算单位;
这两者应用的场合不同。通常用bit来作数据传输的单位,因为物理层,数据链路层的传输对于用户是透明的,而这种通信传输是基于二进制的传输。在应 用层通常是用byte来作单位,表示文件的大小,在用户看来就是可见的数据大小。比如一个字符就是1byte,如果是汉字,则是2byte。
下面是2个具体应用实例:
Mbps=mega bits per second(兆位/秒)是速率单位,
MB=mega bytes(兆比、兆字节)是量单位,1MB/S(兆字节/秒)=8MBPS(兆位/秒)。
我们所说的硬盘容量是40GB、80GB、100GB,这里的B指是的Byte也就是“字节”。(与容量相关,应用层)
1 KB = 1024 bytes =2^10 bytes
1 MB = 1024 KB = 2^20 bytes
1 GB = 1024 MB = 2^30 bytes
USB2.0标准接口传输速率是480兆位/秒,即480MBps。这里的B指是的Bit也就是“位”。(与传输相关,底层)
注:另外,Byte通常简写为B(大写),而bit通常简写为b(小写)。可以这么记忆,用大写的就是数据值比较大的位,而小字的就是数据值比较小的字节,1B=8b。
Q:哪里可以学到更多的yum或RPM知识?
A: YUM网站 http://linux.duke.edu/projects/yum/ 和RPM网站 http://rpm.org
本站关于YUM的使用介绍有一些资源,可以查看关于YUM的标签获取。
Comments