configure: error: Por favor, instale o libyaml

0

Estou seguindo a instalação de Noções básicas da análise YAML em PHP para instalar o YAML para PHP no Fedora 20.

Eu passei por todas estas etapas:

wget http://pecl.php.net/get/yaml-1.1.0.tgz
tar -xvzf yaml-1.1.0.tgz
cd yaml-1.1.0
phpize
./configure && make && make install

Mas o último não funciona:

# ./configure && make && make install
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
.../...
checking for re2c... no
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
checking for gawk... gawk
checking whether to enable LibYAML suppot... yes, shared
checking for yaml headers... not found
configure: error: Please install libyaml

Quando eu obtenho o "Please install libyaml", eu verifiquei se ele está instalado ... e é!

# yum list installed | grep yaml
libyaml.x86_64                         0.1.6-1.fc20                    @updates 
yaml-cpp03.x86_64                      0.3.0-4.fc20                    @anaconda

E, claro, se eu criar um arquivo php com uma chamada para yaml_parse_file() , recebo o erro:

Fatal error: Call to undefined function yaml_parse_file() in XXXfile on line YYY

O que pode estar faltando?

    
por fedorqui 04.09.2014 / 15:48

2 respostas

0

Ah, isso não foi planejado para terminar assim, mas encontrei uma solução por meio de Como instalar com Pecl documentação no Code Google:

  • Instale o LibYAML usando seu método favorito. Por exemplo, em uma máquina Ubuntu sudo apt-get install libyaml-dev irá obter o que você precisa.
  • sudo pecl install yaml-beta
  • Edite suas configurações do php.ini e adicione extension=yaml.so
  • Veja se funcionou com php --re yaml

Como estou no Fedora, tive que usar uma abordagem um pouco diferente:

# yum search yaml | grep -i php
php-symfony-YAML.noarch : The Symfony YAML Component
php-pecl-yaml.x86_64 : PHP Bindings for yaml
php-symfony-yaml.noarch : Symfony Yaml Component
php-symfony2-Yaml.noarch : Symfony2 Yaml Component
php54-php-pecl-yaml.x86_64 : PHP Bindings for yaml
php56-php-pecl-yaml.x86_64 : PHP Bindings for yaml
syck.i686 : YAML for C, Python, and PHP
syck.x86_64 : YAML for C, Python, and PHP
syck-php.x86_64 : YAML module for php

Então eu instalei php-pecl-yaml.x86_64 :

# yum install php-pecl-yaml.x86_64

Eu adicionei a linha no meu arquivo php.ini , reiniciei o apache por via das dúvidas e agora obtive uma boa saída de:

# php --re yaml
Extension [ <persistent> extension #16 yaml version 1.1.1 ] {

  - Dependencies {
    Dependency [ date (Optional) ]
  }

  - INI {
    Entry [ yaml.decode_binary <ALL> ]
      Current = '0'
    }
    Entry [ yaml.decode_timestamp <ALL> ]
      Current = '0'
    }
    Entry [ yaml.output_canonical <ALL> ]
      Current = '0'

    .../...

    Function [ <internal:yaml> function yaml_emit_file ] {

      - Parameters [5] {
        Parameter #0 [ <required> $filename ]
        Parameter #1 [ <required> $data ]
        Parameter #2 [ <optional> $encoding ]
        Parameter #3 [ <optional> $linebreak ]
        Parameter #4 [ <optional> array $callbacks ]
      }
    }
  }
}
    
por 04.09.2014 / 15:56
1

você deve instalar o libyaml-dev não libyaml. Eu instalo no centos:

[vagrant@localhost yaml-1.2.0]$ sudo yum search libyaml
============================================ N/S Matched: libyaml          ============================================
libyaml-devel.i686 : Development files for LibYAML applications
libyaml-devel.x86_64 : Development files for LibYAML applications
libyaml.i686 : YAML 1.1 parser and emitter written in C
libyaml.x86_64 : YAML 1.1 parser and emitter written in C
[vagrant@localhost yaml-1.2.0]$ sudo yum install -y libyaml-devel.x86_64

do que eu faço com sucesso。

    
por 02.10.2015 / 09:42