魏蓝

以梦为马

导航

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

 

posted on 2022-02-07 23:59  魏蓝  阅读(954)  评论(0编辑  收藏  举报