1.1)rpm強行卸載,忽視依賴關系:
[root@centos7 ~]# rpm -e rpm --nodeps
2)我們嘗試用yum安裝
[root@centos7 ~]# yum install rpm error: Unable to open /usr/lib/rpm/rpmrc for reading: No such file or directory. There was a problem importing one of the Python modules required to run yum. The error leading to this problem was: cannot import name ts Please install a package which provides this module, or verify that the module is installed correctly. It's possible that the above module doesn't match the current version of Python, which is: 2.7.5 (default, Oct 14 2020, 14:45:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] If you cannot solve this problem yourself, please go to the yum faq at: http://yum.baseurl.org/wiki/Faq
發現也失敗了,因為yum也是依賴於rpm的,yum只是借助rpm之上實現的一個軟件管理的工具。
3)那就進入救援模式:
發現光盤被掛載在了/run/install/repo上了
現在我們將rpm包重新裝上即可:
2.假設我們不小心把/usr/bin/tree給刪了
[root@centos7 ~]# rm -f /usr/bin/tree
破壞之后這個tree就用不了了
[root@centos7 ~]# tree
bash: tree: command not found...
那么該如何恢復?最簡單的方式是把這個包重裝一下:
[root@centos7 ~]# rpm -ivh /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm Preparing... ################################# [100%] package tree-1.6.0-10.el7.x86_64 is already installed
有問題阿,他說你已經裝過了,這是為什么,因為我們只是把人家其中一個文件給刪了,並沒有把這個包給完整卸載了,所以系統認為這個包還在,那現在怎么辦?我們現在還能查/usr/bin/tree來自於那個包了嗎?
[root@centos7 ~]# rpm -qf /usr/bin/tree tree-1.6.0-10.el7.x86_64
發現依舊可以查,這是為什么?我們之前說過一個數據庫/var/lib/rpm,這個數據記錄了你裝好的包的所有元數據包括裝了那些包都在這,所以它也知道實際上裝了那些包,這些包生成那些文件,它是知道的。所以查的時候是從/var/lib/rpm這個數據庫里查,而並不關心這個文件是否存在,所以只要這個庫沒有被破壞,我們就知道這個包是誰。當然現在我們知道是tree包,現在我們要把這個tree包安裝一下。
但是現在的問題就是,它認為這個tree包已經存在,難不成卸了再重新裝一遍,實際上用不上,我們可以強制重新安裝:
[root@centos7 ~]# rpm -ivh /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm --force Preparing... ################################# [100%] Updating / installing... 1:tree-1.6.0-10.el7 ################################# [100%]
--force 選項:強制重裝
我們再看看tree回來沒:
[root@centos7 ~]# tree . ├── Desktop ├── Documents ├── Downloads ├── Music ├── Pictures ├── Public ├── Templates ├── Videos └── y 8 directories, 1 file
3.我們有時候從網上找了一個包,這個包有可能並不是一個來路很明確的包,我們擔心這個包是不是非法的或者是里面帶有惡意程序,所以我們怎么樣檢查一個包是不是非法的呢?我們拿/misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm來說:
[root@centos7 ~]# cp /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm /data [root@centos7 ~]# cd /data [root@centos7 data]# rpm -K tree-1.6.0-10.el7.x86_64.rpm tree-1.6.0-10.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
-K:這個選項是檢查它的簽名是否是正常的,什么叫簽名呢?就是這個簽名,你可以理解為相當於每個軟件發布的時候,在上邊都會有這個軟件的合格章,就像我們賣商品都有一個合格證明一樣。這個簽名OK說明是合格的,但是這個實際上有個前提,就是你必須事先導入一個K才能做簽名檢查,否則是檢查不了的,這個是可以查一查的:
[root@centos7 data]# rpm -qa 'gpg-pubkey'
gpg-pubkey-f4a80eb5-53a7ff4b
當然這個K是默認沒有的,我把它卸了:
[root@centos7 data]# rpm -e gpg-pubkey-f4a80eb5-53a7ff4b
沒有K我們再去查:
[root@centos7 data]# rpm -K tree-1.6.0-10.el7.x86_64.rpm tree-1.6.0-10.el7.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#f4a80eb5)
你發現它就NOT OK了,差不了了,那就意味着你的包它認為是非法的,事實上,這個包是沒問題的,只不過我們沒有導K導致的,那K上哪去找?
這個K就在系統的/etc/pki/rpm-gpg/這個目錄下,這個目錄它默認已經在安裝centOS的時候,把centOS這個組織發布所有包的K給放到這的RPM-GPG-KEY-CentOS-7中了:
[root@centos7 rpm-gpg]# cat /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.5 (GNU/Linux) mQINBFOn/0sBEADLDyZ+DQHkcTHDQSE0a0B2iYAEXwpPvs67cJ4tmhe/iMOyVMh9 Yw/vBIF8scm6T/vPN5fopsKiW9UsAhGKg0epC6y5ed+NAUHTEa6pSOdo7CyFDwtn 4HF61Esyb4gzPT6QiSr0zvdTtgYBRZjAEPFVu3Dio0oZ5UQZ7fzdZfeixMQ8VMTQ 4y4x5vik9B+cqmGiq9AW71ixlDYVWasgR093fXiD9NLT4DTtK+KLGYNjJ8eMRqfZ Ws7g7C+9aEGHfsGZ/SxLOumx/GfiTloal0dnq8TC7XQ/JuNdB9qjoXzRF+faDUsj WuvNSQEqUXW1dzJjBvroEvgTdfCJfRpIgOrc256qvDMp1SxchMFltPlo5mbSMKu1 x1p4UkAzx543meMlRXOgx2/hnBm6H6L0FsSyDS6P224yF+30eeODD4Ju4BCyQ0jO IpUxmUnApo/m0eRelI6TRl7jK6aGqSYUNhFBuFxSPKgKYBpFhVzRM63Jsvib82rY 438q3sIOUdxZY6pvMOWRkdUVoz7WBExTdx5NtGX4kdW5QtcQHM+2kht6sBnJsvcB JYcYIwAUeA5vdRfwLKuZn6SgAUKdgeOtuf+cPR3/E68LZr784SlokiHLtQkfk98j NXm6fJjXwJvwiM2IiFyg8aUwEEDX5U+QOCA0wYrgUQ/h8iathvBJKSc9jQARAQAB tEJDZW50T1MtNyBLZXkgKENlbnRPUyA3IE9mZmljaWFsIFNpZ25pbmcgS2V5KSA8 c2VjdXJpdHlAY2VudG9zLm9yZz6JAjUEEwECAB8FAlOn/0sCGwMGCwkIBwMCBBUC CAMDFgIBAh4BAheAAAoJECTGqKf0qA61TN0P/2730Th8cM+d1pEON7n0F1YiyxqG QzwpC2Fhr2UIsXpi/lWTXIG6AlRvrajjFhw9HktYjlF4oMG032SnI0XPdmrN29lL F+ee1ANdyvtkw4mMu2yQweVxU7Ku4oATPBvWRv+6pCQPTOMe5xPG0ZPjPGNiJ0xw 4Ns+f5Q6Gqm927oHXpylUQEmuHKsCp3dK/kZaxJOXsmq6syY1gbrLj2Anq0iWWP4 Tq8WMktUrTcc+zQ2pFR7ovEihK0Rvhmk6/N4+4JwAGijfhejxwNX8T6PCuYs5Jiv hQvsI9FdIIlTP4XhFZ4N9ndnEwA4AH7tNBsmB3HEbLqUSmu2Rr8hGiT2Plc4Y9AO aliW1kOMsZFYrX39krfRk2n2NXvieQJ/lw318gSGR67uckkz2ZekbCEpj/0mnHWD 3R6V7m95R6UYqjcw++Q5CtZ2tzmxomZTf42IGIKBbSVmIS75WY+cBULUx3PcZYHD ZqAbB0Dl4MbdEH61kOI8EbN/TLl1i077r+9LXR1mOnlC3GLD03+XfY8eEBQf7137 YSMiW5r/5xwQk7xEcKlbZdmUJp3ZDTQBXT06vavvp3jlkqqH9QOE8ViZZ6aKQLqv pL+4bs52jzuGwTMT7gOR5MzD+vT0fVS7Xm8MjOxvZgbHsAgzyFGlI1ggUQmU7lu3 uPNL0eRx4S1G4Jn5 =OGYX -----END PGP PUBLIC KEY BLOCK-----
我們需要將其導入:
[root@centos7 rpm-gpg]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
現在你再去檢查一下這個K,它就能檢查到了:
[root@centos7 data]# rpm -K tree-1.6.0-10.el7.x86_64.rpm tree-1.6.0-10.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
當然這個文件如果被破壞了,我們先追加點東西:
[root@centos7 data]# echo xx >> tree-1.6.0-10.el7.x86_64.rpm
我們再檢查一下:
[root@centos7 data]# rpm -K tree-1.6.0-10.el7.x86_64.rpm tree-1.6.0-10.el7.x86_64.rpm: rsa sha1 (MD5) PGP MD5 NOT OK
你發現,它就自動發現這個包被破壞了。
4.總之,rpm:-qa :檢查所有包
--nodeps:忽略依賴關系
--force: 強制安裝
-q
-ql
-qf
-qi
-qc
-qd
-i
-e
--root=/xxxx
-K
rpm命令主要就是查詢
5.因為rpm安裝卸載存在依賴性問題,我們很少去用,所以一般我們用yum
6.rpm還有一個選項:-V
檢查這個包是否被修改過
[root@centos7 data]# rpm -V tree
[root@centos7 data]#
如果有變化他會提醒我們,沒有變化即正常。
7.yum安裝不像rpm什么都不用配就可以裝了,直接就可以用了。yum需要有環境的,這yum准確說就是依賴客戶端和服務器端的,他需要事先創建一個yum服務器,服務器和客戶端之間可以跨網絡的,所謂的服務器是什么呢?
實際上,服務器里面存了兩個內容,第一個就是你要安裝的各種rpm包,那光有rpm是不夠的;在倉庫里還有一個東西,叫源數據,這個源數據表現為一個文件夾,叫repodata,這個源數據是存了這個倉庫里到底有那些包,就相當於一個索引一樣.另外,包的什么依賴關系,比如說,我裝這個包,它缺的文件是在那個包里面,它依賴關系都有,並且還有分組,未來我們還可以把這些包做做分類。
最終實際上表現為兩個文件夾,事實上,我們這個倉庫有一個專門放rpm包的文件夾;還有一個是repodata的文件夾。只要這兩個組合起來就是一個倉庫了。實際上,我們倉庫可能有多個,比方說,centOS8上有兩個倉庫;光盤里面實際上就兩個倉庫,我們來確認一下:
[root@centos8 ~ 703]#ls /run/media/root/CentOS-8-5-2111-x86_64-dvd/ AppStream BaseOS EFI images isolinux LICENSE media.repo TRANS.TBL
倉庫有兩個對應兩個文件夾,然后我們看一下以BaseOs為例是不是還有一個Packages和repodata:
[root@centos8 ~ 706]#ls /run/media/root/CentOS-8-5-2111-x86_64-dvd/BaseOS/ Packages repodata
Package里面放的就是我們說的那些rpm包,那么還有元數據,他放在repodata里:
[root@centos8 ~ 707]#ls /run/media/root/CentOS-8-5-2111-x86_64-dvd/BaseOS/repodata 0822fd6d9953a0bdefc5e5b337865efe6a7ad2b2c90bc3005a5168ecfab57e58-comps-BaseOS.x86_64.xml.xz 265652fc0b857887c6d42b688746adc66f7344f8bd9c0aeadcba549863357ded-other.xml.gz 2ee4c293f48ab2cf5032d33a52ec6c148fd4bccf1810799e9bf60bde7397b99a-comps-BaseOS.x86_64.xml 3cf5950a671e0d31a186085c147b9314e62b23e273a4e89958c1a084b5f14acd-filelists.xml.gz 5e57d7dbbb981055ee152461ff01f79a12d3467df34b3da65fdb1cab0b3595d0-primary.sqlite.xz 8878dab4445f2b1ec80e141e7274e643f27a468b88125d72c36161e66c056e4c-primary.xml.gz 8f9b92f42d6becb12ab1c7fde8e048a3b4c6fce686904a6c5aa5115cfbd65409-filelists.sqlite.xz 9625509bbd7d17cb8943c9fba8ded1bf865370812c4e9380c2c13523725365c4-other.sqlite.xz repomd.xml TRANS.TBL
不過這個都是打包壓縮的文件,這個不用管。
8.所以作為倉庫來講,它里面至少有兩個內容:一個是包的文件夾一個是源數據,這是必須有的,缺一不可,當然BaseOS是一個倉庫,那么AppStream也是一個倉庫:
[root@centos8 ~ 708]#ls /run/media/root/CentOS-8-5-2111-x86_64-dvd/AppStream Packages repodata
9.而centOS7只有一個倉庫
10.那事實上,之前也說過還有一個倉庫也是用的非常常見叫:epel,不過這個倉庫不在光盤里,而是在互聯網里。
11.1)現在我們想在計算機上想用yum安裝,那么需要把自己的機器配置客戶端,配客戶端的話,需要有客戶端的配置文件,客戶端的配置文件實際上它有標准路徑,需要在/etc/yum.repo.d/創建一個以.repo為后綴的文件,這個文件就是yum的客戶端配置文件。
注意這個文件的要求:路徑是必須的;文件后綴是必須的;文件名無所謂。
2)那么我們把這個文件寫好以后,它的簡單作用就是告訴我們倉庫在哪,因為現在比方說,有兩個倉庫服務器:sr1,sr2,你是不是要告訴機器,在哪找這個倉庫。
所以,客戶端文件就是說倉庫在哪。
3)我們假設配完以后,這個機器上,就能利用yum安裝軟件了,大家應該之前用yum安裝過軟件,我們安裝軟件的時候,這個命令:yum install前面都是固定寫法,后面跟放軟件名就行了,比方說我們裝一個httpd:
[root@centos7 data]# yum install httpd Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.sjtu.edu.cn * extras: ftp.sjtu.edu.cn * updates: ftp.sjtu.edu.cn base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 Resolving Dependencies --> Running transaction check ---> Package httpd.x86_64 0:2.4.6-97.el7.centos.4 will be installed --> Processing Dependency: httpd-tools = 2.4.6-97.el7.centos.4 for package: httpd-2.4.6-97.el7.centos.4.x86_64 --> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-97.el7.centos.4.x86_64 --> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-97.el7.centos.4.x86_64 --> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-97.el7.centos.4.x86_64 --> Running transaction check ---> Package apr.x86_64 0:1.4.8-7.el7 will be installed ---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed ---> Package httpd-tools.x86_64 0:2.4.6-97.el7.centos.4 will be installed ---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================== Package Arch Version Repository Size ======================================================================================================== Installing: httpd x86_64 2.4.6-97.el7.centos.4 updates 2.7 M Installing for dependencies: apr x86_64 1.4.8-7.el7 base 104 k apr-util x86_64 1.5.2-6.el7 base 92 k httpd-tools x86_64 2.4.6-97.el7.centos.4 updates 94 k mailcap noarch 2.1.41-2.el7 base 31 k Transaction Summary ======================================================================================================== Install 1 Package (+4 Dependent packages) Total download size: 3.0 M Installed size: 10 M
.........
我們寫一個就夠了,別的都不用寫,當你執行這個命令的時候,httpd就是那個軟件的名稱,問題來了,你光寫個名,去哪找啊,我們剛才說了,因為你寫了一個配置文件,它就知道哪的倉庫,它就會去嘗試連接這個倉庫,如果你配置多個倉庫,它也會連其他倉庫,從這些倉庫去找,是不是有httpt這個軟件,當然它怎么找,它不會從rpm包文件夾里一個一個搜一遍,它會把源數據下載下來,下載到自己的緩沖區中,然后這個源數據的文件夾里面就記錄了當前倉庫有哪些軟件,其中一搜索一檢索,是不是就找到httpd這個軟件到底在哪個倉庫里了。假設它發現是在ser1倉庫里,這時候它還會自動的檢查說httpd這個是在這兒,並且所依賴的軟件在哪個倉庫,注意它依賴的倉庫有可能在同一倉庫里,也可能放在別的倉庫里,所以它這時候再次發起連接,把它依賴的這些倉庫文件從網上或是從某個地方把它下載下來,這時候,下載下來以后,這些rpm包可能有多個,因為有依賴關系,它都下載下來,然后,它會把這些包按步驟一個一個地裝上,裝上以后,這個rpm包裝完了一般也就刪了,不留着,但是源數據會留下,就是repodata這個文件夾會在本機緩存下來。因為下一次用的話,就不需要再跑到網上檢索了,直接地緩存就可以查到一些rpm列表。
這就是yum的工作邏輯。
12.總的來說,對yum工作邏輯了解之后,你發現用的話不是說上來就能用的,是不是還要有個服務器,還要配置客戶端,不過,幸虧我們有現成的。事實上,當我們裝好centOS以后,服務器本身就有centOS官方提供源了,不過,哪個源我們不太用,因為是國外的,所以你要自己指定一個自己就近的一個服務器倉庫,比方說國內的鏡像:騰訊等。當然你要指向的話,國內的鏡像早就在網上公開隨便用,問題是要放自己的配置文件了,現在系統的配置文件是默認帶的,不過這個文件是指向國外的源的,所以系統自帶的配置文件是不符合要求的或者說太慢了。所以一般來講不用,那我們就要自己寫一個配置文件。
13.如何寫配置文件:
事實上,它有一個/ect/yum.conf這樣的配置文件一般來講,了解一下,看看就行了。
[root@centos7 ~]# vim /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_repor t_page.php?category=yum distroverpkg=centos-release # This is the default, if you make this bigger yum won't see if the metadata # is newer on the remote and so you'll "gain" the bandwidth of not having to # download the new metadata and "pay" for it by yum not having correct # information. # It is esp. important, to have correct metadata, for distributions like # Fedora which don't keep old packages around. If you don't like this checking # interupting your command line usage, it's much better to have something # manually check the metadata once an hour (yum-updatesd will do this). # metadata_expire=90m # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d
注意最后兩行:它說請你把repo的配置要放在/etc/yum.repos.d這個目錄下,並且命名為以repo為后綴,所以我們進入到/etc/yum.repos.d/這個目錄下
[root@centos7 ~]# cd /etc/yum.repos.d/
注意:這個目錄默認如果你安裝完不動的話,它里面本身就帶了很多repo文件。剛才說了,這些repo文件都是指向國外站點的路徑,太慢。所以我們需要自己建一個。那么我們就打開一個repo來參照它的格式。
[root@centos7 bak]# cat CentOS-Base.repo # CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
14.參考上述配置文件的格式:
第一部分:[](中括號加倉庫id),如果有多個倉庫的話,每個倉庫各有各的id,也就是說這個字符串是唯一的,不能沖突。
第二部分:這部分就是它的描述,不過,發現$releaser是什么?這實際上是一個變量,不過這個變量,記住了,不是我們SHELL中的變量,這個是yum里面自身帶的變量,換句話說,這個變量不能在SHELL用,他就是yum獨有的變量。
這個變量代表着你當前操作系統的主版本號
第三部分:mirrorlist代表去哪找這個倉庫,不過這個路徑我們一般少用,一般更多用baseurl這個格式,這個格式后面可以跟上倉庫的路徑,剛才說了,這個倉庫的路徑用國內的站點,最好不要用國外的。
注意:倉庫的路徑是什么,判斷依據就一個標准,就是你看到repodata,這就是它的倉庫路徑了。
第五部分:gpgcheck表示安裝軟件之前要校驗這個包是不是合法簽名的包。0或1
第六部分:如果你要簽名,必須要導k,所以這行就要標出k的路徑。
到此,就是倉庫的基本格式。
15.這個倉庫我們可以一個倉庫建立一個獨立的repo文件里,也可以在一個repo文件里放多個倉庫。
當然,這些東西終究要依賴網絡,那么我們后續實驗會經常改網絡地址,說不定你的網絡可能就不通了,那不通,連不了互聯網裝不來軟件怎么辦,最常見的方法:
拿本地光盤:
[root@centos7 yum.repos.d]# vim base.repo [base] name=CentOS baseurl=http://192.168.93.129/centos/7/ file:///misc/cd #baseurl=https://mirrors.cloud.tencent.com/centos/8/BaseOS/x86_64/os/ gpgcheck=0 [AppStream] name=aaaaa baseurl=http://mirrors.cloud.tencent.com/centos/7/os/x86_64/ gpgcheck=0 [extras] name=extras baseurl=https://mirrors.cloud.tencent.com/centos/7/extras/x86_64/ gpgcheck=0 [epel] name=epel baseurl=https://mirrors.cloud.tencent.com/epel/7/x86_64/ gpgcheck=1 gpgkey=http://mirrors.cloud.tencent.com/epel/RPM-GPG-KEY-EPEL-7
centos8:file:///misc/cd/BaseOS 和file:///misc/cd/AppStrem
16.除了我們光盤的源要配完,還有兩個源建議配一下:epel,extras
17.1)我想看某個包有沒有:
[root@centos7 yum.repos.d]# yum list httpd Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: Installed Packages httpd.x86_64 2.4.6-97.el7.centos.4 @updates Available Packages httpd.x86_64 2.4.37-43.module_el8.5.0+1022+b541f3b1 AppStream
這樣寫是一個准確匹配。
2)如果你並不清楚這個包它的真正的完整的包名稱,可以用通配符:
[root@centos7 yum.repos.d]# yum list *httpd* Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: Installed Packages httpd.x86_64 2.4.6-97.el7.centos.4 @updates httpd-tools.x86_64 2.4.6-97.el7.centos.4 @updates Available Packages dmlite-apache-httpd.x86_64 1.15.1-11.el8 epel httpd.x86_64 2.4.37-43.module_el8.5.0+1022+b541f3b1 AppStream httpd-devel.x86_64 2.4.37-43.module_el8.5.0+1022+b541f3b1 AppStream httpd-filesystem.noarch 2.4.37-43.module_el8.5.0+1022+b541f3b1 AppStream httpd-manual.noarch 2.4.37-43.module_el8.5.0+1022+b541f3b1 AppStream httpd-tools.x86_64 2.4.37-43.module_el8.5.0+1022+b541f3b1 AppStream keycloak-httpd-client-install.noarch 1.0-2.el8 AppStream libmicrohttpd.i686 0.9.33-2.el7 base libmicrohttpd.x86_64 0.9.33-2.el7 base libmicrohttpd-devel.i686 0.9.33-2.el7 base libmicrohttpd-devel.x86_64 0.9.33-2.el7 base libmicrohttpd-doc.noarch 0.9.33-2.el7 base lighttpd.x86_64 1.4.55-3.el8 epel lighttpd-fastcgi.x86_64 1.4.55-3.el8 epel lighttpd-filesystem.noarch 1.4.55-3.el8 epel lighttpd-mod_authn_gssapi.x86_64 1.4.55-3.el8 epel lighttpd-mod_authn_mysql.x86_64 1.4.55-3.el8 epel lighttpd-mod_authn_pam.x86_64 1.4.55-3.el8 epel lighttpd-mod_mysql_vhost.x86_64 1.4.55-3.el8 epel pagure-web-apache-httpd.noarch 5.13.3-2.el8 epel perl-Test-Fake-HTTPD.noarch 0.09-1.el8 epel python2-keycloak-httpd-client-install.noarch 0.8-1.el7 base python3-keycloak-httpd-client-install.noarch 1.0-2.el8 AppStream radicale3-httpd.noarch 3.1.2-26.el8 epel sysusage-httpd.noarch 5.7-7.el8 epel thttpd.x86_64
這樣寫是包含httpd的所有包。
19.查看未安裝包的信息
[root@centos7 yum.repos.d]# yum info sl Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: Available Packages Name : sl Arch : x86_64 Version : 5.02 Release : 1.el8 Size : 16 k Repo : epel Summary : Joke command for when you type 'sl' instead of 'ls' URL : https://github.com/mtoyoda/sl License : Copyright only Description : The sl (Steam Locomotive) command is a joke which displays a train on your : terminal when you accidentally type 'sl' instead of 'ls'.