现在的位置: 首页 > 综合 > 正文

rpm学习

2018年05月27日 ⁄ 综合 ⁄ 共 2847字 ⁄ 字号 评论关闭

精通RPM之安装篇(四)
19.prefix:指定重定位前缀

如前所述,可重定位的软件包可含一个或多个重定位前缀,可用--relocate选项来改变某个重定位前缀之值。--prefix选项仅能用来改变默认的重定位前缀(默认是第一个重定位前缀),它不需要说明原重定位前缀。下面的例子同样将file包安装到/tmp目录:

# rpm -qpl file-3.26-6.i386.rpm
/usr/bin/file
/usr/man/man1/file.1
/usr/man/man4/magic.4
/usr/share/magic
# rpm -i --prefix /tmp file-3.26-6.i386.rpm
# rpm -ql file
/tmp/bin/file
/tmp/man/man1/file.1
/tmp/man/man4/magic.4
/tmp/share/magic
#

20.ftpproxy:指定FTP代理主机

本选项指定FTP代理主机,主机可以是主机名,也可以是IP地址。

21.ftpport:指定FTP端口

本选项指定FTP协议使用的TCP端口,系统默认是21。

请看下面的例子:

# rpm -iv --ftpport 8888 ftp://root@xwboc/tmp/file-3.26-6.i386.rpm
Password for root@xwboc:
Password for root@xwboc:
Retrieving ftp://root@xwboc/tmp/file-3.26-6.i386.rpm
file-3.26-6
#

本例中用FTP方式安装file软件包,数据传输使用8888端口。执行中,RPM先提示输入root用户的密码两次,之后下载(retrieve)软件,最后成功安装。

22.httpproxy:指定HTTP代理主机

本选项指定HTTP代理主机,主机可以是主机名,也可以是IP地址。

23.httpport:指定HTTP端口

本选项指定HTTP协议使用的TCP端口,系统默认是80。

下面的例子就指定了80端口来安装autofs软件,当然不指定也行,因为系统默认的就是这个端口。

# rpm -iv --httpport 80 http://24.109.164.55/rpms/autofs-3.1.3-2.i386.rpm
Retrieving http://24.109.164.55/rpms/autofs-3.1.3-2.i386.rpm
autofs-3.1.3-2
#

注:同FTP方式一样,RPM都是下载再安装。

二、通用选项
所谓通用选项,就是不管是安装,升级,卸载还是其它软件包操作,统统适用的选项。

这样的选项主要以下几个:

1.-v:显示附加信息

一般情况下,RPM和不少LINUX命令(如cp,rm,mv等)一样,都本着尽可能少输出信息的原则(除非必要,否则不要输出),这样做是为了避免浪费 CPU资源。所以,当用户使用某个命令后没有什么输出,这就意味着命令执行成功了。如果有什么错误,程序会提示的。RPM也是这个样子。为了使RPM输出多一点的信息,可以使用-v选项。

如不带此选项安装file包,没有输出:

# rpm -i file-3.26-6.i386.rpm
#

而采用-v选项后安装时输出了包名:

# rpm -i -v file-3.26-6.i386.rpm
file-3.26-6
#

2.-vv:显示调试信息

选用-vv选项,可以使RPM输出更多的信息。这些信息,主要供RPM软件开发者研究使用的,一般用户也可以看看,从中可以知道RPM究竟干些什么。

下面采用此选项安装file包,同时使用管道线(|)将输出数据送nl命令,以带行号输出每行数据。

从执行结果看,输出的信息很多,其中以D:开头的行均是调试信息。现在逐行解释:

第1行:统计要安装的软件包个数;

第2行:RPM找到1个包;

第3行:查看哪些包需要下载(这些要下载的包,都是以FTP或HTTP形式书写的包名);

第4行:下载了0个包;

第5-10行:取包裹文件的文件头信息,算出软件包占用的空间68019(字节),以利检查

系统是否有足够空间。

第11行:打开RPM数据库;

第12行:找到0个源代码包,1个执行代码包;

第13-18行:检查软件包的依赖关系。其依赖(requires)的东西均得到满足(satisfied)。

第19行:准备安装执行代码包;

第20行:取得已安装文件系统的列表;

第21-26行:再度取包裹文件头信息,算出软件包占用空间;

第27-31行:列出包中文件及要执行的操作,第27行的test=0表示不是进行安装测试,

file包中的文件均要执行创建操作(create)。

第32行:如果有安装前执行脚本程序的话,执行它;

第33行:安装软件包file-3.26-6;

第34行:如果有安装后执行脚本程序的话,执行它。

3.root:指定根目录

指定根目录ROOT,其作用在于将系统所有操作限定在指定的目录下面,这样RPM操作的数据库位置变了,软件包的安装位置也变了。它是通过chroot系统调用实现的。RPM默认的数据库目录是/var/lib/rpm,如果指定根目录为/usr,则RPM的数据库目录将变为/usr/var/lib /rpm。同样,如果包中有个文件为/etc/zhsoft.txt,则安装后为/usr/etc/zhsoft.txt。

看下面的例子:

# rpm -i --root /usr file-3.26-6.i386.rpm
failed to open /usr/var/lib/rpm/packages.rpm

error: 不能打开 /usr/var/lib/rpm/packages.rpm
#

注:指定RPM根目录为/usr安装file出现错误,RPM打不开/usr/var/lib/rpm/packages.rpm文件,这是因为实际上在 /usr/var/lib/rpm目录下没有任何RPM数据库。如果想成功安装,可用初始化RPM数据库命令来建立RPM数据库,命令是rpm --initdb --root /usr(这些功能将在以后讲到)。

4.rcfile:指定RPM资源配置文件

RPM的资源配置文件里,存放着RPM的默认设置,有编译选项optflags,体系定义arch_canon,兼容定义arch_compat,宏文件定义macrofiles等。RPM默认的资源配置文件(按读取顺序)为:/usr/lib/rpm/rpmrc,/etc/rpmrc,~ /.rpmrc。(后两个文件现在意义不大了,如今一般换作RPM宏文件了。较之资源配置文件,宏文件有更大的灵活性。)

如果想让RPM使用用户指定的资源配置文件,就用--rcfile来设定,可同时设定多个文件,文件间以冒号(:)分隔,如/usr/lib/rpm/rpmrc:/etc/rpmrc:~/.rpmrc这种形式。

5.dbpath:指定RPM数据库目录

本选项不同于--root选项,它仅仅是指定RPM数据库的目录,并不改变安装文件的位置。

抱歉!评论已关闭.