CentOS-rpm與yum程序包管理


作業(練習)內容:

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

         求:作業要圖文並茂

一、RPM包管理的用途;

1、可以安裝、刪除、升級和管理軟件;當然也支持在線安裝和升級軟件;
2
、通過RPM包管理能知道軟件包包含哪些文件,也能知道系統中的某個文件屬於哪個軟件包;
3
、可以在查詢系統中的軟件包是否安裝以及其版本;
4
、作爲開發者可以把自己的程序打包爲RPM 包發佈;
5
、軟件包簽名GPGMD5的導入、驗證和簽名發佈
6
、依賴性的檢查,查看是否有軟件包由於不兼容而擾亂了系統;

二、RPM 的使用權限;

RPM
軟件的安裝、刪除、更新只有root權限才能使用;對於查詢功能任何用戶都可以操作;如果普通用戶擁有安裝目錄的權限,也可以進行安裝;


三、rpm 的一點簡單用法;

我們除了軟件包管理器以外,還能通過rpm 命令來安裝;是不是所有的軟件包都能通過rpm 命令來安裝呢?不是的,文件以.rpm 後綴結尾的才行;有時我們在一些網站上找到file.rpm ,都要用 rpm 來安裝;

RPM數據庫在/var/lib/rpm

RPM數據庫的建立可以利用rpm --rebuilddb命令。

 

安裝選項參數

命令格式:
rpm -i ( or --install) options file1.rpm ... fileN.rpm
參數:
file1.rpm ... fileN.rpm 將要安裝的RPM包的文件名
通用選項
rpm -i /PATH/TO/PACKAGE_FILE:安裝軟件包

rpm -h :以#顯示安裝進度,每個#表示2%

rpm -v :顯示安裝詳細信息

rpm -vv :更詳細的信息

rpm -ivh :一般都是組合使用


--root
讓RPM將指定的路徑做爲"根目錄",這樣預安裝程序和後安
裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件爲

--dbpath 設置RPM資料庫存所在的路徑爲

wKiom1Xz3V7TeyzcAASOzMgC4Ts506.jpg

wKioL1Xz353iq88CAAClzw0C_as741.jpg

上圖其中zsh-5.0.2-7.el7.x86_64.rpm是你要安裝的rpm包的文件名,一般置於當前目錄下。 

詳細選項:
-h (or --hash) 安裝時輸出hash記號(``#'')
--test 只對安裝進行測試,並不實際安裝。
--percent 以百分比的形式輸出安裝的進度。
--excludedocs 不安裝軟件包中的文檔文件
--includedocs 安裝文檔
--replacepkgs 強制重新安裝已經安裝的軟件包
--replacefiles 替換屬於其它軟件包的文件
--force 忽略軟件包及文件的衝突
--noscripts 不運行預安裝和後安裝腳本
--prefix 將軟件包安裝到由 指定的路徑下
--ignorearch 不校驗軟件包的結構
--ignoreos 不檢查軟件包運行的操作系統
--nodeps 不檢查依賴性關係
--ftpproxy 用 作爲 FTP代理
--ftpport 指定FTP的端口號爲
這裏列出幾個常用的:

 rpm --nodeps:忽略依賴關係。

 rpm --replacepkgs|repackage:重新安裝、替換原來安裝。

 rpm -ivh --oldpackage:降級安裝。

 rpm -ivh --force:強行安裝,可以實現重裝或降級

rpm --test:僅測試有沒有依賴關係

查詢:

           rpm {-q|--query} [select-options] [query-options]

 

           查詢選項:

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

wKioL1Xz37rAEApnAAHdi-kleVQ703.jpg

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

如果某個rpm包尚未安裝,我們需要查詢其說明信息,安裝後會生成的文件

 rpm -qpi /PATH/TO/PACKAGE_FILE

wKiom1Xz3ZmR9IXMAACdgZmF1Jc875.jpg

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

wKioL1Xz3_mzNgxZAACCkpQMDSg238.jpg

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

wKioL1Xz4AeyE_U4AAEj6OZN7AY154.jpg

               -qi: 查詢指定的程序包的相關信息;

wKiom1Xz3eeADR3RAAMCEIHfguk898.jpg

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

wKioL1Xz4C-yxWujAAEVuYCxpzM520.jpg

查看軟件包的文檔所在的位置;

語法: rpm -qpd file.rpm

wKiom1Xz3g_zK7Z0AAFzohAuj0c648.jpg

查看一個軟件包的依賴關係

語法: rpm -qpR file.rpm

wKiom1Xz3jWCA6d4AAEVmzv1ERg594.jpg

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

                  preinstall: 安裝前腳本

                  postinstall:安裝後腳本

                  preuninstall: 卸載前腳本

                  postuninstall: 卸載後腳本

wKioL1Xz4HSShC5-AAMKvuAvWJ4653.jpg

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

 

升級:

           rpm{-U|--upgrade} [install-options] PACKAGE_FILE ...

           rpm {-F|--freshen} [install-options]PACKAGE_FILE ...  

 

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

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

 

               --nodeps

               --oldpackage:降級;

               --force

卸載:

           rpm {-e|--erase} [--nodeps] [--noscripts][--notriggers] [--test] PACKAGE_NAME ... 

wKiom1Xz3lryUrUdAAA8B2-2ynw722.jpg

校驗:

           rpm {-V|--verify} [select-options] [verify-options]

              S file Size differs

              M Mode differs (includes permissions andfile 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

wKioL1Xz4JiCSeQDAAFpIx0PTQk518.jpg

包校驗:

       來源合法性驗正:非對稱加密

       完整性驗正:單向加密

       導入密鑰:rpm --import /PATH/TO/KEY_FILE

       校驗:rpm -K /PATH/TO/RPM_FILE

wKioL1Xz4KqCPpr5AAJ8k9iiGX8670.jpg

校驗都OK 的

 

 

YUM: Yellowdog Updater Modified

    yum repositories:

       文件服務器:

           ftp://hostname/PATH/TO/REPO

           http://hostname/PATH/TO/REPO

           file:///PATH/TO/REPO

yum程序的配置文件:

       /etc/yum.conf

           定義全局配置:對所有倉庫都適用的配置

       /etc/yum.repos.d/*.repo

           一個文件通常用於一個或一組功能相近或相關的倉庫

定義一個倉庫指向:

              [REPO_ID]

              name=

              baseurl=

              #mirrorlist=SCHEME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE

              enabled={1|0}

              gpgcheck={1|0}

              gpgkey=

              cost=

 

           定義倉庫指向可用變量:

              $releasever:引用當前系統的主版本號;

              $basearch:當前系統的基本架構;

                  i386, i486, i586, i686: i386

              http://mirrors.magedu.com/CentOS/$releasever/os/$basearch

 

默認情況下:yum 安裝好後的rpm包會被自動清除,如果我們想不自動清除的話,
[root@jesse ~]# vi /etc/yum.conf 
[main]
cachedir=/var/cache/yum
keepcache=1     #
將這裏的0修改爲1
debuglevel=2
#
保存退出
#
我們安裝好後的軟件存放的位置:/var/cache/yum/base/packages

 

    創建本地倉庫:

       yum installcreaterepo

 

       createrepo/PATH/TO/RPMFILES/

wKiom1Xz3o2RmPJhAASF7xYohxo288.jpg

這裏發現報錯了,錯誤顯示連接不到那個地址,爲什麼會出現這樣的情況咧,是因爲在/etc/yum.conf文件,裏面有包含/etc/yum.repo.d/下面的配置,如下圖:

wKioL1Xz4M3QbzSHAABDVTCoFy0323.jpg

那就去修改/etc/yum.repos.d目錄下修改wKiom1Xz4BijkLgKAAKTaaka010227.jpgwKioL1Xz4TzApIeOAAMUGFeXHnI485.jpg

 

 

yum命令:

       yum [options][command] [package ...]

 

           命令:

              安裝:install

              卸載:remove

              升級:update

              查詢:

                  Info

wKiom1Xz3zbii6DXAAB6wT5JseI349.jpg

                  searchKEYWORD

                  listall|installed|availiable

                  provides/PATH/TO/SOMEFILE: 查詢指定文件由哪個包安裝生成

              重新安裝:reinstall

              降級:downgrade

              清理緩存:clean [ packages | metadata | expire-cache| rpmdb | plugins | all ]

              生動生成緩存:makecache

 

              包組:

                  Grouplist  列出所有包組

                  groupinfo"GRP_NAME"   查看包組

                  groupinstall"GRP_NAME"   安裝包組

                  groupremove"GRP_NAME"    移除包組

 

              倉庫:

                  repolist[all|enabled|disabled]

wKioL1Xz4XPgG4b7AAC24_qnVR8984.jpg

                  repoinfo[all|enabled|disabled]

wKiom1Xz306joVpDAAFfxD1W9I8473.jpg

 

    如何使用光盤當做本地倉庫: 

       掛載光盤至某目錄

       定義倉庫,使用file:///指明其訪問路徑;

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章