RPM包管理

一、程序:


1、编译过程:预编译、编译、汇编、链接。

编辑:将源代码翻译成CPU指令集。


2、API:Application Programming Interface,应用程序编程接口。


3、ABI:Application Binary Interface,应用二进制接口(二进制文件即可运行文件)。


二、软件包的组成部分:


1、二进制程序:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin

 通过环境变量配置。

2、库文件:供二次开发用,如目前的浏览器。

 /lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64

 库文件配置文件:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf

 头文件/etc/include

#ldd命令:用来查看应用程序所依赖的共享库。


如:#ldd `which cat`


3、配置文件:/etc

 

4、帮助文件:/usr/share/man


注意:如果将程序安装到特定指定的路径下如:/usr/local/nginx,

那么,二进制程序、库文件、配置文件、帮助文件的路径分别为:

二进制程序:/usr/local/nginx/bin,/usr/local/nginx/sbin

库:/usr/local/nginx/lib,/usr/local/nginx/lib64

    头文件:/usr/local/nginx/include

配置文件:/usr/local/nginx/etc或者/usr/local/nginx/conf

帮助文件:/usr/local/nginx/man


三、man命令自身的配置文件:/etc/man.config



四、rpm包:

1、rpm包的名称格式:

   源程序:name-version.tar.{gz|bz2|xz}

          version:major.minor.release

   rpm包:name-version-release.arch.rpm

          release:为发行商的发型号

 arch:使用的平台32位/64位

      x86_64,i386,i586,i686,noarch

           

          如:bash-4.3.3-2.el6.x86_64.rpm

          el6:redhad enterprise linux 6

 如:bash-4.3.3-2.centos5.x86_64.rpm

          centos5:CenterOS5


2、包管理器的基本功能:

打包

安装

查询

升级

卸载

校验

数据库管理

3、来源合法性验证:

   源程序:通过md5或sha1校验码验证。

   rpm包:发行商提供的合法性是可信的。

        验证包完整性:校验码

验证来源合法:公钥


4、获取rpm包的路径:

   

A、发行商的光盘或者站点

   以CentOS为例:

       http://mirrors.163.com

       http://mirrors.sohu.com


B、http://rpmfind.net


C、http://rpm.pbone.net


5、rpm包的安装:

A、#rpm -ivh ***.rpm

-i:install

-v:安装信息

-h:进度条,以#显示


B:#rpm -ivh --test ***.rpm


--test:仅测试,不真正执行安装过程。



C、安装时,怎么解决依赖关系?


忽略依赖关系:--nodeps(注意可能会安装完毕,不能使用)

#rpm -ivh --nodeps ***.rpm


尝试将依赖的都安装上,这个比较繁琐。


D、重新安装:#rpm -ivh --replacepkgs ***.rpm


6、rpm包的卸载:


A、#rpm -e,--erase package_name


B、如果卸载时,被其他程序所依赖的解决办法:

  把所依赖者一同卸载;

  忽略依赖关系;--nodeps


7、rpm包的查询:


A、#rpm -q(query)  package_name:查询某包是否安装。


B、查询所有已安装的包:

#rpm -qa


-a:all


C、查询包的描述信息:

#rpm -qi package_name

-i:info

如:#rpm -qi bash


D、查询包安装后生成的文件列表:

#rpm -ql package_name

-l:list

如:#rpm -ql bash


E、查询包安装后生成的配置文件:

#rpm -qc package_name

-c:conf


F、查询某文件是哪个安装包生成的:

#rpm -qf /path/to/somefile


G:查询包相关的脚本:


#rpm -q --scripts package_name


脚本有四类:

安装前脚本:preinstall


安装后脚本:postinstall


卸载前脚本:preuninstall


卸载后脚本:postuninstall


H:查询包安装后生成的帮助文档:


#rpm -qd package_name


-d:documents


I、-p选项:查询尚未安装的rpm包文件的相关信息,常用的如下:

    

   查询安装后生成的文件列表:

   #rpm -qpl /path/to/package_file

   查询其简单描述信息:

   #rpm -qpi /path/to/package_file


8、rpm包升级:


#rpm -U :升级或安装


#rpm -F:升级


格式:#rpm {-Uvh|-Fvh } /path/to/package_file 


--nodeps:忽略依赖

--force:强行安装


注意:不要对内核进行升级操作。

       多版本内核可并存,因此对内核建议执行安装操作。

9、rpm包校验:检查包安装后生成的文件是否被修改过.


#rpm -V package_name


-V:verify


如:rpm -V zsh,没有消息说明没改变。


10、rpm包检验来源合法性和软件包完整性。


A、包完整性:通常单向加密机制(md5|sha1)

B、来源合法性:公钥加密机制(RSA)

#rpm -K  /path/to/package_file 


注意执行前,要先导入制作者的公钥,CentOS发行版的公钥在iso文件中

导入命令:#rpm --import /path/to/gpg-key-file

如:

#rpm --import RPM-GPG-KEY-CentOS-6

#rpm -K  zsh-4.3.10-7.el6.x86_64.rpm


10、rpm包数据库重建:


A、数据库位置:/var/lib/rpm


B、#rpm --initdb:初始化,如果事先不存在,则新建;如果存在,则不覆盖。


   #rpm --rebuilddb:重建,直接重建数据库,覆盖原有库。



综述:用rpm包安装应用程序,最大的问题就是依赖关系。


你可能感兴趣的:(rpm,包管理)