web-dev-qa-db-fra.com

Pas de Ruby-devel dans RHEL7?

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?

17
user3852791

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

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

  2. Activer le référentiel optionnel:

    yum-config-manager --enable <repo-id>
    
  3. Actualisez le cache yum (ne savez pas si cela est nécessaire mais cela ne fait pas mal):

    Sudo yum makecache
    
  4. Enfin, vous pouvez installer Ruby-devel:

    yum install Ruby-devel
    

Selon les autorisations de votre utilisateur, vous devrez peut-être utiliser Sudo.

30
juice

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
5
slk

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.

2
far4d

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

1
BOH

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
0
Neil Millard

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"
0
0xack13