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