Linux 命令大全(六)——軟件安裝


六、 軟件安裝
RPM
RPM 軟件的安裝、刪除、更新只有 root 權限才能使用;對於查詢功能任何用戶都可以操作;如果普通
用戶擁有安裝目錄的權限,也可以進行安裝。
初始化 rpm 數據庫
通過 rpm 命令查詢一個 rpm 包是否安裝了,也是要通過 rpm 數據庫來完成的;所以我們要經常用下面
的兩個命令來初始化 rpm 數據庫;
[root@localhost beinan]# rpm --initdb
[root@localhost beinan]# rpm --rebuilddb 注:這個要花好長時間;
注:這兩個參數是極為有用,有時 rpm 系統出了問題,不能安裝和查詢,大多是這里出了問題;
/var/lib/rpm 目錄下的數據庫記錄所有軟件的升級需求,記錄已經安裝的所有軟件,數字證書記錄等,這
個目錄下的文件非常重要。
RPM 軟件包管理的查詢功能:
命令格式
rpm {-q|--query} [select-options] [query-options]
RPM 的查詢功能是極為強大,是極為重要的功能之一;舉幾個常用的例子,更為詳細的具體的,請參考
#man rpm
1 、查詢系統已安裝的軟件;
語法:rpm -q 軟件名
舉例:
[root@localhost beinan]# rpm –q gaim
gaim-1.3.0-1.fc4
-q 就是 --query ,中文意思是“問”,此命令表示的是,是不是系統安裝了 gaim ;如果已安裝會有
信息輸出;如果沒有安裝,會輸出 gaim 沒有安裝的信息;查看系統中所有已經安裝的包,要加 -a 參
數;
[root@localhost RPMS]# rpm -qa
如果分頁查看,再加一個管道 |和 more 命令;
[root@localhost RPMS]# rpm -qa |more
在所有已經安裝的軟件包中查找某個軟件,比如說 gaim ;可以用 grep 抽取出來;
[root@localhost RPMS]# rpm -qa |grep gaim
上面這條的功能和 rpm -q gaim 輸出的結果是一樣的;
等 37448
2 、查詢一個已經安裝的文件屬於哪個軟件包;
語法 rpm -qf 文件名 注:文件名所在的絕對路徑要指出舉例:
[root@localhost RPMS]# rpm -qf /usr/lib/libacl.la
libacl-devel-2.2.23-8
3 、查詢已安裝軟件包都安裝到何處;
語法:rpm -ql 軟件名 或 rpm rpmquery -ql 軟件名 舉例:
[root@localhost RPMS]# rpm -ql lynx
[root@localhost RPMS]# rpmquery -ql lynx
4 、查詢一個已安裝軟件包的信息
語法格式: rpm -qi 軟件名
舉例:
[root@localhost RPMS]# rpm -qi lynx
5 、查看一下已安裝軟件的配置文件;
語法格式:rpm -qc 軟件名
舉例:
[root@localhost RPMS]# rpm -qc lynx
6 、查看一個已經安裝軟件的文檔安裝位置:
語法格式: rpm -qd 軟件名
舉例:
[root@localhost RPMS]# rpm -qd lynx
7 、查看一下已安裝軟件所依賴的軟件包及文件;
語法格式: rpm -qR 軟件名
舉例:
[root@localhost beinan]# rpm -qR rpm-python
查詢已安裝軟件的總結:對於一個軟件包已經安裝,我們可以把一系列的參數組合起來用;比如 rpm
-qil ;比如:
[root@localhost RPMS]# rpm -qil lynx
對已安裝軟件包查詢的一點補充;
[root@localhost RPMS]# updatedb
[root@localhost RPMS]# locate 軟件名或文件名
通過 updatedb,我們可以用 locate 來查詢一些軟件安裝到哪里了;系統初次安裝時要執行 updatedb ,
每隔一段時間也要執行一次;以保持已安裝軟件庫最新;updatedb 是 slocate 軟件包所有;如果您沒
有這個命令,就得安裝 slocate ;舉例:
[root@localhost RPMS]# locate gaim
對於未安裝的軟件包的查看:
查看的前提是您有一個.rpm 的文件,也就是說對既有軟件 file.rpm 的查看等;
1 、查看一個軟件包的用途、版本等信息;
語法: rpm -qpi file.rpm
舉例:
[root@localhost RPMS]# rpm -qpi lynx-2.8.5-23.i386.rpm
2 、查看一件軟件包所包含的文件;
語法: rpm -qpl file.rpm
舉例:
[root@localhost RPMS]# rpm -qpl lynx-2.8.5-23.i386.rpm 3 、查看軟件包的文檔所在的位置;
語法: rpm -qpd file.rpm
舉例:
[root@localhost RPMS]# rpm -qpd lynx-2.8.5-23.i386.rpm
4 、查看一個軟件包的配置文件;
語法: rpm -qpc file.rpm
舉例:
[root@localhost RPMS]# rpm -qpc lynx-2.8.5-23.i386.rpm
5 、查看一個軟件包的依賴關系
語法: rpm -qpR file.rpm
舉例:
[root@localhost archives]# rpm -qpR yumex_0.42-3.0.fc4_noarch.rpm
/bin/bash
/usr/bin/python
config(yumex) = 0.42-3.0.fc4
pygtk2
pygtk2-libglade
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
usermode
yum >= 2.3.2
軟件包的安裝、升級、刪除等;
1 、安裝和升級一個 rpm 包;
[root@localhost beinan]#rpm -vih file.rpm 注:這個是用來安裝一個新的 rpm 包;
[root@localhost beinan]#rpm -Uvh file.rpm 注:這是用來升級一個 rpm 包;
如果有依賴關系的,請解決依賴關系,其實軟件包管理器能很好的解決依賴關系,請看前面的軟件包管理器
的介紹;如果您在軟件包管理器中也找不到依賴關系的包;那只能通過編譯他所依賴的包來解決依賴關系,
或者強制安裝;語法結構:
[root@localhost beinan]# rpm -ivh file.rpm --nodeps --force
[root@localhost beinan]# rpm -Uvh file.rpm --nodeps --force
更多的參數,請查看 man rpm 舉例應用:
[root@localhost RPMS]# rpm -ivh lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]
[root@localhost RPMS]# rpm -ivh --replacepkgs lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]
注: --replacepkgs 參數是以已安裝的軟件再安裝一次;有時沒有太大的必要;測試安裝參數 --test ,
用來檢查依賴關系;並不是真正的安裝;
[root@localhost RPMS]# rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%] 由新版本降級為舊版本,要加 --oldpackage 參數;
[root@localhost RPMS]# rpm -qa gaim
gaim-1.5.0-1.fc4
[root@localhost RPMS]# rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# rpm -qa gaim
gaim-1.3.0-1.fc4
為軟件包指定安裝目錄:要加 -relocate 參數;下面的舉例是把 gaim-1.3.0-1.fc4.i386.rpm 指定安裝在
/opt/gaim 目錄中;
[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# ls /opt/
gaim
為軟件包指定安裝目錄:要加 -relocate 參數;下面的舉例是把 lynx-2.8.5-23.i386.rpm 指定安裝在
/opt/lynx 目錄中;
[root@localhost RPMS]# rpm -ivh --relocate /=/opt/lynx --badreloc lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]
我們安裝在指定目錄中的程序如何調用呢?一般執行程序,都放在安裝目錄的 bin 或者 sbin 目錄中;看下
面的例子;如果有錯誤輸出,就做相應的鏈接,用 ln -s ;
[root@localhost RPMS]# /opt/lynx/usr/bin/lynx
Configuration file /etc/lynx.cfg is not available.
[root@localhost RPMS]# ln -s /opt/lynx/etc/lynx.cfg /etc/lynx.cfg
[root@localhost RPMS]# /opt/lynx/usr/bin/lynx www.linuxsir.org
RPM 管理包管理器支持網絡安裝和查詢;
比如我們想通過 Fedora Core 4.0 的一個鏡像查詢、安裝軟件包;地址:
http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/ 舉例:命令格式:
rpm 參數 rpm 包文件的 http 或者 ftp 的地址
# rpm -qpi http://mirrors.kernel.org/fedora/core/4/i386/os/
Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm
# rpm -ivh http://mirrors.kernel.org/fedora/core/4/i386/os/
Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm
2 、刪除一個 rpm 包;
首先您要學會查詢 rpm 包 ;請看前面的說明; [root@localhost beinan]#rpm -e 軟件包名 舉例:我想
移除 lynx 包,完整的操作應該是:
[root@localhost RPMS]# rpm -e lynx
如果有依賴關系,您也可以用--nodeps 忽略依賴的檢查來刪除。但盡可能不要這么做,最好用軟件包管理
器 systerm-config-packages 來刪除或者添加軟件;
[root@localhost beinan]# rpm -e lynx --nodeps
RPM 驗證與數字證書:
導入簽名: [root@localhost RPMS]# rpm --import 簽名文件 舉例:
[root@localhost fc40]# rpm --import RPM-GPG-KEY
[root@localhost fc40]# rpm --import RPM-GPG-KEY-fedora
RPM 驗證作用是使用/var/lib/rpm 下面的數據庫內容來比較目前 linux 系統的環境下的所有軟件文件,也就
是說當你有數據不小心丟失,或者不小心修改到某個軟件的文件內容,就用這個簡單的方法驗證一下原本的
文件系統
#rpm –Va
列出目前系統上面所有可能被改動過的文件
rpm 軟件包抽取文件;
命令格式: rpm2cpio file.rpm |cpio -div
舉例:
[root@localhost RPMS]# rpm2cpio gaim-1.3.0-1.fc4.i386.rpm |cpio -div
抽取出來的文件就在當用操作目錄中的 usr 和 etc 中;其實這樣抽到文件不如指定安裝目錄來安裝軟件來
的方便;也一樣可以抽出文件;為軟件包指定安裝目錄:要加 -relocate 參數;下面的舉例是把
gaim-1.3.0-1.fc4.i386.rpm 指定安裝在 /opt/gaim 目錄中;
[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# ls /opt/
gaim
這樣也能一目了然;gaim 的所有文件都是安裝在 /opt/gaim 中,我們只是把 gaim 目錄備份一下,然后卸
掉 gaim;這樣其實也算提取文件的一點用法;
RPM 的配置文件;
RPM 包管理,的配置文件是 rpmrc ,我們可以在自己的系統中找到;比如 Fedora Core 4.0 中的 rpmrc 文
件位於;
[root@localhost RPMS]# locate rpmrc
/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc
我們可以通過 rpm --showrc 查看;具體的還得我們自己來學習。呵。。。不要問我,我也不懂;只要您
看了這篇文章,認為對您有用,您的水平就和我差不多;咱們水平是一樣的,所以我不能幫助您了;請
理解。
YUM
YUM 配置文件
創建容器,位置在 /etc/yum.repos.d ,擴展名必須是 .repo
#cd /etc/yum.repos.d
#vim yum.repo
新建一個倉庫文件,名字可以隨便定義,在文件中寫如下內容
[base]
# 代表容器名稱,中括號一定要存在,里面的名字可隨便取
name=base # 說明這個容器的意義,隨便寫都可以
baseurl=ftp://192.168.0.6/pub/Server
#192. 168. 0. 6 是你的 YUM 源地址,這個很重要。
enabled=1
# 是否啟動, =0 則不啟動,不啟動就無法使用該源
gpgcheck=0 # 是否驗證 . 可不要
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release #驗證的密鑰 . 可不要 命令 :#yum repolist all
顯示目前所使用的容器有哪些
如果查詢出來的容器, status disabled ,要將配置文件,如上 enabled=1
/etc/yum.conf
yum.conf 這個配置文件主要是 yum 客戶端使用,里面主要規定了要去用的 rpm 包的 yum 服務器的信
息。
[main] #main 開頭的塊用於對客戶端進行配置,在 main 后也可以指定 yum 源(不推薦這樣做),與
/etc/yum.repo.d 中指定 yum 源相同
cachedir=/var/cache/yum
#cachedir yum 緩存的目錄, yum 在此存儲下載的 rpm 包和數據庫,一般是 /var/cache/yum
keepcache=0 #0 表示不保存下載的文件, 1 表示保存下載的文件,默認為不保存
debuglevel=2
#debuglevel :除錯級別, 0 ── 10, 默認是 2 貌似只記錄安裝和刪除記錄
logfile=/var/log/yum.log
# 指定 yum 的日志文件
pkgpolicy=newest
# 包的策略,如果配置多了 yum 源,同一軟件在不同的 yum 源中有不同版本,
newest 則安裝最新版本,該值為 lastest ,則 yum 會將服務器上 ID 按照字母序排列,選擇最后那個服務器上
的軟件安裝
distroverpkg=centos-release
# 指定一個軟件包, yum 會根據這個包判斷你的發行版本,默認是 redhat-release ,也可以是安裝的任何
針對自己發行版的 rpm 包。
tolerant=1
#tolerent ,也有 1 0 兩個選項,表示 yum 是否容忍命令行發生與軟件包有關的錯誤,比如你要安裝
1,2,3 三個包,而其中 3 此前已經安裝了,如果你設為 1, yum 不會出現錯誤信息。默認是 0
exactarch=1
#exactarch ,有兩個選項 1 0, 代表是否只升級和你安裝軟件包 cpu 體系一致的包,如果設為 1 ,則如
你安裝了一個 i386 rpm ,則 yum 不會用 i686 的包來升級。
retries=20
#retries ,網絡連接發生錯誤后的重試次數,如果設為 0 ,則會無限重試。
obsoletes=1
gpgcheck=1
#gpgchkeck= 1 0 兩個選擇,分別代表是否是否進行 gpg 校驗,如果沒有這一項,默認是檢查的。
plugins = 1
# 是否啟用插件,默認 1 為允許, 0 表示不允許
reposdir=/etc/yy.rm # 默認是 /etc/yum.repos.d/ 低下的 xx.repo 后綴文件
# 默認都會被 include 進來 也就是說 /etc/yum.repos.d/xx.repo 無論配置文件有多少個 每個里面有多少
[name] 最后其實都被整合到 一個里面看就是了 重復的 [name] 應該是前面覆蓋后面的 -- 還是后面的覆蓋前
面的呢? enabled 測試是后面覆蓋前面
exclude=xxx
#exclude 排除某些軟件在升級名單之外,可以用通配符,列表中各個項目要用空格隔開,這個對於安
裝了諸如美化包,中文補丁的朋友特別有用。
keepcache=[1 or 0]
# 設置 keepcache=1 yum 在成功安裝軟件包之后保留緩存的頭文件 (headers) 和軟件包。默認值為
keepcache=0 不保存
reposdir=[ 包含 .repo 文件的目錄的絕對路徑 ]
# 該選項用戶指定 .repo 文件的絕對路徑。 .repo 文件包含軟件倉庫的信息 ( 作用與 /etc/yum.conf 文件
中的 [repository] 片段相同 ) 。中 YUM 命令
YUM 安裝刪除軟件 yum install xxx yum 會查詢數據庫,有無這一軟件包,如果有,則檢查其依賴沖
突關系,如果沒有依賴沖突,那么最好,下載安裝 ; 如果有,則會給出提示,詢問是否要同時安裝依賴,或
刪除沖突的包,你可以自己作出判斷。
刪除的命令是, yum remove xxx ,同安裝一樣, yum 也會查詢數據庫,給出解決依賴關系的提示。
YUM 安裝軟件包
命令: yum install
YUM 刪除軟件包
命令: yum remove
YUM 查詢軟件信息,我們常會碰到這樣的情況,想要安裝一個軟件,只知道它和某方面有關,但又
不能確切知道它的名字。這時 yum 的查詢功能就起作用了。你可以用 yum search keyword 這樣的命令來進
行搜索,比如我們要則安裝一個 Instant Messenger ,但又不知到底有哪些,這時不妨用 yum search messenger
這樣的指令進行搜索, yum 會搜索所有可用 rpm 的描述,列出所有描述中和 messeger 有關的 rpm 包,於是
我們可能得到 gaim kopete 等等,並從中選擇。有時我們還會碰到安裝了一個包,但又不知道其用途,我
們可以用 yum info packagename 這個指令來獲取信息。
1. 使用 YUM 查找軟件包
命令: yum search
2. 列出所有可安裝的軟件包
命令: yum list
3. 列出所有可更新的軟件包
命令: yum list updates
4. 列出所有已安裝的軟件包
命令: yum list installed
5. 列出所有已安裝但不在 Yum Repository 內的軟件包
命令: yum list extras
6. 列出所指定的軟件包
命令: yum list
7. 使用 YUM 獲取軟件包信息
命令: yum info
8. 列出所有軟件包的信息
命令: yum info
9. 列出所有可更新的軟件包信息
命令: yum info updates
10. 列出所有已安裝的軟件包信息
命令: yum info installed
11. 列出所有已安裝但不在 Yum Repository 內的軟件包信息
命令: yum info extras
12. 列出軟件包提供哪些文件
命令: yum provides 清除 YUM 緩存
yum 會把下載的軟件包和 header 存儲在 cache 中,而不會自動刪除。如果我們覺得它們占用了磁盤空間,
可以使用 yum clean 指令進行清除,更精確的用法是 yum clean headers 清除 header yum clean packages
除下載的 rpm 包, yum clean all 一股腦兒端
1. 清除緩存目錄 (/var/cache/yum) 下的軟件包
命令: yum clean packages
2. 清除緩存目錄 (/var/cache/yum) 下的 headers
命令: yum clean headers
3. 清除緩存目錄 (/var/cache/yum) 下舊的 headers
命令: yum clean
Oldheaders
4. 清除緩存目錄 (/var/cache/yum) 下的軟件包及舊的 headers
命令: yum clean, yum clean
all (= yum clean packages; yum clean oldheaders)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM