linux解决软件依赖的命令,通过yum解决软件的依赖关系
在安裝libX11-dev的時候遇到如下問題。
[root@localhost?Server]#?rpm?-ivh?--aid?libX11-devel-1.0.3-11.el5.i386.rpm
warning:?libX11-devel-1.0.3-11.el5.i386.rpm:?Header?V3?DSA?signature:?NOKEY,?key?ID?37017186
error:?Failed?dependencies:
libXau-devel?is?needed?by?libX11-devel-1.0.3-11.el5.i386
libXdmcp-devel?is?needed?by?libX11-devel-1.0.3-11.el5.i386
xorg-x11-proto-devel?>=?7.1-2?is?needed?by?libX11-devel-1.0.3-11.el5.i386
需要依賴關(guān)系
A、強制安裝----暴力型
使用rpm?-i?--force?--nodeps強制安裝。忽略依賴關(guān)系。這種方法你可以先裝A包,再裝B包,再裝C包。這樣還是有點隱患的,感覺不是很踏實(雖然其實目前沒發(fā)現(xiàn)什么不好)。安裝后使用成功的前提是:你要搞清楚依賴關(guān)系,并且把這些包都裝好。好處是:不用管它們的具體依賴關(guān)系先后順序。
B、一次性全裝上---一網(wǎng)打盡型
可以把依賴的幾個包拷出來放在同一個文件夾里?然后?rpm?-ivn?*.rpm這樣也可以?前提也是一個都不能少。
C、?使用yum技術(shù)安裝--使用服務(wù)器方式
yum是一個服務(wù)器資源技術(shù)。通過在線下載服務(wù)器資源的方式。?缺點:太繁瑣。要設(shè)置一堆的東西。優(yōu)點:設(shè)置以后,很方便,需要的大多數(shù)資源都可以從服務(wù)器上找到。這點感覺很像maven2有木有?
參考:
D、使用redhat提供的解決方案,安裝依賴關(guān)系庫(強烈推薦)
例子:先安裝rpmdb,之后使用
#?rpm?-ivh?--aid?samba*.rpm?(一定要安裝rpmdb后才可以用這種方式安裝排除依賴關(guān)系)該命令會自動把依賴關(guān)系中需要安裝的包都安裝上,包括:cups-libs-1.1.17-13.3.6.rpmsamba-common-3.0.0-14.3E.i386.rpmsamba-3.0.0-14.3E.i386.rpmsamba-client-3.0.0-14.3E.i386.rpm可以很簡單地解決直接安裝samba-3.0.0-14.3E.i386.rpm或者samba-client-3.0.0-14.3E.i386.rpm對samba-common-3.0.0-14.3E.i386.rpm的依賴,而安裝sambacommon-3.0.0-14.3E.i386.rpm出現(xiàn)對都libcups.so.2庫文件的依賴,而且該庫文件所在的rpm包無法很快確定上述方法可以很快解決依賴關(guān)系
想要通過yum一勞永逸。
Yum可以從眾多軟件包倉庫中搜索軟件的依賴關(guān)系,因此可以減少由于依賴關(guān)系帶來的問題。還有就是我們在使用圖形界面時,在應(yīng)用程序-添加刪除軟件下的瀏覽里是空的。如下圖:
第一種方法:(推薦)
第一步:新建一個文件夾,并把光盤內(nèi)的所有文件復(fù)制到這個文件夾里:
[root@localhost?~]#?mkdir?/yum
[root@localhost?~]#?cp?-rvf?/misc/cd/*?/yum
第二步:備份repodata文件。因為有四個文件夾里都有這個文件,所以都要備份。
[root@localhost?~]#?mv?/yum/Server/repodata?/yum/Server/repodata.bak
[root@localhost?~]#?mv?/yum/VT/repodata?/yum/VT/repodata.bak
[root@localhost?~]#?mv?/yum/Cluster/repodata?/yum/Cluster/repodata.bak
[root@localhost?~]#?mv?/yum/ClusterStorage/repodata?/yum/ClusterStorage/repodata.bak
第三步:安裝工具包:
[root@localhost?~]#?rpm?-ivh?/yum/Server/createrepo-0.4.11-3.el5.noarch.rpm
第四步:生成倉庫數(shù)據(jù)庫:
[root@localhost?~]#?createrepo?-g?/yum/Server/repodata.bak/comps-rhel5-server-core.xml?/yum/Server/
[root@localhost?~]#?createrepo?-g?/yum/VT/repodata.bak/comps-rhel5-vt.xml?/yum/VT/
[root@localhost?~]#?createrepo?-g?/yum/Cluster/repodata.bak/?/yum/Cluster
[root@localhost?~]#?createrepo?-g?/yum/ClusterStorage/repodata.bak/comps-rhel5-cluster-st.xml?/yum/ClusterStorage/
第五步:查看倉庫數(shù)據(jù)文件:
[root@localhost?~]#?ls?/yum/Server/repodata/
comps-rhel5-server-core.xml?//這個文件軟件包組的分類。
filelists.xml.gz?other.xml.gz?primary.xml.gz?//這三個文件為軟件包列表文件。
repomd.xml???//這個文件為MD5校驗信息。
在/yum/VT?/yum/Cluster?/yum/ClusterStorage下面都有這幾個文件,作用和這一樣。如果想更新軟件包,只需把下載完的軟件包放在Server或者其他三個目錄里,再使用第四步重新生成數(shù)據(jù)庫文件即可。
第六步:客戶端配置:主要修改下面紅色的部分:
[root@localhost?~]#?cp?/etc/yum.repos.d/rhel-debuginfo.repo?/etc/yum.repos.d/chenbin.repo
[root@localhost?~]#?vi?/etc/yum.repos.d/chenbin.repo
[rhel-Server]
name=Red?Hat?Enterprise?Linux?$releasever?-?$basearch?-?Debug
baseurl=file:///yum/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-VT]
name=Red?Hat?Enterprise?Linux?$releasever?-?$basearch?-?Debug
baseurl=file:///yum/VT
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-Cluster]
name=Red?Hat?Enterprise?Linux?$releasever?-?$basearch?-?Debug
baseurl=file:///yum/Cluster
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-ClusterStorage]
name=Red?Hat?Enterprise?Linux?$releasever?-?$basearch?-?Debug
baseurl=file:///yum/ClusterStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
第七步:查看:如圖,已經(jīng)出現(xiàn)軟件列表了。
如果在上圖中的編輯里選擇軟件存儲庫,就出現(xiàn)下圖:
如果把這里的勾去掉,再次打開就沒有軟件列表了,同時在/etc/yum.repos.d/chenbin.repo配置文件下的enabled=0。
清除一下yum安裝時的緩存:
[root@localhost?~]#?yum?clean?all
安裝一個軟件試試:
[root@localhost?~]#?rpm?-ivh?/yum/Server/httpd-2.2.3-22.el5.i386.rpm
warning:?/yum/Server/httpd-2.2.3-22.el5.i386.rpm:?Header?V3?DSA?signature:?NOKEY,?key?ID?37017186
error:?Failed?dependencies:
libapr-1.so.0?is?needed?by?httpd-2.2.3-22.el5.i386
libaprutil-1.so.0?is?needed?by?httpd-2.2.3-22.el5.i386
因為依賴關(guān)系,所以不能安裝。用如下命令安裝:
[root@localhost?~]#?yum?install?/yum/Server/httpd-2.2.3-22.el5.i386.rpm
系統(tǒng)會自動安裝完成。Yum缷載如下:
[root@localhost?~]#?yum?remove?httpd。
1.4總結(jié):YUM常用命令:
1.安裝軟件包:
yum?install?package
yum?localinstall?package?從本機目錄安裝軟件包
yum?groupinstall?group?安裝某個組件的全部軟件包
2.更新軟件包:
yum?update?package
yum?check-update?列出所有可更新的軟件包
yum?list?updates?mysql*?查找mysql的更新
yum?update?更新所有可更新的軟件包
yum?update?mysql*?更新所有mysql的軟件包
yum?groupupdate?group?更新某個組件的所有軟件包
yum?list?列出所有已安裝和倉庫中可用的軟件包
yum?list?available?列出倉庫中所有可用的軟件包
yum?list?updates?列出倉庫中比當(dāng)前系統(tǒng)更新的軟件包
yum?list?installed?列出已安裝的軟件包
yum?list?recent?列出新加入倉庫的軟件包
yum?info?查詢軟件包信息
3.刪除軟件包:
yum?remove?package
yum?groupremove?group?刪除某個組件的全部軟件包
4.清除軟件包
yum?clean?packages?清除遺留在緩存里的包文件
yum?clean?metadata?清除遺留在緩存里的元數(shù)據(jù)
yum?clean?headers?清除遺留在緩存里的頭文件
yum?clean?all?清除包文件,元數(shù)據(jù),頭文件
5.搜索軟件包:
yum?search?package
yum?info?package?查找一個軟件包的信息
yum?list?package?列出包含指定信息的軟件包
yum?list?installed?列出已安裝的軟件包
yum?list?extras?列出不是通過軟件倉庫安裝的軟件包
yum?list?*ttp*?列出標(biāo)題包含ttp的軟件包
yum?list?updates?列出可以更新的軟件包
6.查找特定文件是由什么軟件包提供的:
yum?whatprovides?filename
例子:
yum?whatprovides?httpd.conf
可用選項
–disalberepo=lib禁用某個軟件倉庫
–enalberepo=lib啟用某個軟件倉庫
-C?禁用使用本機緩存的元數(shù)據(jù)
例子:
yum?–disalberepo=livna|–enalberepo=livna?install?mplayer
yum?-C?info?httpd
目前依舊無法用yum install來安裝軟件。
總結(jié)
以上是生活随笔為你收集整理的linux解决软件依赖的命令,通过yum解决软件的依赖关系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 内核模块太大,Linux内核
- 下一篇: linux摄像头内核驱动开发,FS_S5