rpm軟件包管理

軟件包管理

軟件運行環境

API   應用程序開發接口

ABI   二進制接口

Rpm包命名方式

Name-version-release-arch-rpm

例如

zziplib-devel-0.13.162-5.el7.i686.rpm

zziplib :主包名

dewel:次包名

0.13.162: 主版本號 次版本號  最小版本號

5rpm包編譯完后的版本

el7系統版本號,代表centos7

i686硬件架構

有的軟件包硬件架構位置會有noarch的字樣,表示與硬件架構無關,可以運行在任何架構的機器上。

常見的arch有:x86  i386  i486   i586   i686  x6464  x64

互聯網上的很多軟件的發布,不一定是rpm的方式,都是以源代碼的方式發布,源代碼的方式發布會有各種后綴,但是一般都要tar打包,在打包的基礎上壓縮。

包的分類和拆包

Application-VERITION-ARCH.rpm  主包

Application-devel-VERITION-ARCH.rpm    開發子包

Application-tuils-VERITION-ARCH.rpm    工具子包

Application-libs-VERITION-ARCH.rpm    庫包

庫文件

查看二進制文件所依賴的庫文件

Ldd  /PATH/TO/BINARY_FILE

例如:ldd  /bin/ls    ldd  /bin/bash

管理及查看本機裝載的庫文件:

    Ldconfig

/sbin/ldconfig  -p:顯示本機已經緩存的所有可用庫文件名及文件路徑的映射關系。

配置文件:/etc/ld.so.conf    /etc/ld.so.conf.d/*.conf

緩存文件:/etc/ld.so.cache

RPM包管理

Centos系統上使用rpm命令管理程序包

作用

    安裝  卸載  升級  查詢  校驗   數據庫維護

rpm包的安裝

    rpm    -i  /path/rpm    安裝(要寫具體路徑)

           -v-vv          詳細顯示安裝過程

           -h               以#顯示安裝進度

           -q               查詢rpm包是否安裝

           -ql               查詢rpm包的安裝位置

一般rpm  -ivh  一起使用

rpm  -ivh  – -test    測試安裝,但不真正執行安裝

           – -nodeps   忽略依賴關系

           – -repleasepkgs  覆蓋安裝rpm

           – -repleasefiles   覆蓋安裝rpm包中的單個文件。比如有兩個包,其中個

                          別文件是一樣的,就可以用此命令,只覆蓋個別文件,而

                          不是整個rpm包。

           – -nodigest       不檢查包的完整性

           – -nosignature     不檢查包的合法來源

           – -noscipts        不執行程序包腳本片段

                   %per       先運行腳本再安裝rpm程序包  –nopre    

                   %post      先安裝rpm包再運行腳本      –nopost

                   %preun     先運行腳本后卸載rpm包      –nopreun

                   %postun     先卸載rpm包,再運行腳本   –nopostun

rpm包升級

rpm   -U    [install -option]

       如果安裝有舊版本,則升級,沒有安裝舊版本則安裝。

blob.png 

    注意:上圖對于tree的安裝,是在當前路徑下安裝的,所以沒有寫路徑,如果不

           在當前路徑下,要寫rpm包的完整路徑。

Rpm   -F    [install-option]

        如果安裝有舊版本,則升級,沒有安裝舊版本則不執行任何操作。

            – -oldpackage    降級

            – -force         強行升級

包查詢

    rpm    -e     卸載

           -a     所有包

        若包名記得不全,則可以rpm  -qa  |  grep “”模糊搜索

           -f     查看指定的文件由哪個安裝包生成。

           -p  rpmfile(完整路徑)  針對尚未安裝的程序波文件做查詢操作。

           – -changelog     查詢rpm的更改日志

 Rpm   -q  [option]  配合q使用  

            – -changelog   查詢rpm包的更改日志

            -c  查詢程序的配置文件

blob.png 

 

 

               -d      查詢程序的文檔

 

 blob.png

                – i      rpm包的信息

blob.png 

                 -l       查看指定程序包安裝后生成的所有文檔

                 – -scripts  查看程序包自帶的程序片段

 blob.png

                  -R     查看程序包的依賴關系

blob.png 

                  – -provides     列出指定程序包所指定的程序和功能

blob.png 

導入所需的公鑰

Rpm    -K   rpmfile       檢查包的完整性

例如

blob.png 

    運行后有報錯信息,這不是因為該包不完整,是因為系統現在沒有檢測能力。需要

導入公鑰文件才能用。

    導入  – -import  /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

                 blob.png

    再次執行-K命令就不會報錯了。

rpm  -qa gpg-pubkey*      下圖顯示的結果就是導入的密鑰文件

blob.png 

RPM數據庫

數據庫重建

    /var/lib/rpm

    安裝或卸載一個包,該數據庫都會更新,該文件被破壞后,會造成rpm無法查詢

Rpm包的信息。

    Rpm  – -initdb   初始化

如果事先不存在數據庫,則新建,否則不執行任何操作,

    Rpm  – -rebuilddb   重建

無論當前存在與否,直接重新創建數據庫。

 

原創文章,作者:zzd,如若轉載,請注明出處:http://www.www58058.com/39357

(1)
zzdzzd
上一篇 2016-08-24 10:12
下一篇 2016-08-24 10:12

相關推薦

  • linux系統基礎目錄結構及功能說明

    linux系統基礎目錄結構及功能說明 [root@localhost /]# ls bin boot dev etc home host lib lib64 media mnt opt proc root run sbin srv sys tmp usr var /bin:所有用戶可用的基本命令程序文件;/sbin:供系統管理使用的工具程序;/boot:引導…

    Linux干貨 2018-03-04
  • 馬哥教育網絡班21期-第七周課程練習

    1、創建一個10G分區,并格式為ext4文件系統;     #fdisk /dev/sdb (n;p;1;+10G;w)     #partx -a -n 1 /dev/sdb     (1…

    Linux干貨 2016-08-22
  • fstab配置文件、swap分區,文件關聯

    fstab配置文件、swap分區,文件關聯,lvm 掛載點和/etc/fstab ? 配置文件系統體系 ? 被mount、 fsck和其它程序使用 ? 系統重啟時保留文件系統體系 ? 可以在設備欄使用文件系統卷標 ? 使用mount -a 命令掛載/etc/fstab中的所有文件…

    Linux干貨 2016-09-01
  • 文本處理工具之grep

                    文本處理工具之grep 一、grep的簡介 1、grep是一個文本過濾器的工具,它根據用戶指定的模式(pattern)對目標文本進行匹配檢查,并將匹配的行打印到標準輸出或輸出重定向。 2、模式:由文本字符或正則表達式組成 3、正則表達式分…

    2017-05-06
  • 馬哥教育網絡班21期+第7周課程練習

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@localhost ~]# fdisk /dev/sda WARNING: DOS-compatible mode is&n…

    Linux干貨 2016-08-24
  • 磁盤分區管理

    進行磁盤分區之前首先要了解什么是磁盤分區:         磁盤分區是在磁盤上劃分幾個邏輯部分,盤片一旦劃分成數個分區,不同類的目錄與文件可以存儲進不同的分區。越多分區,也就有更多不同的地方,可以將文件的性質區分得更細,按照更為細分的性質,存儲在不同的地方以管理文件;但太多分區就…

    2017-08-21
欧美性久久久久