LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2155|回复: 13

比 rpm 强大得多的 urpmi 常见问题!

[复制链接]
发表于 2003-6-1 17:24:57 | 显示全部楼层 |阅读模式
说明:

很多从Redhat转移到Mandrake的使用者都不知道MDK提供的 urpmi 命令. 其实这个命令比
rpm要强大的多, 最大的优点就是可以自己解决安装rpm包时烦人的依赖关系. 只要你
预先指定了要搜索的文件源(本地或者网络上的), 只要一个urpmi <package> 就自动为你安
装rpm包, 解决依赖关系.

下面是经常出没于 irc/Freenode 频道的garrick写的 urpmi 常见问题. 觉得翻译出来对大
家有帮助. 他的网页:http://speculation.org/garrick 上还有其它有用的东东.


------------------------------------------
upmi 常见问题   
------------------------------------------


作者: garrick
翻译: monpython


Q: 什么是urpmi?
A: 'urpmi' 是Mandrake处理rpm文件来源的工具. 它是一个rpm的打包程序,可以让使用着更容易的进行安装.


Q: 它有什么样的文件来源?
A: 'urpmi' 能够处理像你的mandrake CD这种可拆卸媒体上的文件源,也可以是硬盘上rpm文件,或者是ftp,http服务器上的文件源.
   缺省状态下,'urpmi' 已经知道mandrake CD上的文件源的位置.


Q: 怎么用'urpmi'安装文件包?
A: 让我们拿BitchX这个文件举个例子: 'urpmi BitchX'  'urpmi' 将会搜索文件源的索引,查找名为"BitchX"的文件包.
   如果找到该包,它会进一步寻找"BitchX"所需要的其它包 (这就时urpmi一个很酷的功能,自动解决相依性问题).还有,
   如果需要,它会要求你插入光盘.


Q: 提示"command not found", 是不是'urpmi'有问题?
A: 不是,用'su -'命令再试试.


Q: 有哪些文件来源?
A: Mandrake有三种文件源: main(一般分别放在三个CD上),contrib目录,和updates.如果你的系统是从CD上安装的,
   那么urpmi将会预先根据三个CD设置好main和contrib目录.(所以看起来就好像是四个安装来源,因为三片光盘
   上既有main又有contrib目录).如果你的系统是从ftp上安装的,那么它会预先根据ftp服务器设置好main和contrib.
   不管是以上哪种情况,你都要用一个ftp镜像站点配置一个update安装源.


Q: 到哪里去找urpmi的安装源?
A: 去http://plf.zarb.org/~nanardon/ 这个叫"Easy Urpmi"的网页. 首先选择你mandrake版本和你的体系结构(如果你不知道你的
   机器体系,就选i586),点下一步.然后为main,contrib和updates选择地理位置接近的镜像. 如果你要的软件包没有到侵权和其它
   法律问题, 可以选择一个plf镜像. 如果你自己可以处理一些情况,还可以选择一个texstar镜像.接下来点击下一步.在网页的底部
   把得出的 urpmi.addmedia 命令拷贝粘贴到有root执行权的shell中.


Q: 什么是PLF(Penguin Liberation Front)?
A: http://plf.zarb.org, 该站上有因为法律原因无法通过mandrake发行的mandrake文件包. 像DVD解码,mp3编码等软件可以在那里找到.
   PLF很方便的组织成一个urpmi的文件源,你可以访问该站获得更多的信息.


Q: 我如何加入新的文件源?
A: 用 'urpmi.addmedia' 命令. 用法是这样的:
      
      urpmi.addmedia [--update] <name> <location> with <hdlist>

   下面是加入我的mandrake ftp镜像的例子: (要整行输入):

   Mandrake 9.1:

urpmi.addmedia usc-main ftp://mirrors.usc.edu/pub/linux/ ... /i586/Mandrake/RPMS with ../base/hdlist.cz
urpmi.addmedia usc-contrib ftp://mirrors.usc.edu/pub/linux/ ... ke/9.1/contrib/RPMS with ../../i586/Mandrake/base/hdlist2.cz
urpmi.addmedia --update usc-update ftp://mirrors.usc.edu/pub/linux/ ... ke/updates/9.1/RPMS with ../base/hdlist.cz

   Mandrake 9.0:
urpmi.addmedia usc-main ftp://mirrors.usc.edu/pub/linux/ ... /i586/Mandrake/RPMS with ../base/hdlist.cz
urpmi.addmedia usc-contrib ftp://mirrors.usc.edu/pub/linux/ ... ld/9.0/contrib/RPMS with ../../i586/Mandrake/base/hdlist2.cz
urpmi.addmedia --update usc-update ftp://mirrors.usc.edu/pub/linux/ ... ke/updates/9.0/RPMS with ../base/hdlist.cz

   Mandrake 8.2:
urpmi.addmedia usc-main ftp://mirrors.usc.edu/pub/linux/ ... /i586/Mandrake/RPMS with ../base/hdlist.cz
urpmi.addmedia usc-contrib ftp://mirrors.usc.edu/pub/linux/ ... ld/8.2/contrib/i586 with ../../i586/Mandrake/base/hdlist2.cz
urpmi.addmedia --update usc-update ftp://mirrors.usc.edu/pub/linux/ ... ke/updates/8.2/RPMS with ../base/hdlist.cz

   Mandrake 8.1 (mdk8.1 has been End-of-Lifed):
urpmi.addmedia usc-main ftp://mirrors.usc.edu/pub/linux/ ... /i586/Mandrake/RPMS with ../base/hdlist.cz
urpmi.addmedia usc-contrib ftp://mirrors.usc.edu/pub/linux/ ... ld/8.1/contrib/RPMS with ../../i586/Mandrake/base/hdlist2.cz
urpmi.addmedia --update usc-update ftp://mirrors.usc.edu/pub/linux/ ... ld/updates/8.1/RPMS with ../base/hdlist.cz

对于 mdk 8.2, 我自己有一些更新的软件包,你也许会兴趣.你在那里总可以找到最新的 Mozilla, Galeon 和 Fluxbox:
urpmi.addmedia --update garrick.update ftp://polop.usc.edu/pub/rpms with hdlist.cz


   你可以用 --update 参数, 把文件源标记为 "updates" (稍后再讨论)


** mandrake 9.0 的新功能! 你现在可以更方便的从任何 ftp 镜像加入整个安装和contrib文件源:
urpmi.addmedia --distrib ftp://ftp-linux.cc.gatech.edu/pu ... s/mandrake/8.2/i586

** 注意, 这个功能在 8.2上就有, 但是不起作用 =/



Q: 我能不能把我喜欢的任何本地目录加入为文件源?
A: 可以, 很简单:
urpmi.addmedia --update 自己取个名字 file://some/directory/path


Q: 我能否把我喜欢的网络目录(ftp或http地址)加入为文件源?
A: 不行. 文件源目录还需要一些特殊的文件. 除了用mandrake镜像作为文件源, Penguin Liberation Front网站 (http://plf.zarb.org/) 拥有最大的
   网上文件源. 你可以访问 "Easy Urpmi" 以获得最有名的完整文件源列表.

   你可以加入任何你要的本地目录, urpmi.addmedia 命令将会立刻创建所需的文件.


Q: 如何删除文件源?
A: 'urpmi.removemedia <name>' (只键入 'urpmi.removemedia' 将会列出所有可以删除的预设名称.)


Q: 能否用 urpmi 安装 rpm ?
A: 当然! 'urpmi foobar-<version>.i586.rpm' (或其它软件包) 将会自动安装任何所需的相关软件包. 但是记住并不保证非mandrake rpms能够
   运行. 实际上, 我很不愿意推荐第三方的rpm安装包. 相反, 应该找一个 src.rpm 自己从源代码编译一个新的rpm包. 参考 rpm 常见问题.


Q: 如何升级软件?
A: 第一, 你需要标记为 "updates" 的 rpm 安装源.  注意, 这是镜像上的一个不同的目录.
   下面是一个和上面类似的升级软件的例子:
urpmi.addmedia --update update_gatech ftp://ftp-linux.cc.gatech.edu/pu ... e/updates/8.2/RPMS/ with ../base/hdlist.cz
   注意: 这个例子用了 --update 参数和一个略微不同的地址

   现在我们已经为 urpmi 加入了合适的升级文件源. 只要打入:
   'urpmi --update <package>' urpmi 就会只在文件源搜索标记为 "update" 的包.


Q: 如何自动升级所有需要升级的包?
A: 'urpmi --update --auto-select'


Q: 哪个包里有某某文件?
A: 'urpmf' 程序可以用来在 urpmi 数据库中查找某个文件. 只需键入'urpmf foobar.something' 就可能会显示
   "foobar:/usr/bin/foobar.something". 说明你要的文件在 "foobar" 这个包中.  

   技巧一: 如果你找的是程序或命令名称, 那么在所查找的名称前面加入 bin/ 比如: bin/ls'.

   技巧二: 如果你找的是库文件, 那么在库文件的前面加入 lib/ 比如: 'urpmf lib/libssl'.


Q: ftp上的文件源已经改变, 如何升级我的本地索引?
A: 'urpmi.update <name>'  注意: main 和 contrib 从来不会改变. 但是 升级和 PLF 安装源经常更新.


Q: 非 root 权限的人可以用 urpmi 安装软件吗? 
A: 根据文档, 是可以的. 但是这个功能不起作用.


Q: 我不喜欢 urpmi, 有没有其它选择?
A: 当然, 有很多. 可以到 http://rpm.org/software/updaters/ 看到很长的列表. 我喜欢 'yum' 网址是 http://www.linux.duke.edu/projects/yum/.  
   yum 的一个好处是你从来不需要去升级一个文件源 (用 yum 术语叫做文件仓库)!  yum 已经打包在 9.1 的 contrib 中,
   键入 'urpmi yum' 修改你的 /etc/yum.conf . 到下面的地址参照我的样本:
   http://speculation.org/garrick/yum.conf

   用法:
   yum list updates - 列出任何升级
   yum update - 进行升级
   yum info <package> - 就像 'rpm -qi', 但是是你的文件仓库的任何包
   yum list <file> - 就像 'urpmf <file>', 但是你必须用完整路径
   yum install <package> - 就像 'urpmi <package>'
发表于 2003-6-1 17:48:47 | 显示全部楼层
这篇文章写得不错,可惜还是没有理解Mandrake的精髓。因为上面所说的各种命令基本都可以通过RPMDrake这个图形化工具搞定。
发表于 2003-6-1 18:08:43 | 显示全部楼层
不过还是有大量喜欢字符界面的人存在。这篇文章确实应该是精华。
发表于 2003-6-1 21:43:08 | 显示全部楼层
呵呵,不错不错,昨天还在问在命令行下如何安装一个包并且能自动检查依赖,结果今天就遇上这好东西了。有点像APT了
发表于 2003-6-1 22:05:35 | 显示全部楼层
确实很不错
我最近也正在从rpm向urpmi迁移:)
我安装rpm喜欢用字符是因为这样更快一点
发表于 2003-6-1 23:17:45 | 显示全部楼层
最初由 mandrakechina 发表
这篇文章写得不错,可惜还是没有理解Mandrake的精髓。因为上面所说的各种命令基本都可以通过RPMDrake这个图形化工具搞定。


兄弟,这个就不一定了,如果你没有图形界面,那你如何做呢?前端界面并不一定好。比如,你只想用第一个iso安装的时候,你就会感到前端界面并那么强大。urpmi是Mandrake比Redhat更进一步的地方。
 楼主| 发表于 2003-6-1 23:44:08 | 显示全部楼层
http://plf.zarb.org/ 地址是可以访问的.
大家要记得把上面地址中的那个小句号 . 去掉.
发表于 2003-6-2 00:01:44 | 显示全部楼层
发表于 2003-6-2 10:02:24 | 显示全部楼层
看到了debian apt的样子了
发表于 2003-6-2 17:33:20 | 显示全部楼层
呵呵,原来有这么多人不知道urpmi的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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