免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1586 | 回复: 5
打印 上一主题 下一主题

请教有关rpm的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-02-09 10:26 |只看该作者 |倒序浏览
--prefix和--root都是指定安装目录的吧,请问有什么区别吗?
哪位大哥可以指点一二,谢了~~~

论坛徽章:
1
狮子座
日期:2013-12-05 16:04:37
2 [报告]
发表于 2007-02-09 13:30 |只看该作者
--prefix<目的目录> 若重新配置文件,就把文件放到指定的目录下。
--root<根目录>  设置欲当作根目录的目录。

论坛徽章:
0
3 [报告]
发表于 2007-02-09 16:33 |只看该作者
多谢楼上的,不过俺还是没有分清,能不能举个例子

论坛徽章:
1
狮子座
日期:2013-12-05 16:04:37
4 [报告]
发表于 2007-02-09 16:47 |只看该作者
自己用rpm亲自实践一下.

论坛徽章:
0
5 [报告]
发表于 2007-02-10 03:47 |只看该作者
原帖由 skelton 于 2007-2-9 16:33 发表于 3楼  
多谢楼上的,不过俺还是没有分清,能不能举个例子


--root 使用比较少见,简单说比方 package 当初带的资讯是把档案安装到 /usr/bin 目录内,那你使用如下安装方式:

  1. rpm -ihv --root /xyz xxx.rpm
复制代码


这样到时候档案会装到 /xyz/usr/bin 内。

若是要更明确一点说,就是 rpm 会先呼叫 chroot 到 /xyz 内,那后续把 /xyz 当作是 / 进行后续的操作。

实际上,--root 参数一般通常是给 linux distro 安装程式使用的功能居多。

举例安装 linux 时候,比方选择 hda6 为 / 分割区,那安装的 package 提供的档案要放在 hda6 分割区内,那这如何达成呢 ? 处理方式就是安装过程会先暂时把 hda6 挂入到 /mnt/hda6 的目录内,那后续就需要使用 rpm -ihv --root /mnt/hda6 方式来安装 package。这样使用的话, rpm 会以 /mnt/hda6 当作 / 目录,然后进行安装与读写 rpm db。

当然,这样使用不只是以 /mnt/hda6 为 root 目录来进行安装,rpm 安装套件包是需要读写 rpm db 的,那这样的话实际读写的 rpm db 会存取的是 /mnt/hda6/var/lib/rpm 目录。

当然,若你是一般系统使用该操作,系统大概告诉你 /xyz/var/lib/rpm 没有 rpmdb 相关资讯,所以出现错误而结束。

--------------------------

至于 --prefix 使用部份,一般常见于可能是因为空间不够用,所以 rpm package 打算安装到其他指定的目录内避免空间暴掉。比方:


  1. # df -h
  2. Filesystem            Size  Used Avail Use% Mounted on
  3. /dev/hda3             3.9G  385M  3.3G  11% /
  4. /dev/hda1              99M  7.5M   87M   8% /boot
  5. /dev/hda7              91G   56G   35G  62% /home
  6. /dev/hda6             3.9G  2.0G  1.8G  53% /usr
  7. /dev/hdb1              466G  425G   41G  92% /home2
复制代码


像是有个 xxx.rpm 本身有 3G 多,一般安装好会放于 /usr/ 内,这样让硬碟空间吃满。解决方式,比方发现 /home2 空间多,那可以这样安装:

  1. rpm -ihv --prefix=/home2 xxx.rpm
复制代码


如此后续档案都会以相对路径方式应对放置于 /home2 目录内。当然,后续纪录存取的 rpm db,是 /var/lib/rpm 目录内的 db 档案。

不过要注意的是,只有 "relocatable package" 这些软件包可以使用 --prefix,简单说当初写 rpm spec 时内容就要先提供 prefix 相关资讯,要不然不属于 "relocatable package" 的项目是无法支援 --prefix 参数使用。


  1. rpm -qi lftp
  2. Name        : lftp                         Relocations: (not relocatable)
  3. Version     : 3.5.6                             Vendor: Mandriva
  4. Release     : 1mdv2007.1                    Build Date: Fri 24 Nov 2006 07:27:08 AM CST
  5. Install Date: Thu 14 Dec 2006 07:15:13 AM CST      Build Host: n1.mandriva.com
  6. Group       : Networking/File transfer      Source RPM: lftp-3.5.6-1mdv2007.1.src.rpm
  7. Size        : 862797                           License: GPL
  8. Signature   : DSA/SHA1, Fri 24 Nov 2006 08:21:00 AM CST, Key ID dd684d7a26752624
  9. Packager    : Iurt the rebuild bot <warly@mandriva.com>
  10. URL         : http://lftp.yar.ru/
  11. Summary     : Commandline ftp client
复制代码


像是上面哪个 package 就是属于无法使用 --prefix 参数的软件包。

但是其实该 relocatable 的 package 不是想像中这样方便使用,其中牵涉到程序本身读取设定档若是写死目录时,这样装会导致程序抓不到档案.... 所以要应用上还要看情况。

--

[ 本帖最后由 kenduest 于 2007-2-10 04:45 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2007-02-11 19:17 |只看该作者
听这么一讲俺明白多了,多谢楼上的两位热心人
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP