Linux软件包管理详解

大纲

一、软件包组成部分

二、rpm详解

三、yum详解

一、软件包组成部分

软件包组成部分

①二进制程序,例如/bin /sbin

②库,例如/lib

③配置文件,例如/etc

④帮助文档,例如/usr/share/man

二、rpm详解

rpm - RPM Package Manager    # RPM包管理器

SYNOPSIS
   QUERYING AND VERIFYING PACKAGES:-q、-V、--import、-K
   INSTALLING, UPGRADING, AND REMOVING PACKAGES:-i、-U、-F、-e
   MISCELLANEOUS:--initdb、--addsign、--querytags、--setperms

1、安装

rpm -i /PATH/TO/PACKAGE_FILE
        
        -h: 以#显示进度;每个#表示2%; 
        -v: 显示详细过程
        -vv: 更详细的过程

(1)、安装时显示详细信息:-v

[[email protected] test]# ls
corosync-1.4.7-2.el6.x86_64.rpm  vsftpd-2.2.2-14.el6.x86_64.rpm
[[email protected] test]# rpm -ivh vsftpd-2.2.2-14.el6.x86_64.rpm   # 这个包没有依赖关系,顺利安装
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]

(2)、安装时忽略依赖关系:--nodeps

[[email protected] test]# rpm -ivh corosync-1.4.7-2.el6.x86_64.rpm     # 这个包有依赖关系,装不上
Preparing...                ########################################### [100%]
	package corosync-1.4.7-2.el6.x86_64 is already installed
[[email protected] test]# rpm -ivh --nodeps corosync-1.4.7-2.el6.x86_64.rpm   # --nodeps忽略依赖关系
Preparing...                ########################################### [100%]
	package corosync-1.4.7-2.el6.x86_64 is already installed    # 虽然装上去了,但是可能无法使用

(3)、重新安装某个已经安装过的软件:--replacepkgs

[[email protected] test]# rpm -ivh vsftpd-2.2.2-14.el6.x86_64.rpm     
Preparing...                ########################################### [100%]
package vsftpd-2.2.2-14.el6.x86_64 is already installed    # 此时提示已经安装过了
[[email protected] test]# rpm -ivh --replacepkgs vsftpd-2.2.2-14.el6.x86_64.rpm # 替换安装
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]

(4)、强制安装:--force

[[email protected] test]# rpm -ivh vsftpd-2.2.2-14.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
package vsftpd-2.2.2-14.el6.x86_64 is already installed    # 此时提示已经安装过了
[[email protected] test]# rpm -ivh --force vsftpd-2.2.2-14.el6.x86_64.rpm # 强制安装
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]

(5)、测试能否安装:--test

[[email protected] test]# rpm -e vsftpd    # 先卸载此rpm包 
[[email protected] test]# rpm  -ivh --test vsftpd-2.2.2-14.el6.x86_64.rpm # 此时并没有安装,只是测试
Preparing...                ########################################### [100%]    
[[email protected] test]# rpm -q vsftpd        # 查询是否安装此rpm包 
package vsftpd is not installed

二、查询

rpm -q PACKAGE_NAME

1、查询指定的包是否已经安装 rpm -q

[[email protected] test]# rpm -q vsftpd
vsftpd-2.2.2-14.el6.x86_64

2、查询已经安装的所有包 rpm -qa

[[email protected] test]# rpm -qa | grep "vsftpd"
vsftpd-2.2.2-14.el6.x86_64

3 、查询指定包的说明信息 rpm -qi

[[email protected] test]# rpm -qi vsftpd    
package vsftpd is not installed
[[email protected] test]# rpm -ivh vsftpd-2.2.2-14.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]
[[email protected] test]# rpm -qi vsftpd
Name        : vsftpd                       Relocations: (not relocatable)
Version     : 2.2.2                             Vendor: CentOS
Release     : 14.el6                        Build Date: Fri 24 Jul 2015 08:49:50 AM CST
Install Date: Sun 29 Nov 2015 08:32:19 PM CST      Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Daemons    Source RPM: vsftpd-2.2.2-14.el6.src.rpm
Size        : 339540                           License: GPLv2 with exceptions
Signature   : RSA/SHA1, Sat 25 Jul 2015 04:41:15 AM CST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://vsftpd.beasts.org/
Summary     : Very Secure Ftp Daemon
Description :
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.

4、查询指定包安装后生成的文件列表 rpm -ql

[[email protected] test]# rpm -ql vsftpd |head -10
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/rc.d/init.d/vsftpd
/etc/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd_conf_migrate.sh
/usr/sbin/vsftpd
/usr/share/doc/vsftpd-2.2.2

5、查询指定包安装的配置文件 rpm -qc

[[email protected] test]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf

6、查询指定包安装的帮助文件 rpm -qd

[[email protected] test]# rpm -qd vsftpd
/usr/share/doc/vsftpd-2.2.2/AUDIT
/usr/share/doc/vsftpd-2.2.2/BENCHMARKS
/usr/share/doc/vsftpd-2.2.2/BUGS
/usr/share/doc/vsftpd-2.2.2/COPYING
/usr/share/doc/vsftpd-2.2.2/Changelog
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/hosts.allow
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_HOSTS/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/logins.txt
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS_2/README
/usr/share/doc/vsftpd-2.2.2/FAQ
/usr/share/doc/vsftpd-2.2.2/INSTALL
/usr/share/doc/vsftpd-2.2.2/LICENSE
/usr/share/doc/vsftpd-2.2.2/README
/usr/share/doc/vsftpd-2.2.2/README.security
/usr/share/doc/vsftpd-2.2.2/REWARD
/usr/share/doc/vsftpd-2.2.2/SECURITY/DESIGN
/usr/share/doc/vsftpd-2.2.2/SECURITY/IMPLEMENTATION
/usr/share/doc/vsftpd-2.2.2/SECURITY/OVERVIEW
/usr/share/doc/vsftpd-2.2.2/SECURITY/TRUST
/usr/share/doc/vsftpd-2.2.2/SIZE
/usr/share/doc/vsftpd-2.2.2/SPEED
/usr/share/doc/vsftpd-2.2.2/TODO
/usr/share/doc/vsftpd-2.2.2/TUNING
/usr/share/doc/vsftpd-2.2.2/vsftpd.xinetd
/usr/share/man/man5/vsftpd.conf.5.gz
/usr/share/man/man8/vsftpd.8.gz

7、查询指定包中包含的脚本 rpm -q --scripts

[[email protected] test]# rpm -q --scripts vsftpd
postinstall scriptlet (using /bin/sh):
/sbin/chkconfig --add vsftpd
preuninstall scriptlet (using /bin/sh):
if [ $1 = 0 ]; then
 /sbin/service vsftpd stop > /dev/null 2>&1
 /sbin/chkconfig --del vsftpd
fi

8、查询指定的文件是由哪个rpm包安装生成的 rpm -qf

[[email protected] test]# rpm -qf /usr/share/man/man5/vsftpd.conf.5.gz
vsftpd-2.2.2-14.el6.x86_64

9、rpm包尚未安装 rpm -qpi

[[email protected] test]# ls
corosync-1.4.7-2.el6.x86_64.rpm  vsftpd-2.2.2-14.el6.x86_64.rpm
[[email protected] test]# rpm -q corosync
package corosync is not installed
[[email protected] test]# rpm -qi corosync-1.4.7-2.el6.x86_64.rpm 
package corosync-1.4.7-2.el6.x86_64.rpm is not installed
[[email protected] test]# rpm -qpi corosync-1.4.7-2.el6.x86_64.rpm 
Name        : corosync                     Relocations: (not relocatable)
Version     : 1.4.7                             Vendor: CentOS
Release     : 2.el6                         Build Date: Fri 24 Jul 2015 07:12:34 AM CST
Install Date: (not installed)               Build Host: c6b9.bsys.dev.centos.org
Group       : System Environment/Base       Source RPM: corosync-1.4.7-2.el6.src.rpm
Size        : 448791                           License: BSD
Signature   : RSA/SHA1, Sat 25 Jul 2015 04:38:44 AM CST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://ftp.corosync.org
Summary     : The Corosync Cluster Engine and Application Programming Interfaces
Description :
This package contains the Corosync Cluster Engine Executive, several default
APIs and libraries, default configuration files, and an init script.

三、升级

1、如果装有老版本的,则升级;否则,则安装

[[email protected] test]# rpm -ivh vsftpd-2.3.5-1.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
file /etc/logrotate.d/vsftpd from install of vsftpd-2.3.5-1.el6.x86_64 conflicts with file from package vsftpd-2.2.2-14.el6.x86_64
file /etc/pam.d/vsftpd from install of vsftpd-2.3.5-1.el6.x86_64 conflicts with file from package vsftpd-2.2.2-14.el6.x86_64
file /etc/rc.d/init.d/vsftpd from install of vsftpd-2.3.5-1.el6.x86_64 conflicts with file from package vsftpd-2.2.2-14.el6.x86_64
file /usr/sbin/vsftpd from install of vsftpd-2.3.5-1.el6.x86_64 conflicts with file from package vsftpd-2.2.2-14.el6.x86_64
file /etc/vsftpd/ftpusers from install of vsftpd-2.3.5-1.el6.x86_64 conflicts with file from package vsftpd-2.2.2-14.el6.x86_64
file /etc/vsftpd/user_list from install of vsftpd-2.3.5-1.el6.x86_64 conflicts with file from package vsftpd-2.2.2-14.el6.x86_64
file /etc/vsftpd/vsftpd.conf from install of vsftpd-2.3.5-1.el6.x86_64 conflicts with file from package vsftpd-2.2.2-14.el6.x86_64
file /etc/vsftpd/vsftpd_conf_migrate.sh from install of vsftpd-2.3.5-1.el6.x86_64 conflicts with file from package vsftpd-2.2.2-14.el6.x86_64
file /usr/share/man/man5/vsftpd.conf.5.gz from install of vsftpd-2.3.5-1.el6.x86_64 conflicts with file from package vsftpd-2.2.2-14.el6.x86_64
file /usr/share/man/man8/vsftpd.8.gz from install of vsftpd-2.3.5-1.el6.x86_64 conflicts with file from package vsftpd-2.2.2-14.el6.x86_64
[[email protected] test]# rpm -Uvh vsftpd-2.3.5-1.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]
[[email protected] test]# rpm -q vsftpd
vsftpd-2.3.5-1.el6.x86_64

2、如果装有老版本的,则升级;否则,退出

[[email protected] test]# rpm -q lftp
package lftp is not installed
[[email protected] test]# rpm -Fvh lftp-4.0.9-6.el6.x86_64.rpm 
[[email protected] test]# rpm -q lftp
package lftp is not installed
[[email protected] test]# rpm -q vsftpd
vsftpd-2.2.2-14.el6.x86_64
[[email protected] test]# rpm -Fvh vsftpd-2.3.5-1.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]
[[email protected] test]# rpm -q vsftpd
vsftpd-2.3.5-1.el6.x86_64

3、降级

[[email protected] test]# rpm -q vsftpd
vsftpd-2.3.5-1.el6.x86_64
[[email protected] test]# rpm -Uvh vsftpd-2.2.2-14.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
package vsftpd-2.3.5-1.el6.x86_64 (which is newer than vsftpd-2.2.2-14.el6.x86_64) is already installed
[[email protected] test]# rpm -Uvh --oldpackage vsftpd-2.2.2-14.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]
[[email protected] test]# rpm -q vsftpd
vsftpd-2.2.2-14.el6.x86_64

四、卸载

[[email protected] test]# rpm -q vsftpd
vsftpd-2.2.2-14.el6.x86_64
[[email protected] test]# rpm -e vsftpd
[[email protected] test]# rpm -q vsftpd
package vsftpd is not installed

五、校验

[[email protected] test]# rpm -V vsftpd
[[email protected] test]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[[email protected] test]# echo "A new line" >> /etc/vsftpd/vsftpd.conf 
[[email protected] test]# rpm -V vsftpd
S.5....T.  c /etc/vsftpd/vsftpd.conf

       S file Size differs
       M Mode differs (includes permissions and file type)
       5 digest (formerly MD5 sum) differs
       D Device major/minor number mismatch
       L readLink(2) path mismatch
       U User ownership differs
       G Group ownership differs
       T mTime differs
       P caPabilities differ

六、重建数据库

七、检验来源合法性,及软件包完整性

rpm -K /PAPT/TO/PACKAGE_FILE

时间: 2024-10-27 11:41:22

Linux软件包管理详解的相关文章

Yum软件包管理详解

目录 1. Yum 1.1 检查和更新包 1.1.1 查询更新 1.1.2 更新包 1.1.3 使用 ISO 和 Yum 离线升级系统 1.2 使用包 1.2.1 搜索包 1.2.2 列出包 1.2.3 显示包信息 1.2.4 安装包 删除包 1.3 查看事务记录 1.3.1 事务记录 1.3.2 检查事务 1.3.3 恢复和重复事务 1.4 配置yum和yum存储库 1.4.1 配置 /etc/yum.conf 文件 1.4.2 /etc/yum.conf 的[main]选项 1.4.3 /e

20、磁盘管理—linux磁盘管理详解(分区)

linux磁盘管理 添加磁盘步骤: fdisk 管理磁盘分区 格式化文件系统. 设备挂载 开机自动挂载 UUID挂载 取消挂载点 Parted(gpt大于2G分区) 查看文件系统的使用情况. df 查看挂载信息与磁盘使用量 du 查看使用量 查看分区状况lsblk 查看设备信息blkid linux磁盘管理 当全新安装了一块新的硬盘设备后,为了更充分.安全的利用硬盘空间首先要进行磁盘的分区,然后格式化,最后挂载使用. 添加磁盘步骤: 添加设备->分区->格式化(创建文件系统)-> [起名

软件包管理详解

一.简介 我们知道在操作系统上所使用的程序都是由程序员通过开发工具得来,程序员直接编写的纯文本的文档我们称之为源代码,由于计算机识别的是二进制程序,因此在完成源代码编写之后,就必须要经过编译成为操作系统可以看得懂的二进制程序,这里的编译就是通过编译器来进行的操作,编译器的功能就是将源代码程序转换成二进制程序,然后通过一定的安装步骤安装到操作系统上来,进而被系统用户使用. 二.程序包管理器 目前Linux系统之上软件安装方式最常见的两种,分别是: dpkg: 这个机制最早是由Debian Linu

Linux用户管理详解

1.Linux中用户和组的标识 说明:Linux系统是基于用户身份对系统的资源进行管理的操作系统 (1)用户帐号:UID(User Identity,用户标识号) (2)超级用户在任何Linux系统中UID=0 (3)系统用户在不同版本Linux中的UID范围:UID:1-499或UID:1-999 (4)普通用户在不同版本Linux中的UID范围:UID:500-65535或UID:1000-65535 (5)组帐号:GID(Group Identify,组标识号) 组可以分为:初始组(私有组

Linux权限管理详解

Linux中权限的种类较多,可以划分为用户对文件的权限.用户对系统命令的权限和文件特殊权限三类.下面详细阐述. 阐述设置权限的意义和作用 一.用户对文件的权限 用户对文件的权限是指用户拥有的对文件的增删改查操作.又可以细分为基本权限(ugo).umask权限和ACL权限. 1.基本权限 1).权限位 Linux文件的权限为一共是10位.第一位标示文件类型,之后每三位标示所有者.所属组和其他人的权限. 2).权限含义 3).相关命令 2.umask权限 3.ACL权限 1).ACL权限的含义和作用

Linux ACL管理详解

转自: http://linuxguest.blog.51cto.com/195664/124107 1. 为什么要使用ACL先让我们来简单地复习一下Linux的file permission.在linux下,对一个文件(或者资源)可以进行操作的对象被分为三类: file owner(文件的拥有者), group(组,注意不一定是文件拥有者所在的组), other (其他)而对于每一类别又分别定义了read, write and execute/search permission (这里不讨论S

【我的Linux,我做主!】Linux权限管理详解

(1)了解文件所有者所属组的概念及修改假设Tom现在有一个kindle在使用,他买了后说:"不仅我可以使用,我们班的所有同学如果需要也可以找我来使用,但是除了我们班级之外的其他人都不能使用".在此kindle的属主user就是Tom,kindle的属组group就是Tom所在的班级,其他人other都不能使用这个kindle.所以对文件设置权限,就是对对应的u,g,o进行相关设置.文件属性信息的含义如下(图1-2):修改aa.txt文件的属主和属组信息(图1-3):# chown ro

linux磁盘管理之LVM逻辑卷认识与管理详解(实验详细,可跟做)

Linux磁盘管理之LVM逻辑卷认识与管理详解 前言 本文接着上篇文章作如下延伸:链接:Linux磁盘管理之磁盘管理与文件系统 什么是LVM?为什么需要LVM? 如何具体进行LVM逻辑卷管理? 什么是磁盘配额?为什么需要磁盘配额? 在Linux中进行磁盘配额的条件是什么呢? 如何具体进行磁盘配额? 下面对以上问题逐一讲解,深入实例进行操作,带你深入理解linux磁盘管理之LVM逻辑卷管理. 一.LVM概述 1.什么是LVM?为什么需要LVM? ? 许多 Linux 使用者安装操作系统时都会遇到这

Linux之YUM 详解

一.yum是什么        yum = Yellow dog Updater, Modified        主要功能是更方便的添加/删除/更新RPM包.        它能自动解决包的倚赖性问题.        它能便于管理大量系统的更新问题 二.yum 的运用格式及常用参数 yum [option] "包名" 有些记不住的包名 可以使用通配符* 来一次安装多个前端一直的软件包 -h,--help     显示帮助信息,并退出 -t,--tolerant  忍受发生的错误 -y