欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

rpm命令詳解-創(chuàng)新互聯(lián)

程序包的升級:

創(chuàng)新互聯(lián)長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為聞喜企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,聞喜網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

        升級rpm包:

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

        選項:

                  -U:表示升級或安裝

                  -F:僅是升級

升級來講額外的常用選項:

                  --oldpackage:降級;

(為什么要降級?

        當(dāng)一個程序包升級之后發(fā)現(xiàn)各種不兼容,發(fā)現(xiàn)各種不好用,因此這時我們就進行回滾操作。將程序在還原至原來的版本。)

                  --force:強制升級;

(為什么要強制升級?

        有些時候我們升級到較新的版本時,因為依賴關(guān)系的問題,很有可能存在這樣的現(xiàn)狀,老版本的程序包被其他的程序包所依賴,但是新的程序包不能滿足此前的依賴關(guān)系,因為他依賴的功能較老程序有,新版本中程序中沒有了,給換了,所以現(xiàn)在升級會出現(xiàn)沖突,甚至?xí)箦e,因為升級之后可能會影響到依賴的完整性,這時候我們?nèi)绻牒雎赃@個歷依賴關(guān)系強制升級,那么我們就需要強制升級。)

        升級rpm軟件包的真正的用法:

                  rpm -Uvh  PACKAGE_FILE......  //后面的省略號表示可以同時安裝多個包

        或

                  rpm -Fvh [PACKAGE_FILE......

注意:上面的兩個選項-U和-F之間的區(qū)別就是,-U是當(dāng)程序包沒有則執(zhí)行安裝操作,有則執(zhí)行升級操作;而選項-F是原來的程序包有就執(zhí)行升級,沒有則不進行任何操作。

注意:

        (1)不要對內(nèi)核進行升級操作;

                           (比方說,就想內(nèi)核4.0的版本,在升級之前必須要重啟系統(tǒng),所以我們一旦對內(nèi)核進行升級操作,意味著我們就需要重啟系統(tǒng),才能啟用新內(nèi)核,或者是我們即便是現(xiàn)在不重啟,那么下一次重啟也會啟用新內(nèi)核,萬一新內(nèi)核與我們的版本不兼容怎么辦?是不是啟動不了了?這么這個時候我們應(yīng)該怎樣辦呢?我們就需要進入救援模式了。所以不建議對內(nèi)核進行升級操作。那么不升級,我有希望測試新版本怎么辦?

        那么有一個辦法,linux支持多內(nèi)核版本并存,因此我們打算升級內(nèi)核的時候,我們可以直接進行安裝新內(nèi)核。)

        (2)如果某原程序包的配置文件安裝后曾被修改過,那么新版本的程序提供的同一個配置文件不會覆蓋原有版本的配置文件,而是把新版本的配置文件重命名后提供保存,重命名的格式:FILENAME.rpmnew這個表示:原來的文件名字后面跟上“.rpmnew”

升級程序包的演示操作:(在centos7上)

        (1)我們?nèi)グ⒗镌频溺R像網(wǎng)站上下載一個程序包,我們就升級上次安裝的zsh他的版本是zsh-4.3.11-4.el6.centos.2.x86_64.rpm,查看現(xiàn)在安裝的程序版本,我們可以在命令行中使用命令“rpm -ql 程序前一個字符”然后tab鍵補全,我們就能查看我們安裝的某程序的版本。

        我們進入“mirrors.aliyun.com”這個網(wǎng)站,然后進入下面的目錄:

http://mirrors.aliyun.com/centos/7.2.1511/updates/x86_64/Packages/找到zsh的最新版本進行下載。

        (2)我們通過Xshell這個遠程連接工具將這個程序包復(fù)制到linux系統(tǒng)上。

rpm命令詳解

我們將這個程序包復(fù)制到root用戶的家目錄。

第二當(dāng)我們的系統(tǒng)是linux系統(tǒng),我們在將“zsh”程序下載后,然后如果是需要將這個程序從一個主機發(fā)送到另一個主機上進行安裝,那么我們需要使用Xshell工具,在命令行中執(zhí)行一下命令:

[root@centos6 ~]# scp  /root/zsh-5.0.2-14.el7_2.2.x86_64.rpm  192.168.178.131:/root/

The authenticity of host '192.168.178.131(192.168.178.131)' can't be established.

RSA key fingerprint is64:8c:31:ff:e7:e2:58:31:1e:b7:b6:f2:75:fc:e0:8a.

Are you sure you want to continueconnecting (yes/no)? y

Please type 'yes' or 'no': yes

Warning: Permanently added'192.168.178.131' (RSA) to the list of known hosts.

root@192.168.178.131's password:需要輸入對方的主機的密碼

zsh-5.0.2-14.el7_2.2.x86_64.rpm                    100% 2434KB  2.4MB/s  00:00

[root@centos6 ~]#

如果是我們將這個程序包拷貝到對方主機上的某個普通用戶的家目錄下:則對方主機IP前面需要加上這個普通用戶的名稱,并用@連接,復(fù)制普通用戶的家目錄,我們要注意是/home/USERNAME

[root@centos6 ~]# scp zsh-5.0.2-14.el7_2.2.x86_64.rpm dong@192.168.178.131:/home/dong

dong@192.168.178.131's password:

zsh-5.0.2-14.el7_2.2.x86_64.rpm                    100% 2434KB  2.4MB/s  00:00

[root@centos6 ~]#

(3)升級zsh

[root@centos7 ~]# rpm -Uvh zsh-5.0.2-14.el7_2.2.x86_64.rpm

警告:zsh-5.0.2-14.el7_2.2.x86_64.rpm: 頭V3 RSA/SHA256Signature, 密鑰 ID f4a80eb5: NOKEY

準(zhǔn)備中...                         ################################# [100%]

正在升級/安裝...

  1:zsh-5.0.2-14.el7_2.2            ################################# [ 50%]

正在清理/刪除...

  2:zsh-5.0.2-14.el7                ################################# [100%]

[root@centos7 ~]# rpm -q zsh

zsh-5.0.2-14.el7_2.2.x86_64

[root@centos7 ~]#

卸載rpm包:

        格式:rpm{-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test]PACKAGE_NAME ...

        大多數(shù)情況下選項“-e”都能完成卸載操作。

注意:我們在安裝,升級和查詢的時候后面是PACKAGE_FILE,這是時安裝程序包的路徑;但是卸載的時候是PACKAGE_NAME這是代表程序包的名稱。

        選項:

                  --allmatches:表示卸載所有匹配指定名稱的程序包的各版本;

                  --nodeps:忽略依賴關(guān)系

                  --test:測試卸載,dry run干跑模式;

查詢:是一個非常重要的功能

                  格式:

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

                                                       rpm -q 后面跟上[select-options]或[query-options]的子選項

        有兩類選項:

                  注意下面的各個選項都要與“-q”選項結(jié)合使用

                           (1)[select-options]的常用選項:

                                              PACKAGE_NAME:查詢時,直接指明程序包名。這表示查詢指定的程                                                                          序包是否已經(jīng)安裝及其版本。

                                              -a,--all:查詢所有已經(jīng)安裝過的包,這是就不需要給包了。

                                                                (當(dāng)我們想查詢一個包是否已經(jīng)安裝,但是我們只記得其中                                                               的幾個字符,那么這個“-a”選項就特別有用,我們就可以                                                        結(jié)合“grep”命令來進行查找。)

                                              -f,--file后面跟上一個文件路徑:這表示查詢指定文件是由哪個程序                                                                                                                  包生成的。

                                              -g,--group:表示查詢指定的包組中,包含了那些程序包。

                                              -p,--package:表示對未安裝的程序包進行查詢操作,一般查詢什么,                                                                         他需要跟 [query-options][select-options]中的選項結(jié)合                                                                    起來使用。

                                              --whatprovidesCAPABILITY:查詢指定的功能,是由哪個程序包安裝。

                                              --whatrequiresCAPABILITY:查詢指定的功能,被誰所依賴。

                           (2)[query-options]常用選項:

                                                --changelog:查詢rpm包的changelog;

                                                -l,--list:程序安裝生成的所有文件列表;

                                              -i.info:程序包相關(guān)的信息,版本號,大小,所屬的包組,等;

                                               -c, --configfiles:查詢指定的程序包配置文件;

                                               -d, --docfiles:查詢指定的程序包提供的文檔;

                                               --provides:列出指定的程序包提供的所有的CAPABILITY(功能)

                                               -R, --requires:表示查詢指定程序包的依賴關(guān)系;

                                          --scripts:查詢指定的程序包自帶的腳本片段;

        用法:

                  -qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE.

                  -qpi PACKAGE_FILE, -qpl PACAGE_FILE, -qpc PACKAGE_FILE,.......

演示:“--provides”和“whatprovides”選項的用法:

[root@centos7 ~]# rpm -q --provides bash

/bin/bash

/bin/sh

bash = 4.2.46-19.el7

bash(x86-64) = 4.2.46-19.el7

config(bash) = 4.2.46-19.el7

[root@centos7 ~]# rpm -q --whatprovides bash

bash-4.2.46-19.el7.x86_64

[root@centos7 ~]# rpm -q --whatprovides 'config(bash)'                //因為括號在shell中有特殊                                                                                                                       的意義,所以使用單引號引起來                                                                                                                        表示強引用。

bash-4.2.46-19.el7.x86_64

[root@centos7 ~]#

校驗:

        格式:

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

        執(zhí)行校驗操作時,他們表現(xiàn)的意義是什么?

     --verify test:

      S file Size differs                  //表示文件大小發(fā)生改變

      M Mode differs (includes permissions and file type)                  //表示文件權(quán)限發(fā)生改變

      5 digest (formerly MD5 sum) differs         //表示MD5碼發(fā)生了改變

      D Device major/minor number mismatch                  //表示主次設(shè)備號不匹配

      L readLink(2) path mismatch

      U User ownership differs           //表示屬主改了

      G Group ownership differs                 //表示屬組改了

      T mTime differs         //表示最近的時間戳發(fā)生改變

      P caPabilities differ            //表示開發(fā)功能改了。

[root@centos7 ~]# rpm -ivh zsh-5.0.2-14.el7_2.2.x86_64.rpm

警告:zsh-5.0.2-14.el7_2.2.x86_64.rpm: 頭V3 RSA/SHA256Signature, 密鑰 ID f4a80eb5: NOKEY

準(zhǔn)備中...                         ################################# [100%]

正在升級/安裝...

  1:zsh-5.0.2-14.el7_2.2            ################################# [100%]

[root@centos7 ~]# rpm -V zsh                 //校驗時我們用大寫“-V”選項,校驗沒有任何信息輸                                                                           出,說明我們這個程序包安裝成功

[root@centos7 ~]#

[root@centos7 ~]# rpm -ql zsh                //查看zsh安裝了多少個文件

[root@centos7 ~]# file /usr/share/zsh/5.0.2/functions/zfparams //隨便找一個文件看看是什                                                                                                                             么格式

/usr/share/zsh/5.0.2/functions/zfparams: ASCII text

 [root@centos7 ~]# vim /usr/share/zsh/5.0.2/functions/zfparams //編輯這個文件,然后在里                                                                                                                                    面僅僅是加一個#

[root@centos7 ~]# rpm -V zsh                 //再次進行校驗,發(fā)現(xiàn)就報錯了

S.5....T.   /usr/share/zsh/5.0.2/functions/zfparams  // S.5....T. 這里面的每一個點表示這一個屬性,點表示這個屬性沒有被修改過,如果這個屬性被更改了就表示這個屬性的特性,或者那個字符,S就表示大小的意思,S出現(xiàn)了就表示大小發(fā)生變化了,沒出現(xiàn)就表示大小沒有發(fā)生變化,比方說我們加了一個字符,就表示大小發(fā)生變化了,如果是我們僅僅是改了一個字符呢,就可能是大小沒有改變,但是任何信息改了,那么他的MD5碼就發(fā)生改變了,這個5就表示數(shù)據(jù)指紋信息,

(通過上面的演示例子我們發(fā)現(xiàn),校驗的作用:當(dāng)我們安裝一個程序包時,我們發(fā)現(xiàn)某個文件被修改了,但是我們自己確認,我們從來沒有改過,其實我們到現(xiàn)在為止我們應(yīng)該知道,在linux中有一個重要的法則,沒有消息就是最好的消息。他沒有告訴我們有任何錯,這表示我們再安裝一些程序是成功了,但如果不是加“-v小寫”出現(xiàn)的信息,我就要看一下,通常必須引起注意,)

包來源合法性驗證和完整性驗證:

        來源合法性驗證:

        完整性驗證:

                  獲取并導(dǎo)入信任 的包制作者的秘鑰:

                                    (其實這個公鑰文件我們也可以去目錄“/etc/pki/rpm-gpg”下找,因為這個在我們安裝安裝系統(tǒng)后,會自動將秘鑰復(fù)制到這個目錄下,)

                  對于cenots發(fā)行版來講:導(dǎo)入文件:

rpm --import /etc/pki/rpm-gpg/ RPM-GPG-KEY-CentOS-7

驗證:

                  (1)安裝次組織簽名的程序時,會自動執(zhí)行驗證:

                  (2)手動驗證:rpm -K PACKAGE_FILE

所有的數(shù)字簽名都是用自己的私鑰去加密自己程序包對應(yīng)的數(shù)字特征碼。

        數(shù)字簽名可以實現(xiàn)兩個功能:

                  (1)來源合法性進行驗證

                  (2)包的完整性進行驗證

我們也發(fā)現(xiàn),單向加密和私鑰加密并不是對文件進行保密。

(我們現(xiàn)在拿到一個程序包,那么怎樣去驗證這個程序包是合法的?

        首先這個程序包的制作者首先要信任他,這是第一點,那么這個信任的機構(gòu)做了程序包以后,要在這個程序包上加蓋自己的印簽,在程序上這就叫數(shù)字簽名,)

                  數(shù)字簽名:

        (那么數(shù)字簽名是怎樣實現(xiàn)的呢?

                           我們之前講過一個加密方式叫非對稱加密,就是他的秘鑰是成對出現(xiàn),一個叫公鑰一個叫私鑰,公鑰加密的只能使用與之配對的私鑰解密,反之亦然,那么一個組織或個人在制作一個程序包以后,用自己的私鑰去簽名,放在這個包后面,公鑰就是公開的,所以我們拿著這個公鑰能夠解密出來,就可以說這就是,那我們加密的是什么數(shù)據(jù)呢?我們不能加密整個文件,這樣人們就看不見這個文件了,這里純粹就是簽名,我們加密的是程序包的校驗碼,什么是校驗碼?校驗碼就是我們先利用單向加密將這個程序包的特征碼算出來,我們知道特征碼是固定的長度,不管我們的包有多大,特征碼都那么長,

        所以包的制作者先用單向加密將包的特征碼計算出來,定長輸出,然后再用自己的私鑰去加密這個特征碼,這就叫數(shù)字簽名,并把這個特征碼附加在包后面,

        那誰能解密?拿到公鑰去解密,所以這里的私鑰不是處于加密目的的,而是驗證目的的,用公鑰加密是做來源身份驗證的,那公鑰解密出來的數(shù)據(jù)有用嗎?

                  當(dāng)然有用,我們可以用同樣的算法去計算這個文件的特征碼,然后跟這個解密出來的特征碼進行比對,一樣就表示包沒有被別人改過。

        這里其實我們要明白,當(dāng)我們只做的程序包,用單向加密算出特征碼后,然后再用我們的私鑰要將這個特征碼進行加密,那么第三者是可以使用我們的公鑰將我們的加密的特征碼進行解密的,第三者可以更改我們的程序包,并且他也可以更改我們的特征碼,但是為什么一般不會改呢,因為一旦改了特征碼,他在加密只能使用他自己的私鑰進行加密,那么我們的客戶用我們的公鑰去解密時,就發(fā)現(xiàn)這個包不是我們發(fā)的,所以就不使用我們的包了,所以很簡單一般特征碼是不被改變的。)

合法獲得公鑰其實是最重要的一步:

        其實這一步很難,世界上沒有萬無一失的安全性,互聯(lián)網(wǎng)上其實是通過CA來實現(xiàn)的,CA叫簽證機構(gòu),或者叫第三方證書頒發(fā)機構(gòu),我們現(xiàn)在秩序知道我們需要假設(shè)通過一個合法的途徑來拿到公鑰。至于怎樣拿到在后面細講。

完整性驗證:

        如果只是對rpm包進行驗證的話,我們只需將rpm包的公鑰導(dǎo)入進去即可,對于光盤上rpm包的公鑰就在光盤上,我們切換到光盤的掛載目錄下,ls命令會看到一個文件“ RPM-GPG-KEY-CentOS-7”

那么只需將這個文件導(dǎo)入rpm 包后,以后在安裝程序包時就不會出現(xiàn)應(yīng)該說“NOKEY”了

演示操作:

[root@centos7 ~]# rpm -ivh zsh-5.0.2-14.el7_2.2.x86_64.rpm

警告:zsh-5.0.2-14.el7_2.2.x86_64.rpm: 頭V3 RSA/SHA256Signature, 密鑰 ID f4a80eb5: NOKEY

準(zhǔn)備中...                         ################################# [100%]

正在升級/安裝...

  1:zsh-5.0.2-14.el7_2.2            #################################[100%]

[root@centos7 ~]# rpm -e zsh

[root@centos7 ~]# rpm --import /media/RPM-GPG-KEY-CentOS-7 //導(dǎo)入用“--import”選項

[root@centos7 ~]# rpm -ivh zsh-5.0.2-14.el7_2.2.x86_64.rpm   //再次安裝就不會出現(xiàn)NOKEY

準(zhǔn)備中...                         #################################[100%]

正在升級/安裝...

  1:zsh-5.0.2-14.el7_2.2            ################################# [100%]

[root@centos7 ~]#

上面是自動進行校驗操作,下面我們也可以進行手動校驗操作:

[root@centos7 ~]# rpm -K zsh-5.0.2-14.el7_2.2.x86_64.rpm   //用選項大寫“-K”

zsh-5.0.2-14.el7_2.2.x86_64.rpm: rsa sha1(md5) pgp md5 確定 //pgp:來源合法性;MD5包                                                                                                                         完整性認證之前要將公鑰                                                                                                                             導(dǎo)入

[root@centos7 ~]#

數(shù)據(jù)庫重建:

這個數(shù)據(jù)庫是不能隨便破壞或者手動進行測試的。

我們知道使用命令“rpm -qa”會顯示我們安裝了那些程序包,或者使用“rpm -ql 程序名”會顯示這個程序安裝時產(chǎn)生的文件,那么我們就想,他是怎樣知道我們的程序安裝了那些文件,這個rpm正是通過本地的記錄的一個數(shù)據(jù)庫來定義的。

 對于rpm這個命令來講他的數(shù)據(jù)庫就是“/var/lib/rpm”

        rpm管理器數(shù)據(jù)庫路徑:/rpm/lib/rpm

                  查詢操作:通過此處的數(shù)據(jù)庫進行。

        獲取幫助:

                  CentOS6:man rpm

                  CentOS7:man rpmdb

        以CentOS7為例:

                   rpm {--initdb|--rebuilddb} [-v] [--dbpathDIRECTORY] [--root DIRECTORY]

                                    --initdb:初始化數(shù)據(jù)庫,當(dāng)前無任何數(shù)據(jù)庫可初始化創(chuàng)建一個新的;當(dāng)前                                        有時不執(zhí)行任何操作;

                             --rebuilddb:重新構(gòu)建,通過讀取當(dāng)前系統(tǒng)上所有已經(jīng)安裝的程序包進行重                                               新創(chuàng)建;

                             --dbpath DIRECTORY:表示地址創(chuàng)建數(shù)據(jù)庫的路徑

演示在指定的路徑下創(chuàng)建rpm數(shù)據(jù)庫

[root@centos7 ~]# mkdir /tmp/rpm

[root@centos7 ~]# rpm --initdb --dbpath=/tmp/rpm

[root@centos7 ~]# ls /tmp/rpm/

Basenames    __db.002 Group      Obsoletename Requirename Triggername

Conflictname __db.003 Installtid Packages     Sha1header

__db.001     Dirnames Name       Providename  Sigmd5

[root@centos7 ~]#

[root@centos7 ~]# rpm --rebuilddb --dbpath=/tmp/rpm

[root@centos7 ~]# ls /tmp/rpm/             //重建后我們發(fā)現(xiàn)__db.002,__db.003,__db.001這些                                                                             文件沒有了,其實這些文件是進行事物操作的。

Basenames    Group      Obsoletename Requirename Triggername

Conflictname Installtid Packages     Sha1header

Dirnames     Name       Providename  Sigmd5

[root@centos7 ~]#

博客作業(yè):rpm包管理功能全解;

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站名稱:rpm命令詳解-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://www.chinadenli.net/article44/dccche.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊品牌網(wǎng)站制作企業(yè)建站網(wǎng)頁設(shè)計公司外貿(mào)網(wǎng)站建設(shè)云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計