yum實現和配置文件


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'.

 


免責聲明!

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



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