J'ai un système RHEL7 récemment installé et je dois installer gem jekyll, mais cela échoue car:
Fetching: yajl-Ruby-1.2.1.gem (100%)
Building native extensions. This could take a while...
ERROR: Error installing jekyll:
ERROR: Failed to build gem native extension.
/usr/bin/Ruby extconf.rb
mkmf.rb can't find header files for Ruby at /usr/share/include/Ruby.h
Google suggère que cela est dû à l'absence de package Ruby-devel en cours d'installation. Cependant, il semble que ne soit pas un tel paquet dans RHEL7. Dois-je passer à une collection de logiciels (je ne veux pas vraiment le faire, ce sera pour une machine de production et non pour le développement) ou puis-je l'obtenir autrement?
Cette réponse consiste à reconstituer des éléments d’autres réponses - ainsi aux contributeurs précédents ... merci car je n’aurais pas compris cela.
Cet exemple est basé sur l'AMI RHEL 7 (Amazon Managed Image) 3.10.0-229.el7.x86_64.
Donc, par défaut, comme mentionné ci-dessus, le référentiel optional
n'est pas activé. N'ajoutez pas un autre fichier repo.d car il existe déjà, il est juste désactivé.
Pour activer d'abord, vous avez besoin du nom. J'ai utilisé grep pour faire ceci:
grep -B1 -i optional /etc/yum.repos.d/*
au-dessus de chaque nom se trouvera l'identifiant du référentiel inclus dans [ ]
recherchez l'option not optional-source
facultative
Activer le référentiel optionnel:
yum-config-manager --enable <repo-id>
Actualisez le cache yum (ne savez pas si cela est nécessaire mais cela ne fait pas mal):
Sudo yum makecache
Enfin, vous pouvez installer Ruby-devel
:
yum install Ruby-devel
Selon les autorisations de votre utilisateur, vous devrez peut-être utiliser Sudo
.
Vous devez vous abonner au dépôt "optionnel" pour obtenir tous les packages de développement.
subscription-manager repos --enable rhel-7-server-optional-rpms
Au moins sur Oracle Linux 7, vous devez activer un référentiel supplémentaire.
[root@foo ~]# yum repolist
repo id repo name
[...]
ol7_optional_latest/x86_64 Oracle Linux 7Server Optional Latest (x86_64)
Après avoir activé le repo, Ruby-devel
attend votre installation.
[root@foo ~]# yum info Ruby-devel | egrep 'Name|Version|From'
Name : Ruby-devel
Version : 2.0.0.598
From repo : ol7_optional_latest
C'est tout.
Ruby-devel RPM est disponible dans le référentiel suivant sur RHEL 7
rhel-7-server-optional-beta-rpms
Définissez "enabled = 1" pour ce référentiel dans votre fichier .repo, puis exécutez
yum install Ruby-devel
des pensions supplémentaires sont disponibles pour votre RHEL 7
# yum -y install yum-utils
# yum repolist all
Ceci listera tous les repos disponibles. Activez le repo dont vous avez besoin. Les packages de développement sont dans les extras par exemple:
# yum-config-manager --enable rhui-REGION-rhel-server-extras
Après avoir effectué ces étapes, je pourrais ensuite installer Ruby-devel, augeas-devel et installer/compiler
# gem install Ruby-augeas
J'ai eu le même problème et j'ai fini par télécharger le package à partir de:
https://www.rpmfind.net/linux/rpm2html/search.php?query=Ruby-devel
Dans RHEL7.5, ce package peut être installé avec:
rpm -ivh Ruby-devel-2.0.0.648-33.el7_4.x86_64.rpm
De plus, les outils de développement peuvent être installés avant cela en utilisant:
yum groupinstall "Development Tools"