2015年9月10日【程序包管理:rpm, yum】-JY1506402-19+liuhui880818

《Linux系統管理》html

(1)磁盤和文件系統管理;node

(2)RAID, LVM; btrfs; linux

(3)程序包管理:rpm, yum(dnf)git

(4)Linux的網絡管理; 算法

(5)進程和做業管理:htop, glances, tsar;centos

(6)sed和awk;緩存

(7)Linux系統的開機啓動流程;bash

(8)內核基礎知識,內核定製編譯;網絡

(9)系統安裝:kickstart, pxedom

1、做業(練習)內容:

一、總結rpm和yum實現程序包的管理功能.

要求:做業要圖文並茂

2、完成時間:

2015年9月15日以前。

3、完成步驟:

 《程序包管理:rpm,yum》

目錄:

1.程序包的組成部分

2.包管理器

3.rpm軟件管理

  1)rpm包說明

  2)如何獲取rpm

  3)rpm命令:實現對程序包管理

    (1)安裝

    (2)升級

    (3)卸載

    (4)查詢

    (5)校驗

4.YUM軟件管理

 1)YUM程序的配置文件

 2)yum命令:

    (1)安裝

    (2)卸載

    (3)升級

    (4)查詢

 3)建立本身的本地yum倉庫


 

1.程序包的組成部分

    二進程序:/bin,/sbin,/usr/bin,/usr/sbin

    庫文件:/lib64,/usr/lib64

    配置文件:/etc

    幫助文件:manual,info,INSTALL,

 

2.包管理器

Debian的軟件包管理工具命令:dpkg,apt-get

CentOS/Redhat經常使用軟件包管理工具命令:rpm,yum

3.rpm

 1)rpm包說明

    RPM 全稱爲 Redhat Package Manager,最先由 Red Hat 公司制定實施,隨後被 GNU 開源操做系統接受併成爲不少 Linux 系統 (RHEL) 的既定軟件標準。與 RPM 進行競爭的是基於 Debian 操做系統 (UBUNTU) 的 DEB 軟件包管理工具- DPKG,全稱爲 Debian Package,功能方面與 RPM 類似。兩者之具體比較不在本文範圍以內。

 2)如何獲取rpm

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

(2)Fedora-EPEL

(3)項目的官方站點

(4)搜索引擎

   http://rpmfind.net

   http://rpm.pbone.net

   http://pkgs.org

        

 3)rpm命令:實現對程序包管理


RPM軟件包經常使用的命令規範以下:

lrzsz-0.12.20-36.el7.x86_64.rpm 

說明:

lrzsz :軟件名字

0.12.20-36:軟件版本號,

el7:針對於RHEL7的發現版本,

x86_64:表示運行在64位上的系統。


(1)安裝

rpm -ivh PACKAGE_FILE

    -i 安裝rpm包

    -v:顯示詳細信息

    -h:顯示文本進度條

    --nodeps:忽略依賴關係安裝

    --relacepkgs:重裝程序包

示例:安裝

[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# cd /mnt/Packages/
[root@localhost Packages]# rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:lrzsz-0.12.20-36.el7             ################################# [100%]

(2)升級                  

rpm-[Uvh|Fvh_ PACKAGE_FILE

    -Uvh:若是有舊版程序包,則升級之,若是沒有,則安裝之;

    -Fvh:若是有舊版程序包,則升級之,若是沒有,則不安裝;

    --oldpackage:降級;

    --force:強制安裝。

(3)卸載

rpm-e RACKAGE_NAME

示例:

[root@localhost Packages]# rpm -e lrzsz
[root@localhost Packages]# rpm -qa lrzsz

(4)查詢

rpm-q PACKAGE_NAME

查詢選項:

  -qa:查詢本機已經安裝的全部程序包;

  -qf /PATH/TO/SOMEFILE:查詢此處的文件由哪一個程序包安裝生成;

  -qc:查詢指定程序包安裝生成的配置文件

  -qd:查詢指定的程序包安裝生成的文檔

  -qi:查詢指事實上的程序包的相關信息;

  -ql:查詢程序包安裝生成的全部文件的列表;

  -q --scripts:查詢程序包相關的腳本;

     preinstall:安裝前腳本

     postinstall:安裝後腳本

     preuninstall:卸載前腳本

     postiuninstall:卸載後腳本

  -p:查詢針對是未安裝的程序外文件

RPM經常使用查詢命令:

rpm -qa   列出全部已安裝的rpm軟件

rpm -qf filename  查詢指定文件屬於哪一個rpm包

rpm -qi packagename  查詢已軟件包的信息

rpm -ql packagename  查詢指定軟件包包含的文件

rpm -qip software.rpm 查詢rpm文件的信息

rpm -qilp software.rpm  查詢rpm文件包含的文件

示例:

[root@LiuHui Packages]# rpm -qa lrzsz
lrzsz-0.12.20-36.el7.x86_64
[root@LiuHui ~]# rpm -qa
tuned-2.4.1-1.el7.noarch
centos-release-7-1.1503.el7.centos.2.8.x86_64
aic94xx-firmware-30-6.el7.noarch
filesystem-3.2-18.el7.x86_64
openssh-server-6.6.1p1-11.el7.x86_64
ncurses-base-5.9-13.20130511.el7.noarch
openssh-clients-6.6.1p1-11.el7.x86_64
linux-firmware-20140911-0.1.git365e80c.el7.noarch
selinux-policy-targeted-3.13.1-23.el7.noarch
[root@LiuHui Packages]# rpm -qip lrzsz-0.12.20-36.el7.x86_64.rpm 
Name        : lrzsz
Version     : 0.12.20
Release     : 36.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Communications
Size        : 184846
License     : GPLv2+
Signature   : RSA/SHA256, Thu 03 Jul 2014 11:35:32 PM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM  : lrzsz-0.12.20-36.el7.src.rpm
Build Date  : Mon 09 Jun 2014 07:29:11 PM EDT
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.ohse.de/uwe/software/lrzsz.html
Summary     : The lrz and lsz modem communications programs
Description :
Lrzsz (consisting of lrz and lsz) is a cosmetically modified
zmodem/ymodem/xmodem package built from the public-domain version of
the rzsz package. Lrzsz was created to provide a working GNU
copylefted Zmodem solution for Linux systems.
[root@LiuHui ~]# rpm -ql lrzsz
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz.1.gz
/usr/share/man/man1/sz.1.gz

(5)校驗

rpm -K software.rpm #驗證rpm文件

rpm -V softname #驗證已安裝的軟件

驗證一般是使用非對稱的加密算法,因此就須要一個密鑰。通常的RPM軟件包裏面都加入了密鑰,若是沒有加入咱們能夠經過 rpm --import RPM-GPG-KEY-CentOS-6 命令手動加入便可。

示例:

[root@LiuHui Packages]# rpm -K lrzsz-0.12.20-36.el7.x86_64.rpm 
lrzsz-0.12.20-36.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
[root@LiuHui Packages]# rpm -V audit
[root@LiuHui Packages]#

若是沒有出現任何錯誤,就表示該軟件是完整的,沒有被修改。


4.YUM軟件管理

使用YUM的特色:

(1)自動解決依賴性問題

(2)能夠對RPM進行分組,並基於組來進行安裝操做

(3)引入了倉庫的概念,支持多個倉庫

(4)配置簡單

倉庫能夠是本地的,也但是互聯網上的,能夠經過http、ftp或者nfs等形式使用集中的、統一的網絡倉庫


1)yum程序的配置文件

(1)/etc/yum.conf

   定義全局配置:對全部創庫都適用的配置

(2)/etc/yum.repos.d/*.repo

   定義一個以.repo結尾的文件經常使用於一個或一組功能相近或相關的倉庫

(3)定義一個倉庫指向

示例:

[root@LiuHui yum.repos.d]# cat CentOS-bendi.repo 
[bendi]    #倉庫名字
name=This is beidi cdrom's rpm soft repo    #倉庫描述
baseurl=file:///mnt/    #倉庫地址,能夠是http,ftp,nfs等網絡倉庫地址,這是裏本地倉庫地址
enabled=1    #1表示使用這個倉庫,默認就是1
gpgcheck=1   #是否啓用軟件校驗,

2)yum命令:

(1)安裝 install

(2)卸載 remove

(3)升級 update

(4)查詢

yum search 關鍵字

yum list (all|installed|recent|updates)  #列出所有的、安裝的、最近的、更新的軟件

yum info packagename    #顯示軟件信息

  -y #自動安裝,不用確認

示例:

[root@LiuHui ~]# yum install lrzsz
Loaded plugins: fastestmirror
base                                   | 3.6 kB     00:00     
epel/x86_64/metalink                   | 4.9 kB     00:00     
epel                                   | 4.3 kB     00:01     
extras                                 | 3.4 kB     00:00     
updates                                | 3.4 kB     00:00     
(1/2): epel/x86_64/primary_db            | 3.5 MB   00:40     
epel/x86_64/updateinfo         FAILED                                          
http://mirrors.isu.net.sa/pub/fedora/fedora-epel/7/x86_64/repodata/6822870af83ae6bcdbfeded540fb33c3c5f8a5dcd3c16d283f3d7dc4ad351b32-updateinfo.xml.bz2: [Errno 12] Timeout on http://mirrors.isu.net.sa/pub/fedora/fedora-epel/7/x86_64/repodata/6822870af83ae6bcdbfeded540fb33c3c5f8a5dcd3c16d283f3d7dc4ad351b32-updateinfo.xml.bz2: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
Trying other mirror.
(2/2): epel/x86_64/updateinfo            | 355 kB   00:04     
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * epel: ftp.cuhk.edu.hk
 * extras: mirrors.aliyun.com
 * updates: mirrors.sina.cn
Resolving Dependencies
--> Running transaction check
---> Package lrzsz.x86_64 0:0.12.20-36.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================
 Package    Arch        Version               Repository
                                                      Size
==============================================================
Installing:
 lrzsz      x86_64      0.12.20-36.el7        base       78 k
Transaction Summary
==============================================================
Install  1 Package
Total download size: 78 k
Installed size: 181 k
Is this ok [y/d/N]: y
Downloading packages:
lrzsz-0.12.20-36.el7.x86_64.rpm          |  78 kB   00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : lrzsz-0.12.20-36.el7.x86_64                1/1 
  Verifying  : lrzsz-0.12.20-36.el7.x86_64                1/1 
Installed:
  lrzsz.x86_64 0:0.12.20-36.el7                               
Complete!
[root@LiuHui ~]# yum remove lrzsz
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package lrzsz.x86_64 0:0.12.20-36.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================
 Package    Arch        Version              Repository  Size
==============================================================
Removing:
 lrzsz      x86_64      0.12.20-36.el7       @base      181 k
Transaction Summary
==============================================================
Remove  1 Package
Installed size: 181 k
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : lrzsz-0.12.20-36.el7.x86_64                1/1 
  Verifying  : lrzsz-0.12.20-36.el7.x86_64                1/1 
Removed:
  lrzsz.x86_64 0:0.12.20-36.el7                               
Complete!
[root@LiuHui ~]# 
[root@LiuHui ~]# yum clean all  #清除yum緩存
Loaded plugins: fastestmirror
Cleaning repos: base bendi epel extras updates
Cleaning up everything
Cleaning up list of fastest mirrors
[root@LiuHui ~]# yum list    #列出倉庫
Loaded plugins: fastestmirror
base                                   | 3.6 kB     00:00     
bendi                                  | 3.6 kB     00:00     
epel/x86_64/metalink                   | 5.3 kB     00:00     
epel                                   | 4.3 kB     00:00     
extras                                 | 3.4 kB     00:00     
updates                                | 3.4 kB     00:00

 3)建立本身的本地yum倉庫

(1)建立本地yum倉庫

[root@LiuHui ~]#mount /dev/cdrom /mnt
[root@LiuHui yum.repos.d]# mkdir /bendi.yum
[root@LiuHui yum.repos.d]# cd /bendi.yum/
[root@LiuHui bendi.yum]# cp -rv /mnt/Packages/* .

(2)建立repo文件

[root@LiuHui yum.repos.d]# cat bendi.repo 
[bendi]
name=This is bendi's yum repo
baseurl=file:///bendi.yum/

(3)安裝createrepo

[root@LiuHui Packages]# rpm -ivh createrepo-0.9.9-23.el7.noarch.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:createrepo-0.9.9-23.el7          ################################# [100%]

(4)建立索引

[root@LiuHui bendi.yum]# createrepo -v .

注:須要將網絡yum源移動到備份文件夾下。再清空緩存,列出倉庫下的包

[root@LiuHui yum.repos.d]# mkdir back
[root@LiuHui yum.repos.d]# mv CentOS-* epel* back/
[root@LiuHui yum.repos.d]# ls
back  bendi.repo
[root@LiuHui repodata]# yum clean all  
Loaded plugins: fastestmirror
Cleaning repos: bendi
Cleaning up everything
[root@LiuHui repodata]# yum list
Loaded plugins: fastestmirror
bendi                                  | 2.9 kB     00:00     
bendi/primary_db                         | 2.7 MB   00:00     
Determining fastest mirrors
Installed Packages
相關文章
相關標籤/搜索