天天看點

linux軟體包安裝

在linux中分為rpm包和二進制包安裝,yum安裝也屬于rpm包安裝的一種。

rpm包名原則

linux軟體包安裝

rpm包依賴性

樹形依賴:a -> b -> c

環形依賴:a -> b-> c -> a

子產品依賴:查詢網站 www.rpmfind.net

子產品依賴的執行個體報錯:(實驗機器為 centos6.3 x64)

通過挂載第一張CD光牒後,進入CD光牒中的package目錄,安裝 mysql-connector-odbc 這個包,報錯如下

報錯中說的很清楚,缺少libltdl.so.7這個軟體包。

先解釋一下libltdl.so.7 這個是啥?在linux中以 ".so.數字" 結尾的檔案都是軟體包組,這是某一個軟體包中的一個軟體,如要解決這個依賴,

需要在 www.rpmfind.net 中查找對應的軟體包安裝。

linux軟體包安裝

在指令行模式中,rpm包還有包名和包全名之分,在不同的情況下用不同的名字。

包名:以最上面的rpm包名原則那張圖為例:包名就是 httpd

包全名:從頭到尾就是包全名了~

當操作對象為已安裝的軟體那麼接包名,若操作對象為未安裝軟體時則需要接包全名,除了安裝和更新是需要用包全名,大多數時候使用包名即可。

rpm安裝

# rpm   ivh 包全名

選項:  -i (install)     安裝

             -v (verbose) 顯示詳細資訊

             -h(hash)       顯示進度

             --nodeps            不檢測依賴性

rpm包更新

# rpm   uvh  包全名

選項: -u  (upgrade)    更新

rpm解除安裝

# rpm   e  包名

選項:-e  (erase)    解除安裝

查詢是否安裝rpm包

# rpm  q   包名       查詢該包是否安裝

# rpm   -qa  包名       查詢所有已經安裝的rpm包

            -q         查詢

            -a          所有

查詢軟體包詳細資訊

# rpm  qi  包名

選項:  -i   查詢軟體資訊

              -l    清單(查詢軟體包的安裝位置)

              -p  查新未安裝包資訊

# rpm -qip zip-3.0-1.el6.x86_64.rpm 查詢未安裝軟體的軟體包的詳細資訊,因為操作對象是未安裝的軟體,是以接包全名

# rpm -qlp zlib-devel-1.2.3-27.el6.x86_64.rpm        查詢未安裝軟體準備安裝的位置

查詢系統檔案屬于哪個rpm包

# rpm   qf   系統檔案名

選項:  -f   查詢系統檔案屬于哪個軟體包

查詢軟體包的依賴性

# rpm  qf   系統檔案名

選項:-r  查詢軟體包的依賴性

         -p  查詢未安裝包資訊

rpm包校驗

# rpm v 已安裝的包名

選項:-v  校驗指定rpm包中的檔案

rpm包中檔案提取

# rpm2cpio 包全名 | cpio idv   .檔案絕對路徑

rpm2cpio   将rpm包轉換為cpio格式的指令

cpio是一個标準工具,它用于建立軟體檔案檔案和從檔案檔案中提取檔案

提取檔案執行個體

[root@nfs-server ~]# rpm -qf /bin/ls       首先檢視 ls 指令屬于哪個軟體包

coreutils-8.4-19.el6.x86_64

[root@nfs-server ~]# mv /bin/ls /tmp       造成ls指令誤删除

[root@nfs-server ~]# ls           ls指令失效

-bash: /bin/ls: no such file or directory

[root@nfs-server ~]# rpm2cpio /mnt/packages/coreutils-8.4-19.el6.x86_64.rpm  | cpio -idv ./bin/ls    

./bin/ls                  提取rpm包中ls指令到目前目錄的 /bin/ls下

25190 blocks

[root@nfs-server ~]# cp /root/bin/ls /bin    把ls指令複制到 /bin/ls 目錄,修複檔案丢失

[root@nfs-server ~]# ls       ls指令恢複

anaconda-ks.cfg  bin  install.log  install.log.syslog

繼續閱讀