2012-03-04 33 views
21

Kết quả cuối cùng là tôi đang cố gắng cài đặt Ruby on Rails trên hệ điều hành 10.7.3, nhưng có nhiều vấn đề khác nhau.Không thể xây dựng phần mở rộng gốc đá quý

Ngoài ra, tôi có một XCode 4.3 mới được cài đặt từ App Store.

Khi tôi cháy lên các thiết bị đầu cuối, và nhập:

sudo gem install rails 

và nó viết ra:

Building native extensions. This could take a while... 
ERROR: Error installing rails: 
    ERROR: Failed to build gem native extension. 

     /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h 


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/json-1.6.5 for inspection. 
Results logged to /Library/Ruby/Gems/1.8/gems/json-1.6.5/ext/json/ext/parser/gem_make.out 

Trong tất cả các bản sửa lỗi Tôi đang tìm kiếm cho biết để cài đặt XCode, mà tôi có và chạy tốt. Tuy nhiên, tôi đã gỡ cài đặt phiên bản XCode trước đó để cài đặt phiên bản mới nhất, vì vậy tôi tự hỏi liệu có bất kỳ mối quan hệ nào ở đó không.

CHỈNH SỬA 1: Tôi đã làm theo đề xuất của Jasdeep và đã cài đặt RVM. Nhưng một khi tôi chạy:

sudo rvm install 1.9.3 

tôi nhận được như sau:

Fetching yaml-0.1.4.tar.gz to /Users/xxx/.rvm/archives 
Extracting yaml-0.1.4.tar.gz to /Users/xxx/.rvm/src 
Configuring yaml in /Users/xxx/.rvm/src/yaml-0.1.4. 
Error running ' ./configure --prefix="/Users/xxx/.rvm/usr" ', please read /Users/xxx/.rvm/log/ruby-1.9.3-p0/yaml/configure.log 
Compiling yaml in /Users/xxx/.rvm/src/yaml-0.1.4. 
Error running 'make ', please read /Users/xxx/.rvm/log/ruby-1.9.3-p0/yaml/make.log 


Database file /Users/xxx/.rvm/config/packages does not exist. 

gcc-4.2: error trying to exec '/usr/bin/i686-apple-darwin11-gcc-4.2.1': execvp: No such file or directory 
Installing Ruby from source to: /Users/xxx/.rvm/rubies/ruby-1.9.3-p0, this may take a while depending on your cpu(s)... 

ruby-1.9.3-p0 - #fetching 
ruby-1.9.3-p0 - #downloading ruby-1.9.3-p0, this may take a while depending on your connection... 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 9330k 100 9330k 0  0 645k  0 0:00:14 0:00:14 --:--:-- 1260k 
ruby-1.9.3-p0 - #extracting ruby-1.9.3-p0 to /Users/xxx/.rvm/src/ruby-1.9.3-p0 
ruby-1.9.3-p0 - #extracted to /Users/xxx/.rvm/src/ruby-1.9.3-p0 
ruby-1.9.3-p0 - #configuring 
Error running ' ./configure --prefix=/Users/xxx/.rvm/rubies/ruby-1.9.3-p0 --enable-shared --disable-install-doc --with-libyaml --with-opt-dir=/Users/xxx/.rvm/usr ', please read /Users/xxx/.rvm/log/ruby-1.9.3-p0/configure.log 
There has been an error while running configure. Halting the installation. 

Vì vậy, sau đó tôi nhìn lên những gì là trong file log, ..ruby-1.9.3-p0/yaml/configure. đăng nhập:

[2012-03-03 22:49:50] ./configure --prefix="/Users/xxx/.rvm/usr" 
checking for a BSD-compatible install... /usr/bin/install -c 
checking whether build environment is sane... yes 
checking for a thread-safe mkdir -p... config/install-sh -c -d 
checking for gawk... no 
checking for mawk... no 
checking for nawk... no 
checking for awk... awk 
checking whether make sets $(MAKE)... no 
checking for gcc... no 
checking for cc... no 
checking for cl.exe... no 
configure: error: in `/Users/xxx/.rvm/src/yaml-0.1.4': 
configure: error: no acceptable C compiler found in $PATH 
See `config.log' for more details 

Vì vậy, bây giờ nó xuất hiện lỗi này là:

no acceptable C compiler found in $PATH 

Chỉnh sửa 2:

Tôi đã làm theo hướng dẫn của Matt và có thể tiếp tục khi tôi cài đặt các công cụ dòng lệnh (kể từ bây giờ tôi đã có Xcode 4.3). Tuy nhiên, tôi vẫn nhận được một lỗi:

Fetching yaml-0.1.4.tar.gz to /Users/xxx/.rvm/archives 
Extracting yaml-0.1.4.tar.gz to /Users/xxx/.rvm/src 
Configuring yaml in /Users/xxx/.rvm/src/yaml-0.1.4. 
Compiling yaml in /Users/xxx/.rvm/src/yaml-0.1.4. 
Installing yaml to /Users/xxx/.rvm/usr 
gcc-4.2: error trying to exec '/usr/bin/i686-apple-darwin11-gcc-4.2.1': execvp: No such file or directory 
Installing Ruby from source to: /Users/xxx/.rvm/rubies/ruby-1.9.3-p0, this may take a while depending on your cpu(s)... 

ruby-1.9.3-p0 - #fetching 
ruby-1.9.3-p0 - #extracted to /Users/xxx/.rvm/src/ruby-1.9.3-p0 (already extracted) 
ruby-1.9.3-p0 - #configuring 
Error running ' ./configure --prefix=/Users/xxx/.rvm/rubies/ruby-1.9.3-p0 --enable-shared --disable-install-doc --with-libyaml --with-opt-dir=/Users/xxx/.rvm/usr ', please read /Users/xxx/.rvm/log/ruby-1.9.3-p0/configure.log 
There has been an error while running configure. Halting the installation. 

Dưới đây là configure.log (xin lỗi bài này là nhận được rất lâu, nhưng hy vọng nó có thể giúp đỡ người khác quá):

[2012-03-04 09:29:35] ./configure --prefix="/Users/xxx/.rvm/usr" 
checking for a BSD-compatible install... /usr/bin/install -c 
checking whether build environment is sane... yes 
checking for a thread-safe mkdir -p... config/install-sh -c -d 
checking for gawk... no 
checking for mawk... no 
checking for nawk... no 
checking for awk... awk 
checking whether make sets $(MAKE)... yes 
checking for gcc... gcc 
checking whether the C compiler works... yes 
checking for C compiler default output file name... a.out 
checking for suffix of executables... 
checking whether we are cross compiling... no 
checking for suffix of object files... o 
checking whether we are using the GNU C compiler... yes 
checking whether gcc accepts -g... yes 
checking for gcc option to accept ISO C89... none needed 
checking for style of include used by make... GNU 
checking dependency style of gcc... gcc3 
checking how to run the C preprocessor... gcc -E 
checking whether ln -s works... yes 
checking whether make sets $(MAKE)... (cached) yes 
checking build system type... x86_64-apple-darwin11.3.0 
checking host system type... x86_64-apple-darwin11.3.0 
checking for a sed that does not truncate output... /usr/bin/sed 
checking for grep that handles long lines and -e... /usr/bin/grep 
checking for egrep... /usr/bin/grep -E 
checking for fgrep... /usr/bin/grep -F 
checking for ld used by gcc... /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld 
checking if the linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) is GNU ld... no 
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm 
checking the name lister (/usr/bin/nm) interface... BSD nm 
checking the maximum length of command line arguments... 196608 
checking whether the shell understands some XSI constructs... yes 
checking whether the shell understands "+="... yes 
checking for /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld option to reload object files... -r 
checking for objdump... no 
checking how to recognize dependent libraries... pass_all 
checking for ar... ar 
checking for strip... strip 
checking for ranlib... ranlib 
checking command to parse /usr/bin/nm output from gcc object... ok 
checking for dsymutil... dsymutil 
checking for nmedit... nmedit 
checking for lipo... lipo 
checking for otool... otool 
checking for otool64... no 
checking for -single_module linker flag... yes 
checking for -exported_symbols_list linker flag... yes 
checking for ANSI C header files... yes 
checking for sys/types.h... yes 
checking for sys/stat.h... yes 
checking for stdlib.h... yes 
checking for string.h... yes 
checking for memory.h... yes 
checking for strings.h... yes 
checking for inttypes.h... yes 
checking for stdint.h... yes 
checking for unistd.h... yes 
checking for dlfcn.h... yes 
checking for objdir... .libs 
checking if gcc supports -fno-rtti -fno-exceptions... no 
checking for gcc option to produce PIC... -fno-common -DPIC 
checking if gcc PIC flag -fno-common -DPIC works... yes 
checking if gcc static flag -static works... no 
checking if gcc supports -c -o file.o... yes 
checking if gcc supports -c -o file.o... (cached) yes 
checking whether the gcc linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) supports shared libraries... yes 
checking dynamic linker characteristics... darwin11.3.0 dyld 
checking how to hardcode library paths into programs... immediate 
checking whether stripping libraries is possible... yes 
checking if libtool supports shared libraries... yes 
checking whether to build shared libraries... yes 
checking whether to build static libraries... yes 
checking for doxygen... false 
checking for ANSI C header files... (cached) yes 
checking for stdlib.h... (cached) yes 
checking for an ANSI C-conforming const... yes 
checking for size_t... yes 
configure: creating ./config.status 
config.status: creating yaml-0.1.pc 
config.status: creating include/Makefile 
config.status: creating src/Makefile 
config.status: creating Makefile 
config.status: creating tests/Makefile 
config.status: creating win32/Makefile 
config.status: creating config.h 
config.status: config.h is unchanged 
config.status: executing depfiles commands 
config.status: executing libtool commands 
+0

Bạn nên cài đặt RVM để làm cho cuộc sống dễ dàng hơn và điều này cũng mang đến cho bạn một cơ hội để duy trì khác nhau Các phiên bản Ruby để phát triển. Cài đặt đơn giản như http://beginrescueend.com/rvm/install/ –

+0

Hãy thử cài đặt ruby ​​1.9.2 sau khi cài đặt RVM và bạn sẽ có thể cài đặt Rails tốt .. –

+0

khi tôi có thông báo lỗi này trong khi cài đặt đường ray , vấn đề là 'danh sách rvm' trống. Tôi đã cố gắng để cài đặt đường ray trước khi ruby. Vì vậy, hãy chắc chắn rằng bạn không có vấn đề như vậy. – FedericoCapaldo

Trả lời

45

Vấn đề là trong Lion Xcode 4.3 không theo mặc định cài đặt (hoặc thậm chí bao gồm) các công cụ dòng lệnh như gcc - và đó là những gì cần thiết ở đây. Trong ngăn Tải xuống các phần mở rộng của Xcode, trong phần Thành phần, hãy yêu cầu các công cụ dòng lệnh. (Xem readme: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/WhatsNewXcode/Chapters/xcode_4_0.html#//apple_ref/doc/uid/TP40016147-SW35)

Thực ra tôi tin rằng bạn không cần phải cài đặt Xcode chút nào, vì trên thực tế, công cụ dòng lệnh giờ đây có thể được tải xuống và cài đặt riêng.

+0

Thành công! Ngoài ra tôi đã phải theo dõi trang web này để có được vài lỗi cuối cùng được khắc phục: http://rocksolidwebdesign.com/notes-and-fixes/ruby-xcode/ – adam

+0

Wow. Xin lỗi về điều đó, tôi không có ý tưởng về vấn đề LLVM. Cảm ơn các liên kết! – matt

5

Tôi cũng đã cài đặt các công cụ dòng lệnh (xCode) ... và vẫn gặp lỗi này (ban đầu).

Vấn đề là xCode và các công cụ dòng lệnh không còn cài đặt trình biên dịch gcc nữa. Tôi không biết khi nào họ ngừng vận chuyển nó, nhưng tôi chạy sư tử núi, và nó không có ở đây. Vì vậy, những gì cuối cùng đã giải quyết được vấn đề của tôi là cài đặt gcc từ đầu (https://github.com/kennethreitz/osx-gcc-installer).

Giữ Mỉm cười :)

+1

Hmm, tôi nhận được lỗi của bạn trên Ubuntu và tôi tin rằng tôi đã cài đặt gcc đúng ... – isomorphismes

4

Nếu ai đó có cùng một vấn đề cho Ubuntu Linux, giải pháp là:

sudo apt-get install build-essential 
sudo apt-get install libsqlite3-dev 
+1

Các gói này không đủ để tôi sửa lỗi trên Ubuntu 16.04. Cài đặt 'ruby-dev' với' sudo apt install ruby-dev' đã sửa nó cho tôi. – FlyingFoX

Các vấn đề liên quan