Linux系統程序包的安裝–RPM

       我們知道在操作系統上使用的程序都是有程序員通過開發工具得來的,程序員直接編寫的純文本的文件,我們稱之為源代碼,由于計算機識別的是二進制程序,因此在完成源代碼編寫之后,就必須要經過編譯,使之成為操作系統可以“看得懂”的二進制程序,這里的編譯是通過編譯器來進行的操作,編譯器的功能就是將源代碼程序“轉換”為二進制程序,然后再通過一定的安裝步驟將其安裝到操作系統上來,進而被系統及用戶來使用。

        程序源代碼–> 預處理–> 編譯 –> 匯編 –> 鏈接

        編譯包括:靜態編譯:以.a為后綴的文件 (復制一份出來打包到本地)

                       動態編譯:以.so為后綴的文件(無需復制打包,直接調用庫文件,可多個調用一個)

這里講一下如果不小心刪除了庫文件,如何挽救:

    例如,不小心刪除了/lib64/libc.so.6

CentOS6中:

1、進入光盤救援模式

Linux系統程序包的安裝--RPM    

在進度條沒讀完的時候按ESC  ,然后如圖

Linux系統程序包的安裝--RPM

Linux系統程序包的安裝--RPM

強調一下,不用選擇網絡調試

Linux系統程序包的安裝--RPM

Linux系統程序包的安裝--RPM

2、之后全部選擇ok即可,進入shell,注意此時我們處在光盤的根下,使用chroot /mnt/sysimage 可切換到系統根下

Linux系統程序包的安裝--RPM

3、將光盤中libc.so.6文件復制到系統/etc/lib64/目錄下,即可恢復

Linux系統程序包的安裝--RPM

4、重啟系統

在CentOS7中,救援模式的進入基本和6相同,相對簡便一些;進入救援模式后操作與6相同。

7中進入救援模式

Linux系統程序包的安裝--RPM

Linux系統程序包的安裝--RPM

包的安裝有:rpm 、yum 、編譯安裝;我先來講一下CentOS中RPM包的管理。

安裝:

       rpm {-i | –install} [install-options] PACKAGE_FILE…

                                   -h : hash ,以#來表示安裝的進度; 

                                   -v : –verbose : 顯示安裝過程中的詳細信息;(-vv ; -vvv 更加詳細)

                                   –test : 不執行真正的安裝過程,僅僅報告依賴關系以及沖突信息等;

                                   –nodeps : 忽略依賴關系,但是存在副作用-能安裝成功,但是不一定能運行成功;

                                   –replacepkgs : 覆蓋安裝――重新安裝并覆蓋原有的文件;

                                   –force : 強制安裝

       安裝時經常使用的組合是:-ivh  , -ivvh

rpm安裝的過程中會經常遇見,包的依賴性問題,使安裝變得繁瑣

升級:

       rpm {-U | –upgrade} [install-ortions] PACKAGE_FILE… 升級或安裝

rpm {-F | –freshen} [install-ortions] PACKAGE_FILE…  升級

在這里要注意

1、一定不要對內核進行升級,在linux中允許多內核存在,可以直接安裝多個不同版本的內核;

2、如果程序包的配置文件安裝后曾被修改,升級時,新版本的文件不會覆蓋老版本的配置文件,而是把新版本的配置文件重命名(加后綴.rpmnew)后保存。

卸載:

rpm {-e | –erase} [options] PACKAGE_FILE…

                            –nodeps : 忽略依賴關系,直接卸載

                            –test : 測試卸載,dry-run模式

                            –allmatches : 如果一個程序包同時安裝多個版本,則此選項一次全部卸載

注意:如果配置文件安裝后被修改,卸載時,此配置文件不會被刪除,而是重命名(加后綴.rpmsave)后保存。

查詢:

       查詢某安裝包是否已經安裝,以及檢查安裝的所有包,還可以查看某包的詳細信息。

                rpm –q PACKAGE_NAME… : 查詢某包是否已經安裝

                rpm –qa PACKAGE_NAME… :查詢已經安裝的包

                rpm –qi PACKAGE_NAME… :查詢包的information

                rpm –qpi PACKAGE_NAME… :查詢尚未安裝的某包的文件的相關信息

                rpm –qf /PATH/TO/SOMFILE : 查看某文件是有哪個包提供的

                rpm –ql PACKAGE_NAME… :查詢包安裝生成的文件列表

                rpm –qc PACKAGE_NAME… :查詢包安裝完成后生成的所有配置文件

                rpm –qd PACKAGE_NAME… :查看包安裝完成后生成的所有幫助文件

                rpm –q –changelog PACKAGE_NAME… :查看某包制作時隨版本變化的信息

                rpm –q –provides PACKAGE_NAME… :查看包提供capabilities

                rpm –q –requires PACKAGE_NAME… :查看某包所依賴的capabilities

                rpm –q –scripts PACKAGE_NAME… :查看某包安裝或卸載時執行的腳本

校驗:

       查詢包安裝后生成文件是否發生了變化

rpm –V PACKAGE_NAME… 當沒有結果輸出時表示軟件包完整,當有如下的相應結果輸出則發生了改變:

              S :(file Size differs) 文件的大小改變

              M :(Mode differs) 文件的類型或屬性(rwx)改變

              5 :(MD5 sum differs) MD5 這一哈希值發生改變

              D :(Device major/minor number mis-match) 裝置的主次代碼改變

              L :Link路徑發生改變

              U :文件的屬主改變

              G :文件的屬組改變

              T :文件的mtime時間改變

              P :capabilities改變

關于合法性,我們要驗證其光盤中程序包的來源及完整性:

       先導入合法的密鑰文件:rpm –import /path/to/RPM-GPG-KEY-FILE (一般在/etc/pki/rpg-gpg/目錄下)

       驗證:rpm {K | –checksig} PACKAGE_FILE

                                           –nosignature :不檢查來源合法性

                                           –nodigest : 不檢查完整性

rpm數據庫:(/var/lib/rpm)

        數據庫重建:

                    rpm {–initdb | –rebuilddb}

                            initdb : 初始化,如果事先不存在數據庫,則新建;否則,不執行任何操作

                            rebuilddb : 重建已安裝的包頭的數據庫索引目錄

原創文章,作者:Immortals、zcy,如若轉載,請注明出處:http://www.www58058.com/73960

(0)
Immortals、zcyImmortals、zcy
上一篇 2017-04-23 17:19
下一篇 2017-04-23 19:46

相關推薦

  • N25-第二周總結

    linux bassic The second week of blogging 一、linux中的文件,及文件操作管理命令 1. 文件概念 存儲空間存儲的一段流式數據,對數據可以做到按名存取。 linux中的文件具有的特點是:可通過操作系統或者程序對外提供信息,也能對內輸入信息,可以被創建,刪除。linux中,文件有特別重要的意義,他們為操作系統和設備提供…

    Linux干貨 2016-12-11
  • Linux基礎之shell腳本編程(二)

    1、寫一個腳本,完成以下功能    (1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;    (2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;    (3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串; &nb…

    Linux干貨 2016-11-17
  • shell腳本基礎

    shell腳本編程基礎 1、基本格式 首先在編寫shell的開始要聲明一下該shell所用的腳本類型,我們也稱為shebang機制 eg: #!/bin/bash # Description … 2、bash中的變量的種類 (1)、本地變量 生效范圍: 當前shell進程,對當前shell之外的進程及子進程均無效 (2)、環境變量 生效范圍: 當前she…

    Linux干貨 2017-08-04
  • linux用戶管理

    linux用戶:       linux用戶大體分為兩種:一是:管理員用戶;二是普通用戶,普通用戶又可以分為系統用戶和登錄用戶。因為linux是一個多用戶多任務的系統,所以每一個要使用系統資源的用戶,都要向管理員申請一個賬號,使用這個賬號登錄到系統。每個用戶都擁有一個自己的名字和密碼,以登錄到用戶。 每個用戶都有唯一的用戶標識(…

    Linux干貨 2016-08-04
  • 一起學習吧:SDCC 2017即將在上海共話架構、數據和運維!

    2017活動家邀你一起學習吧!SDCC 2017在上海共話架構、數據和運維,還有兩天!【召開時間為:3月17至3月19日】 在互聯網大潮下,2017年的就業環境越發惡劣,技術人如何去適應技術變革和學習新技術,以及如何快速增強自身的技術實力成為亟需解決的問題。如果你在看完一本技術圖書后還是疑惑不解,處于目前項目遇到困難時無人請教的尷尬境地,亦不清楚業界同行在使…

    2017-03-15
  • 文件通配符是啥?

    文件通配符     包含 ‘?’, ‘*’ 或 ‘[‘ 字符的字符串稱為通配符模板(wildcard  pattern).形成路徑名(globbing)指一種操作,把通配符模板展開為匹配該串的路徑名.匹配定義為:   …

    Linux干貨 2017-04-23

評論列表(1條)

  • renjin
    renjin 2017-04-28 11:29

    文章對rpm包進行了詳細的介紹,內容很的很精細,排版也很好,可以把博客數量再往上增加一下了。

欧美性久久久久