Bluecloth v2.0.10 с windows 7 не работает - PullRequest
7 голосов
/ 08 февраля 2011

С Ruby 187, я скачал devkit с http://rubyinstaller.org/downloads и следовал инструкции согласно https://github.com/oneclick/rubyinstaller/wiki/Development-Kit. Я также убедился, что devkit установлен правильно, следуя тесту на дым.Затем попытался установить Bluecloth (v2.0.10).Сбой из-за следующей ошибки:

C:\test\typo>gem install bluecloth --platform=ruby

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing bluecloth:
       ERROR: Failed to build gem native extension.

c:/Ruby187/bin/ruby.exe extconf.rb
checking for srand()... yes
checking for random()... no
checking for rand()... yes
checking for bzero() in string.h,strings.h... no
checking for strcasecmp()... yes
checking for strncasecmp()... yes
checking for mkdio.h... yes
checking for ruby/encoding.h... no
creating extconf.h
creating Makefile

make
gcc -I. -I. -Ic:/Ruby187/lib/ruby/1.8/i386-mingw32 -I. -
DRUBY_EXTCONF_H=\"extcon
f.h\"    -DVERSION=\"2.0.4\" -g -O2 -DFD_SETSIZE=256   -I. -Wall  -c
bluecloth.c

In file included from c:\rubydevkit\mingw\bin\../lib/gcc/
mingw32/4.5.1/../../../../include/windows.h:48:0,
                from c:\rubydevkit\mingw\bin\../lib/gcc/
mingw32/4.5.1/../../../../include/winsock2.h:22,
                from c:/Ruby187/lib/ruby/1.8/i386-mingw32/win32/
win32.h:27,
                from c:/Ruby187/lib/ruby/1.8/i386-mingw32/defines.h:
186,
                from c:/Ruby187/lib/ruby/1.8/i386-mingw32/ruby.h:37,
                from bluecloth.h:14,
                from bluecloth.c:25:
c:\rubydevkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/
windef.h:229:23: error: duplicate 'unsigned'
c:\rubydevkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/
windef.h:238:23: error: duplicate 'unsigned'
c:\rubydevkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/
windef.h:238:23: error: two or more data types in declaration
specifiers
c:\rubydevkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/
windef.h:241:24: error: duplicate 'unsigned'
bluecloth.c: In function 'bluecloth_initialize':
bluecloth.c:190:9: warning: unused variable 'utf8text'
make: *** [bluecloth.o] Error 1

Gem files will remain installed in c:/Ruby187/lib/ruby/gems/1.8/gems/
bluecloth-2.0.10 for inspection.
Results logged to c:/Ruby187/lib/ruby/gems/1.8/gems/bluecloth-2.0.10/
ext/gem_make.out

C:\test\typo>

Ответы [ 4 ]

13 голосов
/ 14 июня 2012

Если вам нужна версия 2.2.0 (последняя версия), вот как я ее получил:

  1. Установка DevKit

  2. Запустите приведенную ниже команду для установки bluecloth:

    gem install bluecloth

    это с треском провалится при сборке "собственных расширений", но успешно установит исходный код гема.*

  3. Патч bluecloth.h файл (для меня это находится в: D: \ ruby ​​\ Ruby-1.9.3-p125 \ lib \ ruby ​​\ gems \ 1.9.1 \ gems \ bluecloth-2.2.0 \ ext), с патчем отсюда: https://gist.github.com/1539611

  4. Перейдите в папку установки драгоценного камня bluecloth.Для меня это выглядит так:

    D:\ruby\Ruby-1.9.3-p125\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0

  5. Запустите следующую команду:

    rake gem

    Itможет предложить вам установить некоторые другие драгоценные камни, следуйте соответствующим образом.Когда это будет сделано, вы должны увидеть созданный bluecloth-2.2.0.gem.Для меня он найден здесь:

    D:\ruby\Ruby-1.9.3-p125\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0\pkg\bluecloth-2.2.0.gem

  6. Перейдите в папку bluecloth-2.2.0.gem и выполните следующую команду:

    gem install bluecloth-2.2.0.gem --platform=ruby

6 голосов
/ 01 марта 2012

Кажется, есть ошибка / проблема с версией 2.0.10 BlueCloth. Вы можете попробовать использовать более старую версию, такую ​​как 2.0.7:

gem install bluecloth -v 2.0.7

Что, кажется, работает.

Также, возможно, стоит проверить последнюю версию (2.2.0?) И, если она не работает, сообщить об этом автору гема:

http://deveiate.org/projects/BlueCloth/query

0 голосов
/ 16 октября 2015

На github есть ветвь, которая уже включает патч:

https://github.com/drakontia/bluecloth

0 голосов
/ 20 января 2015

Это исправленный код bluecloth.h, для людей, которые спешат ...

#ifndef BLUECLOTH_H
#define BLUECLOTH_H
 
#include "ruby.h"

#if defined(HAVE_RUBY_ENCODING_H) && HAVE_RUBY_ENCODING_H
#	define M17N_SUPPORTED
#	include "ruby/encoding.h"
#endif

#include "config.h"
#include "assert.h"
 
#include "mkdio.h"
 
void mkd_initialize  		_(( void ));
void mkd_with_html5_tags	_(( void ));
 
/* Replace the macro from encoding.h that refers to static 'rb_encoding_list' */
#ifdef ENC_FROM_ENCINDEX
#undef ENC_FROM_ENCINDEX
#define ENC_FROM_ENCINDEX(idx) (rb_enc_from_index(idx))
#endif

#endif
...