LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
123
返回列表 发新帖
楼主: QuickTime

像apt-get一样upgrade你的系统

[复制链接]
发表于 2003-10-6 19:33:25 | 显示全部楼层
半年前用过这个apt for mandrake,不能添加rpm-src,不能apt-get source,不知道现在怎么样了。
发表于 2003-10-11 12:02:19 | 显示全部楼层
好帖!正常的升级也可以这样用。
不用开图形界面那么麻烦!
发表于 2003-10-20 19:21:27 | 显示全部楼层
最初由 lanb 发表
我的server使用的MDK,个人吗,现在两个机子上都只有debian了!台机还会安一个freebsd或者gentoo!


人家都是server用bsd debian的,desptop用MDK,兄弟到是另类。

说真的,mdk做服务器总是不太放心,特别是看到linuxforum的兄弟被黑都。
 楼主| 发表于 2003-10-20 21:40:55 | 显示全部楼层
为什么不放心呢
发表于 2003-10-22 13:00:11 | 显示全部楼层
urpm——Mandrake 风格的RPM

从Mandrake 7.0 开始采用的‘urpm’(User RPM),克服了 RPM 的一些不足:

    * 通过自动安装或卸载相关的包,解决了依赖问题。以往,RPM 只能告诉您缺少哪些文件,或哪些包存在问题。
    * 能存储任何给定位置包之间的依赖关系。而 RPM 只能存放本地已安装包的数据。
    * 适当配置以后,可以从网络获取新包,并自动安装。
    * 支持征求安装(installation on demand),RPM 无此功能。
    * 允许模式匹配归档名(globbing of archive names),这样简化并扩展了查询、自动升级等功能。

‘urpm’并不是要取代 RPM,而是为了简化一般的 RPM 任务。在许多方面,‘urpm’有点象 Debian GNU/Linux 中的‘apt’。

本篇主要谈的是 Mandrake Linux 8.1 下的‘urpm’。

section index top
配置 urpm

重要的配置文件是‘/etc/urpmi/urpmi.cfg’,文本数据文件在‘/var/lib/urpmi’目录下,而日志文件则在‘/var/log’。

当您已经安装好了系统,很有可能安装光盘已经可以被‘urpm’索引。要添加源介质(如其他光盘、本地目录、远程目录),可用命令‘urpmi.addmedia’。我们假定您在自己的 home 目录下,有一子目录存放着下载的 RPM 包。若将此目录添加到 rupm 的资料库,可用‘root’帐号运行:

urpmi.addmedia local file://home/user_name/rpms

其中的‘locale’作为别名,以后可以用于引用。如果该目录下有了新的包,就需要升级‘locale’中的数据:

urpmi.update local

这样,‘rpms’下的包成了urpm 资料库的一部分,所有的 urpm 操作,都对其有效。如果这个目录下的内容有所改变,不要忘了运行‘urpmi.update’(对于内容会变动的 FTP 目录也是如此) 。

请注意,对于远程的包,您必须给出‘hdlist.cz’文件(位于 Mandrake Linux 的‘base’目录下),在该服务器上的相对路径(相对于 RPM 包所在的目录)。这意味着如果未提供该文件,您将无法添加远程源介质( remote resources)。

要从 urpm 删除某一源介质,用‘root’帐号运行:

urpmi.removemedia resource_name

section index top
使用 urpm
包的安装与卸载

这些命令需用‘root’权限。

从配置的源介质中安装一个包,可运行

urpmi archive

例如,安装‘mc’包:

urpmi mc

‘urpmi’将检查该包是否可以获取,可以的话,如果在远程就下载,在可移动的介质(如光盘)上就提示您放入,或者在硬盘上就简单地安装。如果还需要其他包,‘urpmi’也将询问您是否要安装。如果您不想每次都这样询问,您可以用‘--auto’参数。

如果您给的归档名(archive name)不明确,urpmi 将列出所有匹配的归档名,然后退出。您可以用‘-a’参数来改变这样的做法:

urpmi -a gtk

将安装所有归档名中含字符串‘gtk’的包。

另一个实用的参数是‘-p’,根据所含文件来对包进行过滤(filter)。例如,我们假设您需要‘libe2p.so.2’库,但不知道哪个包中含有该库:

urpmi -p libe2p.so.2

urpmi 将检查哪个包中含有这个库文件,然后安装该包,在此例中,过滤得到的包是‘libext2fs2’。

当然,您可以用‘urpmi’,和‘rpm -U’一样,简单地安装一个在本地的包。请注意,‘urpmi’如果发现将安装的包是新版本,将进行升级(upgrades)。有时候,这并非是您的初衷,比如,当您要安装新内核,或需要同一程序库的不同版本。在这种情况下,您必须用‘rpm -i’。

要卸载包,您可以用‘urpme’:

urpme archive

如果其他包正好依赖您要卸载的包,‘urpme’将询问这些包是否也要一起卸载。如果您不想被询问,添加‘--auto’参数。当然用这一参数时,您要很清楚自己在做些什么……

‘urpme’也可加‘-a’参数:

urpme -a gtk

将卸载所有归档名中含字符串‘gtk’的包。
查询包

‘urpm’另一个奇特的地方在于查询,这是由于‘urpm’资料库中还包含着未装包的信息。‘urpm’查询工具是‘urpmf’,运行时并不需要‘root’权限。

urpmf file

将列出资料库中所有含文件 file 的包。

‘urpmf’支持许多参数,用于查询特定的包信息。您想不想知道哪些包中有游戏?

urpmf --group Games

‘pingus’包有多大?

urpmf --size pingus
pingus:size:11026299

这个包有什么用?

urpmf --summary pingus
pingus:summaryingus - A free Lemmings clone

看一下 man urpmf ,您在那里能找到更多的参数。

urpm 有另一查询命令‘urpmq’,可能用得少一点。

urpmq string

将列出所有含string的归档名,该命令不可用模式匹配。

urpmq --sources archive

将告诉您archive是位于哪个源介质,这个命令需要‘root’权限。

urpmq -d archive 将列出archive依赖的所有包。而urpmq -r archive将显示archive的包名。

其他参数可以在man urpmq找到。
升级

在命令行下,您可以从 MandrakeSoft 获得最新的安全和错误(bug)的修补,这些步骤甚至都可以自动完成(只要您用‘urpmi.addmedia’命令,在‘urpmi.cfg’中添加 Mandrake Linux 的一个镜像站点)。Software Manager 可以让您更方便得完成此任务。

升级命令很简单:

urpmi --auto-select

将在配置好的源介质中,寻找需升级的包。将这些包全部列出后,询问您是否要安装。如果您不想被询问,那可以用‘--auto’可选项。当通过 cron job 进行自动升级时,这一参数就显得特别有用。当然,请不要忘记用命令‘urpmi.update’来刷新(refresh)包的资料库。

您可以保留(hold)一些包,使其忽略升级命令,只要将归档名写到‘/etc/urpmi/skip.list’文件中。例如,禁止‘urpmi --auto-select’升级新内核或 glibc:

kernel
glibc

Mandrake Linux 8.2 引入了‘/etc/urpmi/inst.list’,该文件列出了所有应该安装,而不是升级的包。在预先配置中包含了所有内核的RPM包。

如果您要为大型网络提供升级,请看一下 Mandrake 光盘中的‘MandrakeUpdateRobot’包。网络管理员利用这个包,方便地对许多客户机进行升级。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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