মণি নেটিভ এক্সটেনশন তৈরি করতে ব্যর্থ হয়েছে (কম্পাস ইনস্টল করা)


275

আমি যখন কম্পাসের সর্বশেষ সংস্করণটি ইনস্টল করার চেষ্টা করি ( https://rubygems.org/gems/compass/versions/1.0.0.alpha.17 ), তখন আমি নিম্নলিখিত ত্রুটিটি পাই।

ERROR:  Error installing compass:
ERROR: Failed to build gem native extension.

 ERROR:  Error installing compass:
  ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
checking for ffi.h... no
checking for ffi.h in /usr/local/include,/usr/include/ffi... yes
checking for ffi_call() in -lffi... yes
checking for ffi_prep_closure()... yes
checking for ffi_raw_call()... no
checking for rb_thread_blocking_region()... yes
checking for rb_thread_call_with_gvl()... yes
checking for rb_thread_call_without_gvl()... yes
checking for ffi_prep_cif_var()... no
creating extconf.h
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling AbstractMemory.c
compiling ArrayType.c
compiling Buffer.c
compiling Call.c
Call.c:303:5: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration]
    rbffi_thread_blocking_region(call_blocking_function, data, (void *) -1, NULL);
    ^
./Thread.h:78:39: note: expanded from macro 'rbffi_thread_blocking_region'
# define rbffi_thread_blocking_region rb_thread_call_without_gvl
                                      ^
1 warning generated.
compiling ClosurePool.c
compiling DataConverter.c
DataConverter.c:43:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
1 warning generated.
compiling DynamicLibrary.c
compiling ffi.c
compiling Function.c
Function.c:479:33: warning: incompatible pointer types passing 'VALUE (void *)' to parameter of type 'void *(*)(void *)' [-Wincompatible-pointer-types]
        rb_thread_call_with_gvl(callback_with_gvl, &cb);
                                ^~~~~~~~~~~~~~~~~
Function.c:102:46: note: passing argument to parameter 'func' here
extern void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1);
                                             ^
Function.c:563:9: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration]
        rb_thread_call_without_gvl(async_cb_wait, &w, async_cb_stop, &w);
        ^
Function.c:738:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
3 warnings generated.
compiling FunctionInfo.c
compiling LastError.c
compiling LongDouble.c
compiling MappedType.c
compiling MemoryPointer.c
compiling MethodHandle.c
compiling Platform.c
compiling Pointer.c
compiling Struct.c
compiling StructByReference.c
compiling StructByValue.c
compiling StructLayout.c
compiling Thread.c
compiling Type.c
compiling Types.c
compiling Variadic.c
linking shared-object ffi_c.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [ffi_c.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/ffi-1.9.3 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-13/2.0.0/ffi-1.9.3/gem_make.out

এখানে কি হচ্ছে? ত্রুটি ছাড়াই আমি কীভাবে সর্বশেষতম কম্পাস ইনস্টল করব?



আপনি আপনার সিস্টেমে তৈরি করেছেন তা নিশ্চিত করুন।
ক্রমানুসারে

উত্তর:


577

এটি চেষ্টা করুন, তারপরে আবার কম্পাস ইনস্টল করার চেষ্টা করুন

apt-get install ruby-dev

33
এটি উবুন্টুতে ত্রুটিটি সংশোধন করে, তবে মনে হয় ওপি ওএসএক্স ব্যবহার করছে।
mhnagaoka

1
উবুন্টু 14.04 এলটিএস
থম

30
CentOS এ "yum ইনস্টল রুবি-ডেভেল" দিয়ে কাজ করেছেন যা সমতুল্য। ধন্যবাদ!
বি

6
একটি ওএসএক্স প্রশ্নের উত্তরে আমার উবুন্টু সমস্যার সমাধান খুঁজে পাওয়া মজার। যাইহোক, আপনার উত্তরটি আমার সমস্যার সমাধান করায় আপনি আমার উত্সাহ পেয়েছেন। Tnx!

3
উইন্ডোজে এটি কীভাবে কাজ করবেন তা সম্পর্কে কোনও ধারণা? আমি রুবি দেব সরঞ্জামগুলি ব্যবহার করে ইনস্টল করেছি choco install ruby2.devkitতবে এটি এখনও কাজ করছে না
জেটেট

124

ম্যাক ওএস এক্স 10.10 এ কম্পাস ইনস্টল করার জন্য (ইয়োসেমাইট) নিম্নলিখিত সম্পাদন করতে হয়েছিল:

1. রুবি পরিবেশ স্থাপন করুন

  • রুবি ইনস্টল এবং আধুনিক রয়েছে তা নিশ্চিত করুন: ruby -v
  • রত্ন আপডেট করুন sudo gem update --system

2. ম্যাক পরিবেশ স্থাপন করুন

ইনস্টল করুন Xcode কম্যান্ড লাইন টুলস এই কম্পাস ইনস্টল করার চাবিকাঠি।

xcode-select --install

এক্সকোড কমান্ড লাইন সরঞ্জামগুলি ইনস্টল করা ওএস এক্সে কমপাস কাজ করার মূল চাবিকাঠি

৩. কম্পাস ইনস্টল করুন

sudo gem install compass

3
আমার জন্য এটি ঠিক সঠিক উত্তর ছিল, এটির জন্য
এক্সকোড

2
ধন্যবাদ, আমার জন্য কাজ করেছেন, আপনি ঠিক বলেছেন, এক্সকোড কমান্ড লাইন সরঞ্জামগুলি মূল key
কটাক্ষ

5
এটি আমার জন্য আরও একটি সংযোজন নিয়ে কাজ করেছে - আপনাকে আসলে এক্সকোডি শুরু করতে হবে যাতে আপনি লাইসেন্স চুক্তিটি গ্রহণ করতে পারেন এবং সেটআপ শেষ করতে দিন। আপনার উত্তরের উপর ট্যাগিং মূল্য হতে পারে।
ব্রুফোর্ড

জিইউআইয়ের মাধ্যমে আপডেট (চুক্তির শর্তাদি) গ্রহণ করাও কাজ করেছিল।
ক্যাসিওস্ক্যাব্রাল

সিয়েরার 10.12.6 এ সাম্প্রতিক আপডেট হওয়া ম্যাকবুক প্রো-এ, সুডো রত্ন ইনস্টল করে কম্পাস চালানোর আগে আমাকে শর্তাদি ও শর্তাদি স্বীকার করতে "সুডো এক্সকোডবিল্ড -লাইসেন্স" চালাতে হয়েছিল ....
জোচেরা

46

সবচেয়ে ভাল উপায় sudo apt-get install ruby-compass কম্পাস ইনস্টল করা।


1
বাহ, কখনও কখনও এটি এত সহজ ge রত্নের সাথে কম্পাস ইনস্টল করার চেষ্টা করা হয়েছিল, তবে কিছু নির্ভরতা রত্ন দ্বারা সমাধান করা হয়নি। এপটি-গেট দিয়ে এটি কাজ করে! ধন্যবাদ
naitsirch

38

আপনি সাথে ডিবিয়ান চেষ্টা করতে পারেন

sudo apt-get install gcc ruby-dev rubygems compass

ফেডোরা, সেন্টোসের জন্য

yum -y install gcc ruby-devel rubygems compass

এটা আমার জন্য কাজ করেছে।


5
আমাকেও ইনস্টল করতে হয়েছিল make
cweiske


30

আমি প্রায় 3 ঘন্টা আপনার সাথে একই সমস্যার সাথে লড়াই করেছি। হিসাবে Compass 1.0.alpha19, প্রয়োজনীয়তা আরভিএম সংস্করণ 1.9.3 এর জন্য।

বেশ কয়েকটি অনাবৃত পোস্ট রয়েছে, তবে আমার জন্য যা কাজ করেছে তা হ'ল:

  1. sudo gem uninstall sass
  2. sudo gem uninstall compass
  3. rvm install ruby-1.9.3-p448
  4. sudo gem install sass --pre
  5. sudo gem install compass --pre

এবং এটি এটা করেছে। আশা করি এটি আপনার পক্ষেও কাজ করে!


আমি সম্প্রতি একই সমস্যা ছিল কিন্তু একটি নতুন সংস্করণ সঙ্গে। আমি যা করেছি তা হ'ল আমি রুটি সংস্করণটি আনুষ্ঠানিকভাবে ইনস্টল করেছিলাম যার আগে আমি প্রবণতা দিয়ে ইনস্টল করেছি এবং তারপরে আমি আবার নির্দেশাবলী অনুসরণ করে এটি ইনস্টল করেছি: rvm.io/rvm/install । নতুন রুবি / আরভিএম সংস্করণ কম্পাসটি সঠিকভাবে নির্মিত হয়েছে।
অ্যাডোসাইগুয়াস

2
এই জন্য ধন্যবাদ, খুব সহায়ক। আমি পদক্ষেপ 3 তে পরিবর্তিত rvm install ruby-2.1.2হয়ে 1.9.3 হিসাবে আর আপডেট হচ্ছে না
টাইমলফ 123

24

আমার এই সমস্যাটি সমাধান করার জন্য, আমাকে নিশ্চিত করতে হয়েছিল যে আমার কাছে রুবি এবং রত্নগুলির সর্বাধিক বর্তমান সংস্করণ রয়েছে gem update --system; তারপর, আমি নিশ্চিত যে Xcode & কম্যান্ড লাইন টুলস ইনস্টল করা করা ছিল: xcode-select --install


xcode-select --installসম্পন্ন হয়েছিল তবে এটি আমার জন্য এটি সমাধান করে না
এডি

14

ম্যাক ওএসে আপনাকে এই বৈশিষ্ট্যটি ইনস্টল করতে হবে!

xcode-select --install

10

হাই এটি ম্যাক এ কাজ করা একটি চ্যালেঞ্জ ছিল তাই যাইহোক এখানে একটি সমাধান

  1. ম্যাকপোর্টগুলি ইনস্টল করুন
  2. আরভিএম ইনস্টল করুন
  3. টার্মিনাল পুনরায় চালু করুন
  4. চালান rvm requirementsতারপর চালানrvm install 2.1
  5. এবং চালানো শেষ পদক্ষেপ gem install compass --pre

আমি নিশ্চিত নই তবে মাভেরিক্সের রুবি সংস্করণ দেশী এক্সটেনশন ইত্যাদিকে সমর্থন করে না ... সুতরাং আপনি যদি অন্য রুবি সংস্করণগুলিতে দেখান যেমন আমি "2.1" করেছিলাম তবে এটি ঠিক আছে।


আমি ম্যাকপোর্টগুলি ব্যবহার না করার পরামর্শ দেব।
মনোনীত

6

এগুলির কোনওটিকেই কেন সঠিক উত্তর হিসাবে চিহ্নিত করা হচ্ছে তা নিশ্চিত নয়, তবে আমি এখানে একটি গুগল অনুসন্ধানের মাধ্যমে অবতরণ করেছি, তাই আমি যা জানি তার সাথে আমি পেরিয়ে যাব ...

@ পল_জি এর পদ্ধতিটি আমার কাছে খুব কাছে ছিল, একটি ম্যাক osx10.9 রেটিনার উপরে আমার পদক্ষেপগুলি:

  • ম্যাকপোর্টগুলি ইনস্টল করুন
  • আরভিএম ইনস্টল করুন ( --insecureএসএসএল সম্পর্কিত সমস্যার জন্য রুবি অ্যাড ফ্ল্যাগ সহ স্থিতিশীল ) $ $\curl -sSL --insecure https://get.rvm.io | bash -s stable --ruby
  • টার্মিনাল পুনরায় আরম্ভ / আপনার প্রোফাইল রিসোর্স
  • চালান rvm requirements --with-gcc=clang আপনি রুবি আপডেট করতে হবে না কারণ আপনি শেষ স্থিতিশীল সংস্করণটি ডাউনলোড করেছেন
  • এবং চালানো শেষ পদক্ষেপ gem install compass --pre

5

আপনি যদি উবুন্টু ব্যবহার করছেন তবে আপনার বিল্ড-অপরিহার্য ইনস্টল করার চেষ্টা করা উচিত

apt install build-essential

উবুন্টু নতুন করে ইনস্টল করার জন্য রত্ন স্থাপনে আমার সমস্যা হয়েছিল এবং এই সমাধানটি আমার পক্ষে কাজ করেছিল।


আমারও একই সমস্যা ছিল। আরও কিছু লোকের এটিকে উজ্জীবিত করা উচিত।
ক্রমানুসারে

4

আপনাকে অ্যাপলের কমান্ড লাইন সরঞ্জামগুলি ইনস্টল করতে হবে যা সম্ভবত আপনার সিস্টেমে ডিফল্টরূপে ইনস্টল করা নেই। আমি একই ত্রুটি পাচ্ছিলাম, তবে এখানে কোনও নির্দেশ অনুসরণ করার আগে আমি কমান্ড লাইন সরঞ্জামগুলি ইনস্টল করেছি (কোনও সম্পর্কযুক্ত সমস্যার কারণে) এবং আমি আবার চেষ্টা করার পরে ইস্যু ছাড়াই কম্পাস ইনস্টল করেছি। YMMV।


এটি আমার জন্য উপরের সমস্যাটি সমাধান করেছে, তাই আমি বলব এটি উপরের প্রশ্নের একটি গ্রহণযোগ্য উত্তর।
পিটার জে হ্যারিসন

4

Yosemite এ কম্পাস ইনস্টল করার জন্য আপনাকে রুবি পরিবেশ স্থাপন করতে হবে এবং এক্সকোড কমান্ড লাইন সরঞ্জাম ইনস্টল করতে হবে। তবে, সর্বাধিক গুরুত্বপূর্ণ বিষয়, এক্সকোড আপডেট করার পরে, এক্সকোড অ্যাপ্লিকেশনটি চালু করতে ভুলবেন না এবং অ্যাপলের লাইসেন্সের শর্তাদি স্বীকার করবেন । এটি উপাদানগুলির ইনস্টলেশন সম্পন্ন করবে। এর পরে, আপনি কম্পাস ইনস্টল করতে পারেন: সুডো রত্ন ইনস্টল করে কম্পাস


3

ম্যাকোস 10.14 মোজাবের জন্য, নিশ্চিত হয়ে নিন যে আপনি ইতিমধ্যে কমান্ড লাইন সরঞ্জামগুলি xcode-select --installইনস্টল করেছেন এবং স্টাডি শিরোনাম ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান।

sudo open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

এখন আবার আপনার কমান্ড চেষ্টা করুন।


3

আপনার অবশ্যই জিসিসি, জেসন_পিউর থাকতে হবে

আমি বেশ কয়েকটি পোস্ট থেকে কিছু তথ্য সংগ্রহ করি

sudo gem uninstall sass
sudo gem uninstall compass
sudo gem update --system
gem install json_pure   (if you have already have continued to next step)
sudo yum install gcc gcc-c++   (if you have already have continued to next step)
sudo gem install sass

sudo gem install compass

হাই যদি ** সুডো রত্ন আপডেট - সিস্টেম ** কাজ না করে আপনি আপডেটে ত্রুটি পেয়েছেন তবে ব্যবহার করুন

sudo রত্ন আপডেট - সিস্টেম 2.7.8


আমিও চালানোর জন্য ছিল sudo yum install -y redhat-rpm-configএই ত্রুটির কারণে কম্পাস ইনস্টল করার পূর্বে ফেডোরা 24 জন্য:gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory
ব্রাইস Guinta

sudo gem update --systemআমাকে ত্রুটি দিয়েছে: ERROR: While executing gem ... (Errno::EPERM) Operation not permitted @ rb_sysopen - System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem:(
এডি

2

ইয়োসাইটে, আপনাকে যা করতে হবে তা হ'ল কমান্ড লাইন সরঞ্জামগুলি ইনস্টল করা। তারপর এটি কাজ করে।

এমনকি অন্য রত্ন জরিমানা ইনস্টল করা হলেও। কাজ করতে রত্ন ইনস্টল করার জন্য আপনাকে অবশ্যই xcode- নির্বাচন - ইনস্টল করতে হবে।

শুভকামনা।


2

ম্যাক ওএস এক্স ১০.৯-তে, আপনি চেষ্টা xcode-select --installকরলে নীচের ত্রুটিটি পাবেন:

সফ্টওয়্যার ইনস্টল করতে পারছে না কারণ এটি বর্তমানে সফ্টওয়্যার আপডেট সার্ভার থেকে পাওয়া যায় না।

সমাধানটি হ'ল কমান্ড লাইন সরঞ্জামগুলি (ওএস এক্স 10.9) সরাসরি অ্যাপল ওয়েবসাইট থেকে ডাউনলোড করুন: https://developer.apple.com/downloads/index.action?name=for%20Xcode%20-

এরপরে আপনি কমান্ড লাইন সরঞ্জামের শেষ সংস্করণটি ইনস্টল করতে সক্ষম হবেন।


2

উবুন্টু ১৪.০৪-এ, অ্যাপটি-গেট রুবিজেম ইনস্টল করার সময় একটি ত্রুটি রয়েছে

ই: প্যাকেজ 'রুবিজেমস'-এর কোনও ইনস্টলেশন প্রার্থী নেই

কমান্ড অনুসরণ সমস্যার সমাধান।

sudo apt-get gcc রুবি-ডেভেল রুবিজেমস-ইন্টিগ্রেশন রুবি-কম্পাস ইনস্টল করুন


2

ব্যবহার করে দেখুন brew install coreutils

একজন সহকর্মী দ্বারা সম্প্রতি রুবি ২.২.৫ এ আপডেট হওয়া একটি বার্ধক্যজনিত সাস / কম্পাস প্রকল্পটি পুনর্নির্মাণের সময় আমি এই সমস্যাটি পেয়েছি। প্রকল্পটি আরভিএম এবং বান্ডিলার ব্যবহার করে। এই আমার আদেশ ছিল

$ rvm install ruby-2.2.5
$ rvm use ruby-2.2.5
$ gem install bundler
$ bundle install

এটি আমাকে ffiস্ট্যাকওভারফ্লো পরিবেশের চারপাশে প্রতিবেদন করা খ্যাতিযুক্ত ত্রুটিগুলি আঘাত করতে বাধ্য করেছিল:

An error occurred while installing ffi (1.9.14), and Bundler cannot continue.

এই সমস্যাটি সমাধান করার জন্য বেশিরভাগ পরামর্শ হ'ল এক্সকোড কমান্ড লাইন সরঞ্জামগুলি ইনস্টল করা। তবে এটি ইতিমধ্যে আমার পরিবেশে ইনস্টল করা হয়েছিল:

$ xcode-select -p
/Library/Developer/CommandLineTools

অন্যান্য পরামর্শগুলি জিসিসি ইনস্টল করতে বলেছে ... তাই আমি চেষ্টা করেছি:

$ brew install gcc46

কিন্তু এই একটি সেগমেন্টেশন ফল্ট কারণে ব্যর্থ ... ¯\_(ツ)_/¯

সুতরাং, আমি তখন হাতে হাতে কম্পাস ইনস্টল করার চেষ্টা করেছি, এটি দেখার জন্য এটি ঠিক একই ffiত্রুটি দেয় কিনা :

$ gem install compass

তবে আমার অবাক করে দিয়েছি, আমি সম্পূর্ণ ভিন্ন ত্রুটি পেয়েছি:

make: /usr/local/bin/gmkdir: No such file or directory

সুতরাং আমি এই সমস্যাটি অনুসন্ধান করেছি এবং এই প্রাচীন ব্লগ পোস্টটি পেয়েছিলাম যা কোর্টিলগুলি ইনস্টল করতে বলেছে:

$ brew install coreutils

coreutilsহোমব্রিউয়ের সাথে ইনস্টল করার পরে , বান্ডলারটি কম্পাস এবং নির্ভরতা সফলভাবে শেষ করতে এবং ইনস্টল করতে সক্ষম হয়েছিল।

শেষ।



2

কখন

মণি ইনস্টল overcommit

চালানো হয় এই ত্রুটিটি টার্মিনালে রাখা হয়েছে।

Failed to build gem native extension

দয়া করে একই কাজ করুন

xcode-select --install

এবং এটিও এই সমস্যার সমাধান করবে


আমি পেতে xcode-select: error: command line tools are already installed, use "Software Update" to install updates। এটি এটি ঠিক করে না।
এডি

2

ম্যাক ওএসের জন্য:

আমার ত্রুটিটি ছিল আমি এক্সকোড - পছন্দগুলি - অবস্থানগুলি - নতুন এক্সকোড ইনস্টলেশনয়ের পরে কমান্ড লাইন সরঞ্জামগুলিতে বিকল্পটি নির্বাচন করতে ভুলে গেছি (আমার 2 সংস্করণ ছিল এবং পরে আমি একটি মুছলাম)। হতে পারে এটি কাউকে সাহায্য করবে।

এখানে চিত্র বর্ণনা লিখুন


1

এটি চেষ্টা করুন, তারপরে আবার কম্পাস ইনস্টল করার চেষ্টা করুন

sudo apt install ruby-full

0

লিনাক্স মিন্টে আমার একই সমস্যা ছিল তবে আমি রুবি আনইনস্টল করে আবার এটি ইনস্টল করে এটি ঠিক করতে সক্ষম হয়েছি।

রুবি আনইনস্টল করুন:

sudo apt-get remove ruby

এটি কিছু রুবি প্যাকেজ যেমন রিপোর্ট করেছে:

Package 'ruby' is not installed, so not removed
The following packages were automatically installed and are no longer required:
libruby2.2 ruby-chunky-png ruby-sass rubygems-integration
Use 'apt-get autoremove' to remove them.

অবশিষ্ট প্যাকেজগুলি আনইনস্টল করুন *

apt-get autoremove

আবার রুবি ইনস্টল করুন

sudo apt-get install ruby2.2

কম্পাস ইনস্টল করুন

sudo gem install compass

সাফল্যের সাথে শেষ আদেশটি কার্যকর করা হয়েছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.