歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux學習筆記_6_1.1_RedHat系列軟件包管理(上)_二進制軟件包管理

Linux學習筆記_6_1.1_RedHat系列軟件包管理(上)_二進制軟件包管理

日期:2017/3/1 13:37:07   编辑:關於Linux

RedHat系列軟件包管理(上)

--二進制軟件包管理

Linux的學習思想:Linux相對與Windows來非常透明,因此,無論是系統,還是軟件。。。都會有本身自帶,或者是Man給提供的非常詳細的說明,幫助文檔,我們要利用好這些文檔,只要英文足夠好,不需要任何教科書,任何教學視頻,你都可以學好Linux!

一、RPM包管理

Linux軟件包命名形式

sudo-1.7.2p1-5.el5.i386.rpm

其中包括軟件名(sudo),版本號(1.7.2pl),發行號(5.el5),和硬件平台(i386)

(1)卸載軟件包

rpm -e name // 如果其它軟件包有依賴關系,卸載時會 產生提示信息

rpm -e –nodeps name // 添加—nodeps,可強行卸載;但是不建議這樣卸載

(2)安裝軟件包:sudo

rpm -ivh 軟件包【如:sudo-1.7.2p1-5.el5.i386.rpm】

v: 表示顯示詳細信息,可選

h:表示顯示安裝進度,可選

1、 掛載光盤:【最佳實踐:將光盤,U盤等掛載到/mnt目錄下】

mkdir /mnt/cdrom

mount /dev/cdrom /mnt/cdrom

【現在打開/mnt/cdrom就相當與訪問光盤內容】

【光盤中所有的二進制軟件全部保存在CentOS目錄下。】

2、 查詢是否存在:ls | grep sudo

3、 安裝: rpm -ivh sudo-1.7.2p1-5.el5.i386.rpm

4、 查看是否已安裝:rpm -q sudo

5、 rpm -qa | grep samba // 查詢所有與samba有關的軟件包

【-qa表示查詢安裝了的所有的軟件包】

其他安裝選項

--excludedocs 不按裝軟件的文檔

--prefix=PATH 將軟件包安裝到由PATH指定的路徑下

如:rpm -ivh –prefix=/usr/local sudo-1.7.2p1-5.el5.i386.rpm

【但是:大部分的rpm包都不允許改變安裝路徑】

--test 只是進行測試,而不進行真正安裝

【比如獲取依賴關系,該軟件包是否已經安裝】

特殊情況:

A.覆蓋安裝

--replacepkgs 覆蓋軟件安裝包

B.安裝沖突

如果要安裝的軟件包中有一個文件已在安裝其它軟件包時安裝,會出現以下錯誤信息:

rpm -ivh sudo-1.7.2p1-5.el5.i386.rpm

conflicts with file from bark-3.2-1l

sudo-1.7.2p1-5.el5.i386.rpm cannot be installed

使用—replacefiles忽略改出錯信息,覆蓋安裝

C.未解決依賴關系

該軟件包可能依賴於其它軟件包,在安裝了特定的軟件包之後才能安裝該軟件包。

rpm -ivh sudo-1.7.2p1-5.el5.i386.rpm

failed dependencies:

sudo is needed by bark-3.2-1l

使用--nodeps 選項,可以強制安裝此軟件包,十有八九運行不了。

(3)升級

rpm -Uvh sudo-1.8.0p1-5.el5.i386.rpm

(4)查詢【重要】

-a 查詢所有已安裝的軟件包.

-f 查詢文件所屬軟件包

-p 查詢軟件包

-q 查詢軟件包是否安裝

-i 顯示軟件包信息

-l 顯示軟件包中的文件列表

-d 顯示被標注為文檔的文件列表

-c 顯示被標注為配置文件的文件列表

實例:

1、查詢文件/命令隸屬的軟件包

rpm -qf /etc/services

rpm -qf /bin/ls

2、查詢軟件包信息

rpm -qi samba //查詢一個已經安裝的軟件包

rpm -qip samba.. //可以查詢還沒有安裝的rpm包,不過要寫全稱!

3、查詢安裝包的安裝文件,及安裝文件所在位置

rpm -ql sudo

rpm -qlp sudo... //沒有安裝,全稱!

4、查詢軟件包幫助文檔及所在位置

rpm -qd sudo

rpm -qdp sudo //沒有安裝,全稱!

5、查詢軟件包配置文件及所在位置

rpm -qc

rpm -qcp //同上

RPM綜合運用實例

一、vncserver是干什麼用的???

rpm -qf vncserver

然後 rpm -qi vnc-server...得知仔細信息

二、查詢vim的標准注釋

查詢系統中是否已經安裝某個安裝包用:rpm -qa | grep vim

而不是直接用: rpm -a vim

查詢示例文檔:rpm -qa vim | grep example

(5)校驗 可用於幫助我們判斷軟件包是否出現問題,以及出現的問題在哪裡

【rpm在安裝一個軟件到系統中時,會自動生成一個rpm庫,校驗時,會和這個庫比對】

rpm -V name 正常情況下不會有任何提示,他的任何文件都沒與更改

【md5sum:通過md5算法對文件生成唯一的校驗值,只要文件的內容不變,則校驗值就不會變】

【對該文件內容做任何一個微小的改變,他的校驗值都會改變】

 5 文件的md5校驗值

 S 文件大小

 L 鏈接文件

 T 文件的創建或最後修改時間

 D 設備文件

 U 文件的用戶

 G 文件的用戶組

 M 文件的權限

(6)重要文件修復

比如/etc/inittab文件被刪除,可以將該文件從原始的安裝光盤中提取出來

首先: 定位該文件隸屬於哪個軟件包

rpm -qf /etc/inittab

然後: 解壓所有文件到當前目錄【不推薦】

# rpm2cpio initscripts-8.45.30-2.el5.centos.i386.rpm | cpio -idv

解壓指定文件到當前目錄【推薦】

# rpm2cpio /mnt/cdrom/initscripts-8.45.30-2.el5.centos.i386.rpm | cpio -idv ./etc/inittab

【注意:./etc/inittab 只允許提取到當前目錄下】

【在Linux Server系統的管理上,我們更傾向與穩定,而不是最新版】

二、YUM軟件包管理【簡單、智能】

應用YUM的好處

(1)自動解決軟件安裝包依賴關系

(2)方便軟件包的升級

(3)可信任,官方軟件包

1、安裝

yum install sudo

2、檢測升級

yum check-update sudo

yum check-update // 檢測所有的軟件包的升級

3、升級【比較重要,常用的軟件包要經常升級一下】

yum update sudo

4、查詢軟件包信息

yum list //會列出軟件源上的所有軟件包

【最佳實踐:yum list | less yum list | grep samba】

5、查詢軟件包信息

yum info sudo

6、卸載軟件包

yum remove sudo

7、查看幫助信息

yum -help 或者 man yum

【最佳實踐:yum -help | less】

Copyright © Linux教程網 All Rights Reserved