Instalação do nó: nenhum módulo chamado gyp.common

3

Eu estava tentando instalar o node.js no convidado do VirtualBox do CentOS 6.4 em um host do Windows XP com os seguintes comandos:

cd /usr/local/src/
git clone git://github.com/joyent/node.git
cd node
./configure
make
make install

Eu só cheguei até ./configure . Quando eu executei ./configure , recebi os seguintes erros:

Traceback (most recent call last):
File "./configure", line 14, in
<module> from gyp.common import GetFlavor
ImportError: No module named gyp.common
    
por Anthony 24.06.2013 / 00:19

3 respostas

3

qual versão do python você tem instalado? verifique python -V

antes de executar ./configure , verifique se os seguintes pré-requisitos foram concluídos.

* GCC 4.2 or newer
* Python 2.6 or 2.7
* GNU Make 3.81 or newer
* libexecinfo (FreeBSD and OpenBSD only)
    
por 24.06.2013 / 00:51
1

O ./configure chama o Python, que você já instalou (a mensagem do Traceback é de um Python em funcionamento).

Eu acabei de fazer um checkout e ele configura com o python 2.6 e 2.7.

O que o ./configure não consegue encontrar é Gerar o seu projeto , que deve ser incluído nas ferramentas / gyp diretório. Se esses arquivos não estiverem lá, o git pode ter perdido uma batida.

Isso também pode ser causado por um módulo gyp diferente do que o fornecido em node.js, sendo encontrado pelo python. Para verificar se você consegue fazer

$ python
>>> import gyp
>>> print gyp.__file__

se você não obtiver um 'ImportError', isso mostra qual arquivo o Python realmente importa.

    
por 24.06.2013 / 18:02
0

Eu acho que algo está errado com a sua cópia clone do node.js ou algo está acontecendo com a mistura de pacotes que você instalou na sua caixa do CentOS 6.4. Eu tenho a mesma distro aqui e eu fiz os mesmos passos que você fez e funcionou.

$ ./configure
{ 'target_defaults': { 'cflags': [],
                       'default_configuration': 'Release',
                       'defines': [],
                       'include_dirs': [],
                       'libraries': []},
  'variables': { 'clang': 0,
                 'gcc_version': 44,
                 'host_arch': 'x64',
                 'node_install_npm': 'true',
                 'node_prefix': '',
                 'node_shared_cares': 'false',
                 'node_shared_http_parser': 'false',
                 'node_shared_libuv': 'false',
                 'node_shared_openssl': 'false',
                 'node_shared_v8': 'false',
                 'node_shared_zlib': 'false',
                 'node_tag': '',
                 'node_unsafe_optimizations': 0,
                 'node_use_dtrace': 'false',
                 'node_use_etw': 'false',
                 'node_use_openssl': 'true',
                 'node_use_perfctr': 'false',
                 'node_use_systemtap': 'false',
                 'python': '/usr/bin/python',
                 'target_arch': 'x64',
                 'v8_enable_gdbjit': 0,
                 'v8_no_strict_aliasing': 1,
                 'v8_use_snapshot': 'true'}}
creating  ./config.gypi
creating  ./config.mk

Como o @Anthon sugeriu, eu executei os seguintes comandos e nem sequer tenho o pacote gyp.common do Python instalado quando executei o comando ./configure acima, e ainda assim funcionou bem.

$ python
Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gyp
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named gyp

Então, não tenho certeza do que está acontecendo com o seu ambiente. Eu iria depurar um pouco mais e dar uma olhada nas variáveis de ambiente $PATH e $LD_LIBRARY_PATH para determinar se você está obtendo a versão do Python que você pensa que é.

solução alternativa

Se você não precisar do último node.js , basta instalá-lo nos repositórios do yum para o CentOS 6.4. A maior parte do conjunto de ferramentas Node.js já foi pré-construída para você no repositório EPEL, que você deve ter por padrão. Então, basta executar este comando para instalá-lo:

$ sudo yum install nodejs

Todos os outros pacotes estão disponíveis se você pesquisar por nodejs .

$ yum search nodejs
Loaded plugins: fastestmirror, priorities, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: mirrors.liquidweb.com
 * epel: mirror.steadfast.net
 * extras: mirror.thelinuxfix.com
 * updates: centos.mbni.med.umich.edu
73 packages excluded due to repository priority protections
======================================================= N/S Matched: nodejs ========================================================
nodejs-burrito.noarch : Wrap up expressions with a trace function while walking the AST
nodejs-delayed-stream.noarch : Buffers events from a stream until you are ready to handle them
nodejs-npm-registry-client.noarch : Client for the npm registry
nodejs-options.noarch : Light-weight in-code option parser for nodejs
nodejs-osenv.noarch : Look up environment settings specific to different operating systems
...
...
    
por 25.06.2013 / 11:24