Maison  >  Article  >  php教程  >  YUM résout les dépendances d'installation du package RPM et introduit l'outil yum pour expliquer en détail la méthode de configuration de la source locale

YUM résout les dépendances d'installation du package RPM et introduit l'outil yum pour expliquer en détail la méthode de configuration de la source locale

高洛峰
高洛峰original
2017-01-07 13:53:561703parcourir

1. Aperçu du contexte

Dans les environnements de production réels, il existe deux principaux problèmes pratiques lors de l'installation des packages RPM sur les systèmes Linux

1) Processus d'installation des packages RPM, problèmes de dépendance apparaissent constamment, ce qui entraîne la nécessité d'installer manuellement plus de packages en fonction des invites ou des informations de requête

2) En raison de l'isolement des réseaux internes et externes, la source yum du réseau externe ne peut pas être connectée

Compte tenu de ce qui précède, cet article présentera en détail l'outil yum et la méthode de configuration de la source yum locale

2 Introduction à l'outil yum

<.> • L'outil yum sert de gestion logicielle pour les packages RPM. Le serveur peut effectuer des tâches de gestion quotidiennes telles que l'installation, la mise à niveau et la suppression de packages RPM, et peut analyser automatiquement les dépendances entre les packages RPM, simplifiant considérablement le coût de maintenance des packages RPM.


•La configuration de l'outil yum est principalement contrôlée par deux fichiers : /etc/yum.conf et /etc/yum.repos.d/filename.repo •À propos du /etc/yum. fichier conf : Principalement responsable de la configuration globale [main], en plus, vous pouvez également configurer le référentiel logiciel (dépôt) ici

• À propos de /etc/yum.repos.d/filename.repo : Principalement responsable de la configuration de référentiels de logiciels spécifiques (si l'entrepôt de logiciels est configuré dans yum.conf ci-dessus, vous pouvez également choisir de ne pas le configurer ici), et le nom du fichier peut être défini par vous-même.

3. Explication détaillée des principaux paramètres du fichier /etc/yum.conf


Ce fichier est principalement responsable de la configuration globale si vous ne configurez pas le référentiel dans celui-ci. fichier, généralement aucune modification n'est nécessaire


Ce qui suit est la configuration yum.conf par défaut du système yum L'explication spécifique est la suivante :

[root@sunny yum.repos.d]# cat /etc/yum.conf 
[main] --main定义全局属性,只能有一个 
cachedir=/var/cache/yum --定义yum缓存目录,用于储存下载存储的rpm包等
keepcache=0 --成功安装后,缓存数据是否保存。0:不保存,1:保存 
debuglevel=2 --调试级别(0-10),默认为2
logfile=/var/log/yum.log --定义yum日志目录
distroverpkg=redhat-release --通过指定针对系统发行版的rpm包,判断当前系统的版本。默认值为redhat-release
tolerant=1 --定义是否容忍命令行发生与软件包有关的错误。0:不容忍,1:容忍
exactarch=1 --定义当更新rpm包时,yum是否仅仅升级当前架构的包。 --当设置为1,不会发生i386包升级到i686
obsoletes=1
gpgcheck=1 --定义是否对rpm包进行GPG校验。0:不校验,1:校验
plugins=1 --定义是否使用插件。0:不允许,1:允许 
# Default.
# installonly_limit = 3
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
En plus du fichier. Paramètres ci-dessus, les principaux paramètres pouvant être utilisés sont :

exclure : Ce paramètre est principalement utilisé pour bloquer les packages RPM que vous ne souhaitez pas mettre à jour. Vous pouvez utiliser des caractères génériques et utiliser des espaces pour séparer plusieurs packages RPM.

4. Explication détaillée des principaux paramètres du fichier /etc/yum.repos.d/filename.repo


Ce fichier est principalement responsable de la configuration de l'entrepôt de logiciels spécifique. S'il se trouve dans /etc Il est configuré dans le fichier /yum.conf, vous pouvez choisir de ne pas le configurer.


Voici le fichier de configuration de l'entrepôt de logiciels par défaut du système Yum :

[root@sunny yum.repos.d]# cat rhel-debuginfo.repo 
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/$basearch/Debuginfo/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
Les paramètres sont expliqués comme suit :

[rhel-debuginfo] : utilisé Pour distinguer différents référentiels, dans un fichier filename.repo, vous pouvez définir un ou plusieurs référentiels


nom : utilisé pour décrire le référentiel


baseurl : utilisé préciser le emplacement source pour obtenir le package rpm, prenant en charge les protocoles http://, ftp:// et file://.


activé : Utilisé pour définir si ce référentiel logiciel est disponible. 0 : Non disponible, 1 : Disponible


gpgcheck : Définissez s'il faut effectuer une vérification GPG sur les packages RPM.


gpgkey : L'emplacement du fichier de clé gpg utilisé pour définir la vérification.


5. Introduction aux commandes courantes


Les commandes suivantes sont courantes pour la gestion de yum


yum repolist : afficher les informations du référentiel de logiciels disponibles


Package RPM yum list : affichez l'état d'installation du package RPM, prend en charge les caractères génériques *, s'il est installé, les référentiels de logiciels disponibles sont affichés


liste yum installée | grep rpm package : Vérifiez si le package rpm est installé


yum info package rpm : vérifiez les détails du package rpm


yum check-update : vérifiez les mises à jour disponibles du package rpm


yum install rpm package : Installer le package rpm, prend en charge les caractères génériques *


yum supprimer le package rpm : Supprimer le package rpm


yum clean packages : Effacer le cache du paquet RPM


yum nettoyer les en-têtes : effacer le cache du fichier d'en-tête RPM


yum nettoyer tout : effacer le fichier d'en-tête RPM et le cache du paquet


6. Exemple spécifique de configuration de la source yum locale


Le système utilisé dans cet exemple est Redhat 5.8 64 bits. Le processus et les instructions spécifiques sont les suivants :

--安装gcc-c++包,提示因为依赖关系缺少包而无法安装--若采用手工安装,在安装提示的rpm包过程中,可能还存在其他需要的依赖关系包[root@sunny Desktop]# rpm -ivh gcc-c++-4.1.2-52.el5.x86_64.rpm 
warning: gcc-c++-4.1.2-52.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
gcc = 4.1.2-52.el5 is needed by gcc-c++-4.1.2-52.el5.x86_64
libstdc++-devel = 4.1.2-52.el5 is needed by gcc-c++-4.1.2-52.el5.x86_64
--下面开始通过配置本地源yum的方法从镜像光盘安装--查看文件系统,此时未挂载cdrom
[root@sunny ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
16G 6.1G 8.7G 42% /
/dev/sda1 99M 13M 81M 14% /boot
tmpfs 1004M 0 1004M 0% /dev/shm
--创建cdrom的挂载点目录--挂载点目录名随意,此处作者创建目录名为cdrom的目录作为挂载点
[root@sunny ~]# mkdir /cdrom
--挂载cdrom,并查看挂载情况
[root@sunny ~]# mount /dev/cdrom /cdrom
[root@sunny ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
16G 6.1G 8.7G 42% /
/dev/sda1 99M 13M 81M 14% /boot
tmpfs 1004M 0 1004M 0% /dev/shm
/dev/sr0 3.9G 3.9G 0 100% /cdrom
--进入cdrom目录,确定rpm包的位置--需要注意,rpm包所在的目录绝对路径将作为后面yum的url源路径
[root@sunny Server]# pwd
/cdrom/Server
--创建filename.repo文件,此处作者定义filename.repo名为newyum.repo--需要注意,由于是baseurl以及gpgkey均是本地位置,因此采用file://协议--需要注意,file://后面是文件所在的绝对路径,因此file://后面会以/开头,因此是file:///(三个/)
[root@sunny yum.repos.d]# vi /etc/yum.repos.d/newyum.repo 
[redhatcdrom]
name=local resource 
baseurl=fill:///cdrom/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
--查询此时可用的软件仓库,显示刚刚配置的库可用
[root@sunny yum.repos.d]# yum repolist
Loaded plugins: katello, product-id, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
redhatcdrom | 1.5 kB 00:00 
redhatcdrom/primary | 920 kB 00:00 
redhatcdrom 3285/3285
repo id repo name status
redhatcdrom local resource 3,285
repolist: 3,285
--利用yum安装刚才的gcc-c++包--可以看到,安装过程中,yum处理了依赖关系,并将相应的包进行了安装
[root@sunny yum.repos.d]# yum install gcc-c++ -y
Loaded plugins: katello, product-id, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
redhatcdrom | 1.5 kB 00:00 
redhatcdrom/primary | 920 kB 00:00 
redhatcdrom 3285/3285
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gcc-c++.x86_64 0:4.1.2-52.el5 set to be updated
--> Processing Dependency: libstdc++-devel = 4.1.2-52.el5 for package: gcc-c++
--> Processing Dependency: gcc = 4.1.2-52.el5 for package: gcc-c++
--> Running transaction check
---> Package gcc.x86_64 0:4.1.2-52.el5 set to be updated
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc
---> Package libstdc++-devel.x86_64 0:4.1.2-52.el5 set to be updated
redhatcdrom/filelists | 2.8 MB 00:00 
--> Running transaction check
---> Package glibc-devel.x86_64 0:2.5-81 set to be updated
--> Processing Dependency: glibc-headers = 2.5-81 for package: glibc-devel
--> Processing Dependency: glibc-headers for package: glibc-devel
--> Running transaction check
---> Package glibc-headers.x86_64 0:2.5-81 set to be updated
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers
--> Processing Dependency: kernel-headers for package: glibc-headers
--> Running transaction check
---> Package kernel-headers.x86_64 0:2.6.18-308.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================
Package Arch Version Repository Size
======================================================================================
Installing:
gcc-c++ x86_64 4.1.2-52.el5 redhatcdrom 3.8 M
Installing for dependencies:
gcc x86_64 4.1.2-52.el5 redhatcdrom 5.3 M
glibc-devel x86_64 2.5-81 redhatcdrom 2.4 M
glibc-headers x86_64 2.5-81 redhatcdrom 596 k
kernel-headers x86_64 2.6.18-308.el5 redhatcdrom 1.4 M
libstdc++-devel x86_64 4.1.2-52.el5 redhatcdrom 2.8 M
Transaction Summary
======================================================================================
Install 6 Package(s)
Upgrade 0 Package(s)
Total download size: 16 M
Is this ok [y/N]: 
Exiting on user Command
Complete!
--查询安装结果,确定安装完成。
[root@sunny yum.repos.d]# yum list gcc-c*
Loaded plugins: katello, product-id, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
Installed Packages
gcc-c++.x86_64 4.1.2-52.el5 installed
. Ce qui précède est donné par l'éditeur. Vous avez présenté YUM pour résoudre les dépendances d'installation du package RPM et l'outil yum a présenté en détail la méthode de configuration de la source locale. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message. et l'éditeur vous répondra à temps. Je voudrais également vous remercier tous pour votre soutien au site Web PHP chinois !

Pour plus de solutions YUM aux dépendances d'installation des packages RPM et une introduction à l'outil yum aux méthodes de configuration des sources locales, veuillez prêter attention au site Web PHP chinois pour les articles connexes !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn