Linux系统程序包的管理功能相关命令rpm与yum的使用

一、软件包管理核心功能

1、软件包制作

2、包管理器:打包,安装、升级、卸载、查询及校验

3、工具:rpm 、deb

4、程序包的组成部分:

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

库文件:/lib64, /usr/lib64

配置文件:/etc

帮助文件:manual, info

5、rpm包管理

rpm:数据库  /var/lib/rpm

rpmbuild:建立软件管理数据库

rpm包默认为二进制格式,有rpm包作者下载源码程序,编译完成后,制作成rpm包

rpm包命名

主包:bind-9.7.1-1.el5.i586.rpm

子包:bind-libs-9.7.1-1.el5.i586.rpm;bind-utils-9.7.1-1.el5.i586.rpm

包名格式:name-VERSION-RELEASE.ARCH.rpm(bind-major.minor.release-release.arch.rpm)

依赖关系:x--->y--->z

6、如何获取rpm包

(1)发行版提供的程序包

(2)Fedora-EPEL

(3)项目的官方站点

(4)搜索引擎

http://rpmfind.net

http://rpm.pbone.net

http://pkgs.org

二、基于rpm命令实现程序包管理

1、安装

rpm {-i|--install} [install-options] PACKAGE_FILE ...

-i:

-v:显示详细过程(vv更详细)

-h:以#显示进度;每个#表示2%

默认使用 rpm -ivh /path/to/packagefile

--nodeps:忽略依赖关系

--replacepkgs:重新安装,替换原有安装

--force:强行安装,可以实现重装或降级

[[email protected] Packages]# rpm -ivh zsh-html-4.3.10-7.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:zsh-html               ########################################### [100%]

2、升级

rpm -Uvh /path/to/New_Package_File:如果装有老版本的包,则升级,否则,则安装

rpm -Fvh  /path/to/New_Package_File:如果装有老版本的包,则升级,否则,退出

--oldpackage:降级

[[email protected] Packages]# rpm -Uvh /mnt/cdrom/Packages/zsh-4.3.10-5.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:zsh                    ########################################### [100%]
[[email protected] Packages]# rpm -Uvh /mnt/cdrom/Packages/zsh-4.3.10-5.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
    package zsh-4.3.10-5.el6.x86_64 is already installed
[[email protected] Packages]# rpm -Fvh /mnt/cdrom/Packages/zsh-4.3.10-5.el6.x86_64.rpm

3、卸载

rpm -e  {--nodeps} Package_Name

[[email protected] Packages]# rpm -q zsh
zsh-4.3.10-5.el6.x86_64
[[email protected] Packages]# rpm -e zsh
[[email protected] Packages]# rpm -q zsh
package zsh is not installed

4、查询

rpm -q Package_Name:查询指定的包是否已经安装

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

rpm -qi Package_Name:查询指定包的说明信息

[[email protected] Packages]# rpm -q zsh
zsh-4.3.10-5.el6.x86_64
[[email protected] Packages]# rpm -qi zsh
Name        : zsh                          Relocations: (not relocatable)
Version     : 4.3.10                            Vendor: CentOS
Release     : 5.el6                         Build Date: Sat 23 Jun 2012 07:04:50 AM CST
Install Date: Tue 15 Sep 2015 04:32:34 PM CST      Build Host: m4500n
Group       : System Environment/Shells     Source RPM: zsh-4.3.10-5.el6.src.rpm
Size        : 5009102                          License: BSD
Signature   : RSA/SHA1, Sat 23 Jun 2012 09:16:42 PM CST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
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.

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

[[email protected] Packages]# rpm -ql zsh 
/bin/zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc
/usr/lib64/zsh
/usr/lib64/zsh/4.3.10
/usr/lib64/zsh/4.3.10/zsh
/usr/lib64/zsh/4.3.10/zsh/attr.so
/usr/lib64/zsh/4.3.10/zsh/cap.so
/usr/lib64/zsh/4.3.10/zsh/clone.so
/usr/lib64/zsh/4.3.10/zsh/compctl.so
/usr/lib64/zsh/4.3.10/zsh/complete.so

rpm -qc Package_Name:查询指定包安装生成的配置文件

[[email protected] Packages]# rpm -qc zsh 
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc

rpm -qd Package_Name:查询指定包安装生成的帮助文档

rpm -qc --scripts  Package_Name:查询指定包中包含的脚本

preinstall: 安装前脚本
                postinstall:安装后脚本
                preuninstall: 卸载前脚本
                postuninstall: 卸载后脚本

[[email protected] 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

:
preuninstall scriptlet (using /bin/sh):
if [ "$1" = 0 ] ; then
    if [ -f /usr/share/info/zsh.info.gz ]; then
    # This is needed so that --excludedocs works.
    /sbin/install-info --delete /usr/share/info/zsh.info.gz /usr/share/info/dir       --entry="* zsh: (zsh).            An enhanced bourne shell."
    fi
fi
:
postuninstall scriptlet (using /bin/sh):
if [ "$1" = 0 ] ; then
    if [ -f /etc/shells ] ; then
        TmpFile=`/bin/mktemp /tmp/.zshrpmXXXXXX`
        grep -v ‘^/bin/zsh$‘ /etc/shells > $TmpFile
        cp -f $TmpFile /etc/shells
        rm -f $TmpFile
    fi
fi

rpm -qf  /path/to/somefile:查询指定的文件是由哪个rpm包安装生成的

[[email protected] sbin]# rpm -qf /usr/sbin/httpd
httpd-2.2.15-39.el6.centos.x86_64

rpm -qpi /path/to/Package_Name:如果某rpm包未安装,我们需要查询其说明信息、安装后生成的文件

[[email protected] Packages]# rpm -qpi /mnt/cdrom/Packages/xz-4.999.9-0.3.beta.20091007git.el6.x86_64.rpm Name        : xz                           Relocations: (not relocatable)
Version     : 4.999.9                           Vendor: CentOS
Release     : 0.3.beta.20091007git.el6      Build Date: Mon 23 Aug 2010 01:12:38 AM CST
Install Date: (not installed)               Build Host: c6b6.bsys.dev.centos.org
Group       : Applications/File             Source RPM: xz-4.999.9-0.3.beta.20091007git.el6.src.rpm
Size        : 487887                           License: LGPLv2+
Signature   : RSA/8, Sun 03 Jul 2011 01:06:47 PM CST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://tukaani.org/xz/
Summary     : LZMA compression utilities
Description :
XZ Utils are an attempt to make LZMA compression easy to use on free (as in
freedom) operating systems. This is achieved by providing tools and libraries
which are similar to use than the equivalents of the most popular existing
compression algorithms.

LZMA is a general purpose compression algorithm designed by Igor Pavlov as
part of 7-Zip. It provides high compression ratio while keeping the
decompression speed fast.

5、校验

(1)来源合法性验证:采用非对称加密技术

(2)完成性验证:采用单向加密技术

(3)导入密钥:rpm --import /PATH/TO/KEY_FILE

[[email protected] ~]# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-6        RPM-GPG-KEY-CentOS-Security-6
RPM-GPG-KEY-CentOS-Debug-6  RPM-GPG-KEY-CentOS-Testing-6

(4)校验:rpm -K /path/to/rpm-file

[[email protected] ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[[email protected] ~]# rpm -K /mnt/cdrom/Packages/zsh-4.3.10-5.el6.x86_64.rpm 
/mnt/cdrom/Packages/zsh-4.3.10-5.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
[[email protected] Packages]# rpm -V zsh
[[email protected] Packages]# vim /usr/share/zsh/4.3.10/functions/zfls

# function zfls {

emulate -L zsh
[[ $curcontext = :zf* ]] || local curcontext=:zfls

# directory hack, see zfcd
if [[ $1 = $HOME || $1 = $HOME/* ]]; then
  1="~${1#$HOME}"
fi

zfautocheck -d

zftp ls $*
# }
#
# test
[[email protected] Packages]# rpm -V zsh
S.5....T.    /usr/share/zsh/4.3.10/functions/zfls

rpm重建数据库

rpm --rebuilddb:重建数据库,必须执行

rpm --initdb:初始化数据库,没有才会建立,有就不会创建

[[email protected] ~]# cd /var/lib/rpm/
[[email protected] rpm]# ls
Basenames     __db.002  Dirnames     Installtid    Packages        Pubkeys         Sha1header
Conflictname  __db.003  Filedigests  Name          Providename     Requirename     Sigmd5
__db.001      __db.004  Group        Obsoletename  Provideversion  Requireversion  Triggername
[[email protected] rpm]# rpm --rebuilddb

三、基于yum的程序包管理
1、YUM运行原理

(1)yum服务器:所有发型的rpm包发在yum服务器上提供别人下载,rpm包根据kernel,cpu各自的版本号分别编译发布,yum服务器提供ftp、httpd、或者file 的形式提供下载,yum服务器的重要环节是整理出每个rpm包的基本信息,包括rpm包对应的版本号,conf文件,二进制文件信息,还有关键的依赖信息,在yum服务器上提供了createrepo工具,用于把rpm包的基本信息做成一张“清单”,这张“清单”就是描述每个rpm包的说明文件信息

(2)yum客户端:client 每次调用yum install或者search的时候,都会去解析/etc/yum.repos.d下面所有以.repo结尾的配置文件,这些配置文件定义了yum服务器的地址,yum会定期去“更新”yum服务器上的rpm包“清单”,然后把“清单”下载保存到yum自己的cache里,根据 /etc/yum.conf里配置(默认/car/cache/yum下面),每次调用yum装包的时候都会去这个cache目录下去寻找“清单”,根据“清单”里的rpm包描述从而来确定安装包的名字,版本号,所需要依赖包,然后再去yum服务器下载rpm包安装,(前提是不存在rpm包的cache)

2、yum配置文件解释

/etc/yum.conf:全局配置,对所有仓库都使用的配置

[main]
cachedir=/var/cache/yum/$basearch/$releasever 
          #yum缓存目录,yum在此存储下载的rpm包和数据库,yum服务器生成的包含rpm包相关信息的“清单”
keepcache=0
          #让缓存一直为空
debuglevel=2
          #调试等级,默认为2
logfile=/var/log/yum.log
          #日志文件
exactarch=1
          #是否只升级和安装软件包、cpu体系一致的包,1为是,0为否
obsoletes=1
          #update参数,允许更新陈旧的RPM包
gpgcheck=1
          #是否进行gpg校验
plugins=1
          #是否允许使用插件,默认0不允许,但我们一般会用yum-fastestmirror这个插件
installonly_limit=5
          #允许保留多少个内核包
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

/etc/yum.repos.d/*.repo:一个文件通常用于一个或一组功能相近或相近的仓库

[base]
name=CentOS-$releasever - Base
    #对repository(软件仓库)的名称描述,并支持$releasever $basearch变量
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
    #查找更新源的地址 
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
    #更新源的直接路径,支持http://ftp://file:// 三种,baseurl只能有一个,后面可跟多个URL
gpgcheck=1
    #标时是否启用gpg验证,下面提供gpgkey的路径
gpgkey=
enable=0 
    #表示是否应用(0表示不启用,1表示启用)

可用变量说明

$releasever: 引用当前系统的发行版本号;

$arch : CPU 体系,如i386,athlon等

$basearch:cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha

3、解析YUM本地缓存文件

文件路径:/var/cache/yum/x86_64/6

[[email protected] 6]# tree
.
├── base
│   ├── 0bd8768166bc742b8ba814f3580b3d7121605662bfd2d05828d25f3c3aa5a197-filelists.sqlite
│   ├── 11bcf3233241e37e1a0e04d2fde8a609215059b5b0319fd660f796d462bbe6a8-primary.sqlite
│   ├── 2b165aac44ec8951578c7b2a29a5d391f1c66e033d79923ebd60ccc285d21c12-other.sqlite
│   ├── 486d3ee62873814293a1be370640ae9c71863a35c7299eb76739e03369ad0c3f-c6-x86_64-comps.xml.gz
│   ├── cachecookie
│   ├── gen
│   │   └── groups.xml
│   ├── mirrorlist.txt
│   ├── packages
│   └── repomd.xml
├── epel
│   ├── metalink.xml.tmp
│   └── packages
├── extras
│   ├── 11012b790366ef4d505b821aa6a02f3ee99adf27d45917444e5a66dccdb5c283-filelists.sqlite
│   ├── 3b29cce790fa94e697f2c664a0284d0e2f59d5e8e5a415de2d4b838a45914eb4-primary.sqlite
│   ├── cachecookie
│   ├── mirrorlist.txt
│   ├── packages
│   └── repomd.xml
├── timedhosts.txt
└── updates
    ├── a4fc756a63f1c3ba2be04555f4aae3e5698c810cda76d9e7e82e2ae727f93879-primary.sqlite
    ├── cachecookie
    ├── d7d81490d5d24d821b806adafafa2c0eb402ade84c2142b470918bc777792059-filelists.sqlite
    ├── mirrorlist.txt
    ├── packages
    └── repomd.xml

说明:

(1)*primary.sqlite:yum服务器上的“清单”:所有RPM包的列表,依赖关系,每个RPM包安装生成的文件列表,以sqlite方式存储

(2)*filelists.sqlite:记录了所有rpm包列表,版本号,配置文件等

(3)*other.sqlite:RPM包中额外信息,如修改日志

(4)repomd.xml:包含RPM包分组信息,同时记录上面三个文件的校验值

查看primary表里面的相关信息

[[email protected] base]# sqlite3 11bcf3233241e37e1a0e04d2fde8a609215059b5b0319fd660f796d462bbe6a8-primary.sqlite 
SQLite version 3.6.20
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .table
conflicts  db_info    files      obsoletes  packages   provides   requires 
sqlite> select * from packages;

每次yum装包或者卸载的时候都会来查询这个sqlite的DB,然后做出相应的操作

4、yum相关命令

(1)安装、卸载、升级

yum install | remove | update  rpm_package

[[email protected] 6]# yum install tree
Loaded plugins: fastestmirror, refresh-packagekit
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
base                                                                        | 3.7 kB     00:00     
extras                                                                      | 3.4 kB     00:00     
updates                                                                     | 3.4 kB     00:00     
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.5.3-3.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================
 Package             Arch                  Version                       Repository           Size
===================================================================================================
Installing:
 tree                x86_64                1.5.3-3.el6                   base                 36 k

Transaction Summary
===================================================================================================
Install       1 Package(s)

Total download size: 36 k
Installed size: 65 k
Is this ok [y/N]: y
Downloading Packages:
tree-1.5.3-3.el6.x86_64.rpm                                                 |  36 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : tree-1.5.3-3.el6.x86_64                                                         1/1 
  Verifying  : tree-1.5.3-3.el6.x86_64                                                         1/1 

Installed:
  tree.x86_64 0:1.5.3-3.el6                                                                        

Complete!
[[email protected] base]# yum remove tree
Loaded plugins: fastestmirror, refresh-packagekit
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.5.3-3.el6 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================
 Package                 Arch                      Version                         Repository                Size
==================================================================================================================
Removing:
 tree                    x86_64                    1.5.3-3.el6                     @base                     65 k

Transaction Summary
==================================================================================================================
Remove        1 Package(s)

Installed size: 65 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing    : tree-1.5.3-3.el6.x86_64                                                                        1/1 
  Verifying  : tree-1.5.3-3.el6.x86_64                                                                        1/1 

Removed:
  tree.x86_64 0:1.5.3-3.el6                                                                                       

Complete!

(2)查询

yum serach  xx {all }查询

yum provides  /path/to/somefile:查询文件是由哪个文件安装产生

[[email protected] yum.repos.d]# yum search httpd
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * c6-media: 
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
=============================================== N/S Matched: httpd ===============================================
libmicrohttpd-devel.i686 : Development files for libmicrohttpd
libmicrohttpd-devel.x86_64 : Development files for libmicrohttpd
libmicrohttpd-doc.noarch : Documentation for libmicrohttpd
httpd.x86_64 : Apache HTTP Server
httpd-devel.i686 : Development interfaces for the Apache HTTP server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
libmicrohttpd.i686 : Lightweight library for embedding a webserver in applications
libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in applications
mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd Server
mod_dav_svn.x86_64 : Apache httpd module for Subversion server
mod_dnssd.x86_64 : An Apache HTTPD module which adds Zeroconf support

  Name and summary matches only, use "search all" for everything.
[[email protected] ~]# yum provides /usr/bin/tree
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * c6-media: 
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
tree-1.5.3-3.el6.x86_64 : File system tree viewer
Repo        : base
Matched from:
Filename    : /usr/bin/tree

tree-1.5.3-2.el6.x86_64 : File system tree viewer
Repo        : c6-media
Matched from:
Filename    : /usr/bin/tree

tree-1.5.3-3.el6.x86_64 : File system tree viewer
Repo        : installed
Matched from:
Other       : Provides-match: /usr/bin/tree

(3)重新安装与降级

yum reinstall | downgrade

(4)清理缓存clean

makecache:生成元数据缓存

yum clean packages  清理/var/cacheyum下的软件包

yum clean headers  清理/var/cacheyum下的软件包包头(包头含有依赖信息)

yum clean metadata  清理yum用于确定软件包可用的元数据,使用这个选项会强制让yum下次运行的重新下载元数据

yum clean dbcache 清理sqlite缓存,这个缓存用来以很快的速递访问元数据,yum下次运行时会重新创建

yum clean all   清理以上所有

(5)group包组管理

groupinfo      显示关于包组的细节

groupinstall   从组里安装软件包到你的系统

grouplist      列出当前的组包信息

groupremove    移除系统中一个组中的包

[[email protected] sbin]# yum grouplist
Loaded plugins: fastestmirror, refresh-packagekit
Setting up Group Process
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
Installed Groups:
   Additional Development
   Compatibility libraries
   Desktop
   Desktop Debugging and Performance Tools
   Dial-up Networking Support
   Directory Client
   E-mail server
   FCoE Storage Client
   Fonts
   General Purpose Desktop
   Graphical Administration Tools
   KDE Desktop
   Legacy UNIX compatibility
   Legacy X Window System compatibility

(6)yum仓库管理

repolist {all  |   enable|  disable  },默认为enable

[[email protected] sbin]# yum repolist
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
repo id                                         repo name                                                   status
base                                            CentOS-6 - Base                                             6,575
extras                                          CentOS-6 - Extras                                              35
updates                                         CentOS-6 - Updates                                            298
repolist: 6,908

四、实例演示使用光盘当本地仓库

步骤:(1)挂载光盘到本地目录

(2)定义仓库,指定更新源文件路径(file:///)

[[email protected] ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              39G  5.6G   31G  16% /
tmpfs                 499M   80K  499M   1% /dev/shm
/dev/sda1             194M   29M  156M  16% /boot
/dev/sda3             6.8G  3.9G  2.6G  61% /usr
/dev/sr0              4.1G  4.1G     0 100% /media/CentOS_6.4_Final
/dev/sr0              4.1G  4.1G     0 100% /mnt/cdrom
[[email protected] ~]# vim /etc/yum.repos.d/CentOS-Media.repo 
# CentOS-Media.repo

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom/
        file:///media/CentOS/
        file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[[email protected] ~]# yum repolist
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * c6-media: 
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
repo id                                          repo name                                                  status
base                                             CentOS-6 - Base                                            6,575
c6-media                                         CentOS-6 - Media                                           6,381
extras                                           CentOS-6 - Extras                                             35
updates                                          CentOS-6 - Updates                                           298
repolist: 13,289
时间: 2024-11-20 02:31:14

Linux系统程序包的管理功能相关命令rpm与yum的使用的相关文章

Linux系统程序包的管理

一.rpm:是通过预先编译并且打包成为RPM格式的,有以下有点: 1.不需要编译:RPM含以及编译过的程序与配置文件等数据 2.安装前会检测系统的硬盘容量.操作系统版本等,可以避免错误安装. 3.自身提供软件版本信息.存在依赖关系的相关软件信息.软件用途说明等便于使用者了解该软件 4.管理方式使用数据库记录RPM的相关参数,便于升级.删除.查询和验证. 缺点: 不能很好的解决存在依赖关系的相关软件 rpm包命名格式: 软件名称-版本信息-释出版本.支持的操作平台.rpm 例如: bash-4.2

Linux系统程序包管理

Linux程序包管理 API:Application Program Interface ABI:Application Binary INnterface Unix-like,系统上的二级制格式的应用程序文件格式为 ELF Windows系统的二级制格式的应用程序文件格式为: exe,msi 库级别的虚拟化: Linux:WinE,可以实现在Linux系统上运行Windows的二进制可执行程序 Windows:Cywin,可以实现在Windows系统上运行Linux的位二进制可执行程序 各种编

Linux系统程序包管理---YUM

YUM 一. CentOS: yum, dnf 1.YUM: (Yellow dogUpdate Modifier),rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,up2date的替代工具 2.yum repository: yum repo 存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata) 注意: repodata目录所在的位置就是仓库所指向的路径 3.文件服务器: ftp:// http:// file:///(本地的,默认是光盘)

Linux系统程序包管理工具 RPM

什么是RPM: RPM全名是"RedHat Package Manager",简称为RPM,这套软件管理机制是由RedHat这家公司发展而来的.RPM是以一种数据库记录的方式来将你所需要的软件安装到你的Linux系统的一套管理机制.其最大的特点就是将你要安装的软件先编译过,并且打包成为RPM机制的安装包,通过包装好的软件里面默认的数据库记录这个软件安装时必须具备的依赖属性软件,具备就安装.不具备就不予安装. 程序的组成部分: 编译之前:源代码 编译文件 二进制程序:/bin, /sbi

总结rpm和yum实现程序包的管理功能

程序包的管理器,其功能有打包.后续的包管理(安装,升级,卸载,查询及校验)       deb:debian系列系统        rpm:功能的提升使得rpm包管理器成为linux主流的标准                程序包的组成四部分:            1.二进制程序:程序的源代码存放/bin, /sbin,/ /usr/bin, /usr/sbin, 2.库文件:某些         二进制程序可能会被多个程序包调用,将这些被多个调用的称               之为库文件存

rpm和yum实现程序包的管理功能

rpm 1.rmp包管理器作用 rpm包管理器,可以对程序包进行安装.升级.卸载.查询和校验(主要校验来源的合法性和完整性) 2.rpm包的命名机制(通常) name-VERSION-RELEASE-ARCH.rpm,如 3.获取rpm包的途径 1.发行版提供的程序包(光盘) 2.Fedora-EPEL组织 3.项目的官方站点 4.搜索引擎 rpmfind.net   pkgs.org等 4.常用命令选项 -i : install 安装 -v :显示详细过程 -h :用"#"显示安装过

Linux的系统程序包管理

RPM 我们知道在操作系统之上使用的程序是由程序员通过开发工具开发出来的,而程序员编写的纯文本我们 称为源代码.由于计算机只认识二进制,程序员写好的源代码要经过一定的编译成计算机认识的二进制程序.而编译就是将源代码转成二进制,再通过一定的步骤来安装到时操作系统之上被我们使用. 虽然原始码进行软件编译, 毕竟不是每个人都会进行原始码编译的.如果我位的 Linux系统与发行厂商一模一样,那么在厂商系统上编译出来的程序,自然也可以在我们的系统上来运行.由于我们本来就是使用厂商的发行版,那么使用厂商系统

linux下程序包管理

我是一个老实人从来不说实话,我是一个好人从来不说真话,学习linux有段时间了,太高深的东西还不懂,就写一下最近学习的程序包管理吧. 大家都知道在我们学习linux主要是搞运维的,那么我们每天上班的时候就避免不了跟程序包打交道,你不信啊?反正我上班的时候领导总是在我不经意的抬头瞬间给我抛一个媚眼,我立马就领悟了领导的意思,有活要干了,最好不是服务器挂了老天保佑. 有时候我们需要在系统上安装某个软件或者服务(就是程序包),可能需要现在本地磁盘上查一下有没有这些程序包,有的话我们可以直接使用rpm

博客9:程序包的管理,以及软件的安装和管理

1.对于二进制应用程序的认识  (1)组成部分:       二进制文件,库文件,配置文件,帮助文件(前两项是由源代码组成的)  (2)程序包管理器:       debian:deb,dpt       redhat:rpm,rpm  (3)源代码的命名方式       name-VERSION.tar.gz       其中VERSION:major.minor.release 2.查看二进制程序所依赖的库文件   # ldd /PATH/TO/BINARY_FILE  管理以及查看本机装载