Linux之rpm软件管理
一、软件包管理器
软件包管理器就是将二进制程序,库文件,配置文件,帮助文件打包成一个文件
1.制作软件包
2.安装、卸载、升级、查询、校验
主流三大发行版 redhat,suse,debian
redhat、suse:RPM(redhat package manager) 前端工具:yum
debian:dpt 前端工具:dpt-get
软件包之间存在依赖关系,解决依赖关系需要前端工具 yum 和 dpt-get
二、rpm命令简介
rpm包含一个数据库:/var/lib/rpm
重建数据库命令:rpm --rebuilddb
rpm命名:安装、查询、卸载、升级、校验、数据库的重建等工作
三、rpm包的组成:
主包:
bind-9.7.1-1.i586.e15.rpm
子包:
bind-libs-9.7.1-1.i586.e15.rpm
bind-utils-9.7.1-1.i586.e15.rpm
包名格式:
name-version-release.arch.rpm
bind-marjor.minor.release-release.arch.rpm 第一个release是软件开发者的版本号,release是rpm制作作者的编译版本号
主版本号:重大改进
次版本号:某个子功能发生重大变化
发行号:修正了部分bug,调整了一点儿功能
rpm包两种格式:
二进制格式 源码格式:还需要进行单独的编译
rpm包编译配置完成后,制作成rpm包
bind-9.7.1-1.ppc.rpm ppc等于powerpc平台
uname -r当前系统版本号 or uname -a
四、rpm命令
1.rpm包安装
rpm -i /PATH/TO/PACKAGE_FILE
-h用50个#号显示安装进度
-v显示详细信息
[root@localhost Packages]# rpm -i zsh-4.3.11-4.el6_7.2.x86_64.rpm
rpm -ivh /path/to/package_file
[root@localhost Packages]# rpm -ivh zsh-4.3.11-4.el6_7.2.x86_64.rpm Preparing... ########################################### [100%] package zsh-4.3.11-4.el6_7.2.x86_64 is already installed
2.包查询
[root@localhost Packages]# rpm -q zsh zsh-4.3.11-4.el6_7.2.x86_64 [root@localhost Packages]# rpm -qi zsh Name : zsh Relocations: (not relocatable) Version : 4.3.11 Vendor: Red Hat, Inc. Release : 4.el6_7.2 Build Date: Fri 11 Mar 2016 06:31:49 AM PST Install Date: Thu 31 May 2018 03:20:06 AM PDT Build Host: x86-029.build.eng.bos.redhat.com Group : System Environment/Shells Source RPM: zsh-4.3.11-4.el6_7.2.src.rpm Size : 5298977 License: BSD Signature : RSA/8, Mon 14 Mar 2016 03:32:00 AM PDT, Key ID 199e2f91fd431d51 Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> URL : http://zsh.sunsite.dk/ Summary : A powerful interactive shell Description : The zsh shell is a command interpreter usable as an interactive login shell and as a shell script command processor. Zsh resembles the ksh shell (the Korn shell), but includes many enhancements. Zsh supports command line editing, built-in spelling correction, programmable command completion, shell functions (with autoloading), a history mechanism, and more. [root@localhost Packages]# rpm -ql zsh /bin/zsh /etc/skel/.zshrc /etc/zlogin /etc/zlogout /etc/zprofile /etc/zshenv /etc/zshrc .....
[root@localhost Packages]# rpm -qf /usr/share/zsh/site-functions/
zsh-4.3.11-4.el6_7.2.x86_64
[root@localhost Packages]# rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc
[root@localhost Packages]# rpm -qd zsh
/usr/share/doc/zsh-4.3.11/BUGS
/usr/share/doc/zsh-4.3.11/CONTRIBUTORS
/usr/share/doc/zsh-4.3.11/FAQ
......
[root@localhost Packages]# rpm -q --scripts zsh
postinstall scriptlet (using /bin/sh):
if [ ! -f /etc/shells ] ; then
echo "/bin/zsh" > /etc/shells
else
grep -q "^/bin/zsh$" /etc/shells || echo "/bin/zsh" >> /etc/shells
fi
if [ -f /usr/share/info/zsh.info.gz ]; then
# This is needed so that --excludedocs works.
/sbin/install-info /usr/share/info/zsh.info.gz /usr/share/info/dir \
--entry="* zsh: (zsh). An enhanced bourne shell."
fi
......
如果某个rpm包尚未安装,我们需要查询其说明信息,安装以后会生成的文件
[root@localhost Packages]# rpm -qpl zlib-devel-1.2.3-29.el6.x86_64.rpm /usr/include/zconf.h /usr/include/zlib.h /usr/lib64/libz.so /usr/lib64/pkgconfig/zlib.pc /usr/share/doc/zlib-devel-1.2.3 /usr/share/doc/zlib-devel-1.2.3/README /usr/share/doc/zlib-devel-1.2.3/algorithm.txt /usr/share/doc/zlib-devel-1.2.3/example.c /usr/share/doc/zlib-devel-1.2.3/minigzip.c /usr/share/man/man3/zlib.3.gz
3.软件包升级
[root@localhost Packages]# rpm -K zsh-4.3.11-4.el6_7.2.x86_64.rpm zsh-4.3.11-4.el6_7.2.x86_64.rpm: rsa sha1 (md5) pgp md5 OK