日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 软件管理工具之rpm、yum

發(fā)布時間:2025/5/22 linux 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 软件管理工具之rpm、yum 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? RedHat linux下軟件包安裝方法通常有以下三種。

? ? ? rpm方式安裝,rpm是由紅帽公司開發(fā)的軟件包管理方式,使用rpm我們可以方便進行軟件的校驗、安裝、查詢、卸載、升級等工作。但是rpm軟件包之間的依賴性問題往往會很繁瑣,尤其是軟件由多個rpm包組成時。

? ? ? yum安裝,Yum(全稱為YellowdogUpdater,Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基于RPM包管理,能夠從指定的服務(wù)器自動下載RPM包并且安裝,可以自動處理依賴性關(guān)系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。

? ? ?編譯安裝,編譯安裝源碼包在某些情況下是必須的,如定制安裝包的各種屬性,優(yōu)化軟件

的運行環(huán)境,添加額外的功能模塊等,也是比較常用的一種安裝形式。編譯安裝需要相應(yīng)的編譯環(huán)境。Linux下的編譯器如gcc、g++。


? ? ? ?rpm包分為源碼rpm和二進制rpm包,二進制的rpm包可以直接安裝,源碼rpm需經(jīng)過編譯再生成rpm包。rpm來源有系統(tǒng)安裝光盤以及各社區(qū)發(fā)行版的網(wǎng)站,常用的有:

? ? ? ?http://mirrors.sohu.com

? ? ? ?http://rpmfind.net

? ? ? ?http://rpm.pbone.net/

rpm包通常表現(xiàn)為:Program-version-release.arch.[src].rpm

? ?Program軟件包名稱

? ?version軟件包版本號

? ?releaserpm的修訂號,有時會包含支持的OS,el5:rhel5

? ?arch系統(tǒng)平臺類型,getconf LONG_BIT可以獲取系統(tǒng)平臺的位數(shù)

? ?src表明此rpm包需要再編譯安裝。

如:zsh-4.2.6-3.el5.i386.rpm


rpm命令常用選項:

rpm

安裝:

? ?-i--install ? ? ? 跟完整包名,安裝軟件包

? ?-v\-vv\-vvv ? ?顯示詳細信息

? ?-h ? ? ? ? ? ? ? ? ?以#顯示進度


[root@localhost ~]# rpm -ivh jzlib-1.0.7-4jpp.1.i386.rpm Preparing... ########################################### [100%]1:jzlib ########################################### [100%]--nodeps 忽略依賴關(guān)系(不推薦,安裝后可能不正常工作) [root@localhost Server]# rpm -ivh anthy-devel-7900-4.el5.i386.rpm error: Failed dependencies:anthy = 7900-4.el5 is needed by anthy-devel-7900-4.el5.i386libanthy.so.0 is needed by anthy-devel-7900-4.el5.i386libanthydic.so.0 is needed by anthy-devel-7900-4.el5.i386libanthyinput.so.0 is needed by anthy-devel-7900-4.el5.i386 [root@localhost Server]# rpm -ivh anthy-devel-7900-4.el5.i386.rpm --nodeps Preparing... ########################################### [100%]1:anthy-devel ########################################### [100%]--replacepkgs 重新安裝[root@localhost Server]# rpm -ivh zsh-4.2.6-3.el5.i386.rpm Preparing... ########################################### [100%]package zsh-4.2.6-3.el5.i386 is already installed [root@localhost Server]# rpm --replacepkgs zsh-4.2.6-3.el5.i386.rpm rpm: only installation, upgrading, rmsource and rmspec may be forced [root@localhost Server]# rpm -ivh --replacepkgs zsh-4.2.6-3.el5.i386.rpm Preparing... ########################################### [100%]1:zsh ########################################### [100%]--test 測試安裝,不會安裝到系統(tǒng)中 [root@localhost Server]# rpm -ivh anthy-devel-7900-4.el5.i386.rpm --test error: Failed dependencies:anthy = 7900-4.el5 is needed by anthy-devel-7900-4.el5.i386libanthy.so.0 is needed by anthy-devel-7900-4.el5.i386libanthydic.so.0 is needed by anthy-devel-7900-4.el5.i386libanthyinput.so.0 is needed by anthy-devel-7900-4.el5.i386



卸載:

? ?-e跟程序名(下同,非完整包名)進行卸載

查詢:

? ?-q跟程序名,查詢此軟件有沒有安裝

? ?-qa查詢所有安裝的軟件包,配合通過管道送給grep進行模糊查詢

? ?-ql跟程序名,查詢此軟件包生成的文件列表

? ?-qf跟文件名,查詢此文件是哪個軟件包生成的

? ?-qc跟程序名,此軟件生成的配置文件

? ?-q --scripts跟程序名,查詢此包安裝時執(zhí)行的腳本

? ?-qd跟程序名,查詢此軟件的幫助文檔

? ?-qi跟程序名,查詢此軟件的簡要信息

升級:

? ?-U跟完整包名,沒有此軟件直接安裝,有就升級

? ?-F跟完整包名,只是升級

校驗:

? ?-V跟程序名,檢查程序生成的文件的屬性有沒有改動

? ?-K跟完整安裝包名,對軟件的來源的合法性和軟件的完整性進行校驗需事先

導(dǎo)入GPG-KEY

導(dǎo)入系統(tǒng)安裝光盤上的GPG-KEY: [root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 導(dǎo)入其他軟件源的GPG-KEY: [root@localhost ~]# rpm --import http://mirror.sohu.com/fedora-epel/RPM-GPG-KEY-EPEL-5 [root@localhost Server]# rpm -K zsh-4.2.6-3.el5.i386.rpm zsh-4.2.6-3.el5.i386.rpm: (sha1) dsa sha1 md5 gpg OK [root@localhost Server]# rpm -K --nodigest zsh-4.2.6-3.el5.i386.rpm zsh-4.2.6-3.el5.i386.rpm: (sha1) dsa gpg OK [root@localhost Server]# rpm -K --nosignature zsh-4.2.6-3.el5.i386.rpm zsh-4.2.6-3.el5.i386.rpm: sha1 md5 OK

生成、重建數(shù)據(jù)庫:

? ?--initdb新建rpm數(shù)據(jù)庫,位于/var/lib/rpm,用以存儲軟件包的屬性以及依賴關(guān)系等內(nèi)容。

? ?--rebuilddb重建rpm數(shù)據(jù)庫(當數(shù)據(jù)庫發(fā)生損壞時重建)


源碼格式的rpm:

? ? ?src格式rpm通過使用rpmbuild根據(jù)spec文件對數(shù)據(jù)包進行編譯來生成二進制類型的rpm包

具體步驟:(系統(tǒng)平臺:RHEL6 x86_64 )

[root@station117 ~]# rpm -ivh nginx-1.0.15-5.el6.src.rpm [root@station117 ~]# cd rpmbuild/ [root@station117 rpmbuild]# rpmbuild -ba SPECS/nginx.spec [root@station117 rpmbuild]# rpm -ivh /RPMS/x86_64/nginx-1.0.15-5.el6.x86_64.rpm [root@station117 rpmbuild]# service nginx start [root@station117 rpmbuild]# netstat -tnl | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 在安裝過程中會遇到軟件依賴的問題,用yum來解決比較方便,yum在后面有介紹: 部分安裝包的下載路徑: http://125.39.91.76:1234/sources/GeoIP-1.4.8-1.el6.x86_64.rpm http://125.39.91.76:1234/sources/GeoIP-devel-1.4.8-1.el6.x86_64.rpm http://125.39.91.76:1234/sources/httpd-2.2.25.tar.bz2 http://125.39.91.76:1234/sources/nginx-1.0.15-5.el6.src.rpm


yum:

使用yum之前需要先設(shè)置yum倉庫,yum倉庫可以是本地文件夾也可以是其他的文件服務(wù)器

設(shè)置yum倉庫的配置文件在/etc/yum.repos.d/下有repo為后綴的文件

[mycd] ----------> 倉庫id name=My CD ------------> 倉庫名稱 baseurl=file:///media/cdrom/Server ----------> 倉庫位置 enabled=1 -------------> 啟用此倉庫 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release ----> 驗證軟件包來源合法性以及包的完整性。 [Mirror.sohu] name=Mirror.sohu.com baseurl=http://mirror.sohu.com/centos/5/os/$basearch/ 由于rhel5和centos5兼容,所以rhel5也可以用centos5的yum源,sohu上是5而不是5Server,所以只能寫5了。如果是其他版本就直接寫數(shù)字。 enabled=1 gpecheck=0 gpgkey=http://mirror.sohu.com/centos/5/os/$basearch/RPM-GPG-KEY-CentOS-5 [fedora-epel] name=fedora-epel baseurl=http://mirror.sohu.com/fedora-epel/5/$basearch/ enabled=1 gpgcheck=0 gpgkey=http://mirror.sohu.com/fedora-epel/RPM-GPG-KEY-EPEL-5 yum.conf中的變量: $releasever:代表發(fā)行版本的版本號。如果系統(tǒng)是fedora core 6的話,則返回6,rhel $basearch:顯示基本架構(gòu)類型。如果系統(tǒng)為i386或i686等,則均返回i386 [root@localhost work]# yum list all Loaded plugins: rhnplugin, security This system is not registered with RHN. RHN support will be disabled. http://mirror.sohu.com/centos/5Server/os/i386/repodata/repomd.xml: [Errno 14] HTTP Error 404: Not Found Trying other mirror. 出錯的原因是yum變量$releasever在替換時成了5Server,而mirror.sohu.com上的目錄為5.改成5之后,更新成功。

/etc/yum.conf文件詳解 [main] cachedir=/var/cache/yum ----> yum更新軟件時的緩存目錄 keepcache=0 ----> 是否保存曾經(jīng)安裝過的包的源程序,0表示不保存。 debuglevel=2 -------> debug信息輸出等級,范圍為0-10,缺省為2 logfile=/var/log/yum.log ---> 存放系統(tǒng)更新軟件的日志 pkgpolicy=newest -----> 包的策略。有兩個選項,newest和last,如果設(shè)置了多個repository,而同一軟件在不同的repository中同時存在,如果是newest,則yum會安裝最新的那個版本。如果是last,則yum會將倉庫id以字母表排序,并選擇最后的那個 倉庫的軟件安裝。默認選newest。 distroverpkg=redhat-release ---> yum會根據(jù)這個包判斷你的發(fā)行版本,默認是redhat-release,也可以是安裝的任何針對自己發(fā)行版的rpm包。 tolerant=1 #如果值為1,則yum會忽略任何的有關(guān)包的錯誤。舉例來說,當執(zhí)行yum來安裝baz時,如果baz包已經(jīng)安裝在系統(tǒng)中了,則yum會繼續(xù)重復(fù)安裝baz,而不會報錯。默認值為1。 exactarch=1 ------> 設(shè)置為1,則yum只會安裝和系統(tǒng)架構(gòu)匹配的軟件包,如,yum不會將i686的軟件包安裝在適合i386的系統(tǒng)中。默認為1 retries=20 -------> 網(wǎng)絡(luò)連接發(fā)生錯誤后的重試次數(shù),如果設(shè)為0,則會無限重試。默認值為6 obsoletes=1 -------> 此選項在進行發(fā)行版跨版本升級的時候會用到。 gpgcheck=1 -----------> gpg校驗。這個選項如果設(shè)置在[main]部分,則對每個repository都有效。默認值為0.


創(chuàng)建本地源:

? ? ?把rpm包放在一個目錄中,使用createrepo命令生成repodata,repodata中包含軟件的屬性信息和依賴性等信息,如果將系統(tǒng)光盤中的軟件包拷出來做一個源的話,建議使用-g選項生成軟件包組的信息,便于使用yum groupinstall “組名”進行安裝。


1、首先安裝createrepo軟件 [root@localhost work]# yum install createrepo Loaded plugins: rhnplugin, security This system is not registered with RHN. RHN support will be disabled. mycd | 1.3 kB 00:00 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package createrepo.noarch 0:0.4.11-3.el5 set to be updated 2、創(chuàng)建repodata信息: [root@localhost ~]# createrepo xen-4.1 28/28 - xen-debuginfo-4.1.2-13.el6.x86_64.rpm Saving Primary metadata Saving file lists metadata Saving other metadata 3、在/etc/yum.repos.d/下新建一個文件xen.repo,添加如下內(nèi)容: [Xen] name=localhost xen baseurl=file:///root/xen-4.1/ enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release (系統(tǒng)安裝盤上的GPG-KEY) 4、以后就可以用yum install xen來安裝了。



yum 常用選項:

yum

安裝:

? ?install 跟程序名,可模糊匹配,安裝軟件

? ?localinstall 跟完整包名,從本機目錄安裝軟件包

? ?groupinstall 安裝某個組件的全部軟件包,可事先用yum grouplist查看可用包組

更新:

? ?update 跟程序名,更新所選軟件

? ?check-update 列出所有可更新的軟件包

? ?list updates 查找可用的更新

? ?update 更新所有可更新的軟件包(慎用)

? ?groupupdate 跟組名,更新某個組件的所有軟件包

查詢:

? ?list all列出所有已安裝和倉庫中可用的軟件包

? ?list available 列出倉庫中所有可用的軟件包

? ?list updates 列出倉庫中比當前系統(tǒng)更新的軟件包

? ?list installed 列出已安裝的軟件包

? ?list recent 列出新加入倉庫的軟件包

? ?info 跟程序名,查詢軟件包信息

? ?whatprovides 跟文件名,查詢此文件時哪個軟件生成的


卸載:

? ?remove跟程序名,卸載軟件包

? ?groupremove 跟組名,刪除某個組件的全部軟件包

清除信息:

? ?clean packages清除遺留在緩存里的包文件

? ?clean metadata 清除遺留在緩存里的元數(shù)據(jù)

? ?clean headers 清除遺留在緩存里的頭文件

? ?clean all 清除包文件,元數(shù)據(jù),頭文件



轉(zhuǎn)載于:https://blog.51cto.com/jackyan/1260023

總結(jié)

以上是生活随笔為你收集整理的Linux 软件管理工具之rpm、yum的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。