নোকোগিরি ইনস্টলেশনটি ব্যর্থ হয় -লিবএক্সএমএল 2 অনুপস্থিত


156

" নোকোগিরি ইনস্টল করা " টিউটোরিয়ালে ডকুমেন্টেশন অনুসরণ করে আমি সর্বদা নোকোগিরি ইনস্টলেশন সংক্রান্ত সমস্যাগুলি নিয়ে কাজ করি ।

তবে এবার, সমস্ত নির্ভরতা ইনস্টল করার পরেও নোকোগিরি ইনস্টল করা হয়নি। আমি নিম্নলিখিত ত্রুটি পেয়েছি:

libxml2 is missing.  please visit <http://nokogiri.org/tutorials/installing_nokogiri.html>

আমি libxML2 এবং libxslt ডিরেক্টরি উল্লেখ করে এটি ইনস্টল করার চেষ্টা করেছি:

sudo gem install nokogiri -- --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib --with-xslt-dir=/usr/

তবে এটি একই ত্রুটি ফিরে পেয়েছিল।

আমি অন্যান্য সম্পর্কিত স্ট্যাক ওভারফ্লো নিবন্ধগুলি অনুসরণ করেছি এবং কোনওটিই সহায়তা করেনি। কারো কাছে কি কোন সমাধান আছে?


1
আপনার অপারেটিং সিস্টেমটি কী?
জেক জোনস

2
এটিই আরও উপযুক্ত উত্তর- sudo apt-get libxslt-dev libxML2-dev ইনস্টল করুন
প্রতীক বোথরা

উত্তর:


163

প্রথমে নির্ভরতাগুলি ইনস্টল করুন:

sudo apt-get install libxslt-dev libxml2-dev

আপনি যদি এখনও ত্রুটিটি পান তবে আপনি একটি সংকলক সরঞ্জামচেন অনুপস্থিত হতে পারেন:

sudo apt-get install build-essential

আপনি যদি বিল্ড টুলচেনটি হারিয়ে ফেলেন তবে "লাইবএক্সএমএল 2 অনুপস্থিত" ত্রুটি পাবেন (কমপক্ষে আমি দেবিয়ান লেনির এই সমস্যাটি নিয়ে এসেছি)।

নোকোগিরি বিল্ড পরীক্ষা করে একটি libxML2 শিরোনাম ফাইল উপস্থিত রয়েছে তা যাচাই করার জন্য এটি কম্পাইল করে, তবে এটি "libxML2 অনুপস্থিত" এবং "libxML2 পরীক্ষা করার জন্য একটি সংকলক অনুপস্থিত" এর মধ্যে পার্থক্য করে না।


44
যদি এটি সমস্যা না হয় তবে আপনাকে libxML2-dev ইনস্টল করতে হতে পারে
এরিক পিটারসন

1
আমি উপরের কমান্ডটি চালিয়েছি এবং 'libxML2 অনুপস্থিত' ত্রুটি পেয়েছি। আপনি কি আমাকে বিল্ড টুল চেইন ইনস্টলেশন সম্পর্কে আরও বলতে পারেন? B'cos আমি এতে খুব বেশি সহায়তা পাইনি।
রোহিত এ।

1
আমি সেই বার্তাটি পেয়েছি কারণ আমার কাছে সিসি (বা অন্য কোনও সংকলক) ইনস্টল করা হয়নি। আমার কাছে একটি সংকলক সরঞ্জামচেন ছিল না।
এরিক পিটারসন

7
আপনি যদি কোনও ম্যাকের উপরে থাকেন: লাইট ইনস্টল করুন libxslt তারপর ব্রিবু ইনস্টল করুন libxML2
স্যাম ব্যাকাস

245

আপনাকে অবশ্যই এই দুটি প্যাকেজ ইনস্টল করতে হবে

sudo apt-get install libxslt-dev libxml2-dev

7
কোনও মন্তব্য কীভাবে এটিকে গৃহীত উত্তরের নীচে বসে থাকতে পারে?
নিউ আলেকজান্দ্রিয়া

3
কারণ প্রশ্নটি "সমস্ত নির্ভরতা ইনস্টল করার পরেও" বলেছিল। সুতরাং গৃহীত উত্তরটি সঠিক।
b0fh

62

ম্যাক ওএস এক্স (ম্যাভেরিক্স) এ, রত্ন ইনস্টল করার আগে গ্রন্থাগারগুলি ইনস্টল করা brewএবং স্থাপন করা NOKOGIRI_USE_SYSTEM_LIBRARIES=1আমার পক্ষে কৌশলটি করেছে।

সারমর্ম:

  • পূর্বে ইনস্টল করা থাকলে, রত্নটি আনইনস্টল করুন:

    gem uninstall nokogiri
  • ইনস্টল করার Homebrew ব্যবহার করুন libxml2, libxsltএবং libiconv:

    brew install libxml2 libxslt libiconv
  • এর সাথে সংযুক্ত হওয়ার জন্য লাইব্রেরিতে পাথ উল্লেখ করে রত্নটি ইনস্টল করুন:

    NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-config="$(brew --prefix libxml2)/bin/xml2-config" --with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"

আমি লাইবিকনভ সম্পর্কে কিছু ত্রুটি পেয়েছি: "অ্যাপল ওএস এক্সের সাথে লিবিকনভ বিতরণ করে, আপনি এটি / usr / lib এ খুঁজে পেতে পারেন।" তবে কেবল আপনার রত্ন ইনস্টল স্ক্রিপ্টটি অনুলিপি করে কাজ করেছে :) ধন্যবাদ!
অটোমেটিকো

ধন্যবাদ! সারাদিন সকালে নোকোগিরি ইনস্টল করার চেষ্টা করার পরে, আপনার উত্তরটি (বিশেষত কনফিগারেশন পাথগুলির সাথে) শেষ পর্যন্ত এটি কার্যকর হয়ে গেছে - ইনস্টল স্টেটিংয়ের পরিবর্তে (বরং অপ্রয়োজনীয়ভাবে) যে পাথগুলি সঠিক ছিল তবুও libxml2 উপস্থিত ছিল না।
পেবল

2
ওএস এক্সে $ NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri
ব্রুয়ের

2
ওএসএক্স এল ক্যাপিটেন 10.11.2 এ, আমি brew install libxml2 libxslt homebrew/dupes/libiconvএটির কাজ করার জন্য ব্যবহার করতে পারি
হাই ফেং কাও

2
তদ্ব্যতীত, আমাকে কাজ করার --with-xml2-include="/usr/local/opt/libxml2/include/libxml2"জন্য gem install nokogiriকমান্ড যোগ করতে হবে। অন্যথায়, এটি প্রদর্শিত হবে libxml2 version 2.6.21 or later is required!(আমার libxML2 সংস্করণটি 2.9.2)
হাই ফেং কাও

22

ফেডোরা ১৩-তে আমার ঠিক একই সমস্যা ছিল। হতাশাজনক এবং ব্যর্থ অনুসন্ধানের পরে

gem install nokogiri

আমার জন্য কাজ করুন, আমি এটি ইনস্টল করতে পেরে এবং libxML2 ত্রুটির মাধ্যমে প্রায় পেতে পারি yum

কমান্ডের yumপরিবর্তে রত্নটি কেবল ইনস্টল করুন gem:

su
yum search rubygem-nokogiri   #this find the proper package name
yum install rubygem-nokogiri.i686

এটি আমাকে ফেডোরার সঠিক উত্তর খুঁজে পেতে সহায়তা করেছে এবং যেমন আমি রুবি প্যাকেজ পরিচালনার জন্য আরভিএম ব্যবহার করছি,

yum install rubygem-nokogiri

সমস্ত রুবি রত্ন এবং নির্ভরতা সিস্টেমে টানবে, আমার আরভিএম পরিবেশের মধ্যে নয়, এবং আমার অভিজ্ঞতায় যা খুব হতাশাব্যঞ্জক এবং হুমকির সম্মুখীন হতে পারে।

সুতরাং, নোকোগিরি ইয়াম রত্নটির সন্ধানটি আপনি ব্যবহার করতে পারেন:

yum provides  rubygem-nokogiri

এবং রুবিজেম-নোকোগিরির নির্ভরতার একটি তালিকা পান যা আমাকে যে লাইব্রেরিগুলি হারিয়েছিল তা দেখিয়েছিল। তার পরে আমি দৌড়েছি:

yum install libxml2-devel libxslt libxslt-devel

এখন নোকোগিরি ফেডোরা এবং নোকোগিরি ইনস্টল করে। দোহ !, দেভাল লাইব্রেরি থেকে নোকোগিরি সংকলনের জন্য আমাদের শিরোনাম প্রয়োজন।


এটি আমার জন্য এটি করা হয়েছে, যদিও উবুন্টুতে আমাকে ল্যাপনোকোগিরি-রুবি 1.9.1 ইনস্টল করতে হবে, তারপরে জেমফিল সম্পাদনা করুন 1.5.9 এর পরিবর্তে 1.5.5 নম্বরের জন্য
ffflabs

13

ম্যাক ওএস এক্সে (ম্যাভেরিক্স) যদি এই সমাধানগুলির কোনওটিই কাজ না করে তবে চেষ্টা করুন:

ARCHFLAGS="-arch x86_64" gem install nokogiri

অথবা

ARCHFLAGS="-arch i386" gem install nokogiri

আপনার সিস্টেমের আর্কিটেকচারের উপর নির্ভর করে।


13

রত্ন তৈরির জন্য আপনার সাধারণত বিকাশের ফাইলগুলির প্রয়োজন। চেষ্টা করুন:

sudo apt-get install libxslt-dev libxml2-dev

(আমি কেবল দেখেছি যে এরিক একটি মন্তব্যে একই পরামর্শ দিয়েছে।)


11

আমি এই সাথে ইনস্টল করতে সক্ষম ছিল Chocolatey উইন্ডোজ 8.1 x64, এবং DevKit x64।

cinst libxml2
cinst libxslt
cinst libiconv

gem install nokogiri -- 
  --with-xml2-include=C:\Chocolatey\lib\libxml2.2.7.8.7\build\native\include 
  --with-xml2-lib=C:\Chocolatey\lib\libxml2.redist.2.7.8.7\build\native\bin\v110\x64\Release\dynamic\cdecl 
  --with-iconv-include=C:\Chocolatey\lib\libiconv.1.14.0.11\build\native\include 
  --with-iconv-lib=C:\Chocolatey\lib\libiconv.redist.1.14.0.11\build\native\bin\v110\x64\Release\dynamic\cdecl 
  --with-xslt-include=C:\Chocolatey\lib\libxslt.1.1.28.0\build\native\include 
  --with-xslt-lib=C:\Chocolatey\lib\libxslt.redist.1.1.28.0\build\native\bin\v110\x64\Release\dynamic

পাথগুলির সংস্করণ নম্বরটি আপনাকে যাচাই করতে হবে।

আপনার সম্ভবত মাইক্রোসফ্টের নিউগেট সংগ্রহস্থল যুক্ত করার প্রয়োজন হতে পারে:

-Source "https://go.microsoft.com/fwlink/?LinkID=230477"

আমি 'প্যাকেজ libxML2 খুঁজে পেতে অক্ষম' পেয়েছি। চকোলেটিতে আপনার কী উত্স আছে?
আইজাক ওয়ালার

3
সমস্যা খুঁজে পেল! চ্যোকলেটির উত্স ফাইলে নুগের উত্স অক্ষম ছিল! তবে রত্ন কাজ করে না: [tid-1789500] 126: নির্দিষ্ট মডিউলটি পাওয়া যায়নি। - সি: / রবি 200/lib/ruby/gems/2.0.0/gems/nokogiri-1.6.1/lib/nokogiri/nokogiri.so (লোডেরর)
রাতকো স্টিব্রিক

@RatkoStibric আমি মনে করি আপনি গতিশীল লিব সঙ্গে বিল্ড করতে হবে: ...\x64\Release\dynamic\cdecl
ক্লো

1
একবার চকোলেটলি ইনস্টল হয়ে গেলে, নিম্নলিখিত কমান্ডটি ব্যবহার করে একটি উত্স যুক্ত করুন:chocolatey sources add -name NuGet -source "https://go.microsoft.com/fwlink/?LinkID=230477"
রিচার্ড পেক

1
চকোলেটির জন্য ধন্যবাদ, এর আগে কখনও জানতাম না!
রিচার্ড পেক

11

এটা হবে:

sudo yum install -y libxml2 libxml2-devel

আরএইচইএল সার্ভারে।


6

আমি স্পষ্টভাবে XCode libxML2 পাথটি সরবরাহ না করা পর্যন্ত উপরের / নীচের কোনটি ম্যাকোস এ সত্যই আমার পক্ষে কাজ করে নি --with-xml2-include

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libxml2 --use-system-libraries

4

আমি ফেডোরা ২০-তে নোকোগিরি ১.6.৫ ইনস্টল করতে সক্ষম হয়েছি:

export NOKOGIRI_USE_SYSTEM_LIBRARIES=true

তারপরে চলছে:

gem install nokogiri

4

অন্য যে কেউ এই সমস্যাটি অনুভব করছেন তাদের জন্য, আমি প্রকল্প ডিরেক্টরিতে এই কমান্ডটি চালিয়ে সমাধান করেছি

gem install nokogiri -- --use-system-libraries

আপডেট: আমি আবার এটিতে ছুটে এসেছি এবং আমার জন্য কাজ করা রত্নটি আপডেট করার চেষ্টা করেছি ...

gem update nokogiri


2

আপনি কি libxML2 ইনস্টল করার চেষ্টা করেছেন? রুবিজেম থেকে নয়, আপনার অপারেটিং সিস্টেমের জন্য স্ট্যান্ডার্ড ইনস্টল প্রক্রিয়া মাধ্যমে। উবুন্টু / ডেবিয়ান উদাহরণস্বরূপ:

sudo apt-get install libxml2

ওএস এক্স এর সাম্প্রতিক সংস্করণে এটি ইতিমধ্যে ইনস্টল করা উচিত।


আমি উবুন্টুতে আছি এবং অন্যান্য স্ট্যাকওভারফ্লো প্রশ্নগুলিতে উল্লিখিত সমস্ত ইনস্টলেশনগুলি আমি অনুসরণ করেছি।
রোহিত এ।

1

ওএসএক্স ব্যবহারকারীদের জন্য, আপনি যদি আগে নোকোগিরি ইনস্টল করতে সফল হন তবে এটি ইনস্টল করার সময় ত্রুটি পেতে থাকে, বলুন, আপনি যুক্ত করেছেন রুবির একটি নতুন সংস্করণ এবং সেই ত্রুটির সাথে একটি বার্তা রয়েছে:

The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.

এটি ম্যানুয়ালি বা স্বয়ংক্রিয়ভাবে অ্যাপ স্টোরের মাধ্যমে XCode আপগ্রেড হওয়ার সূচক হতে পারে এবং আপনি সেই সময় থেকে এটি খুলেন নি।

যদি তা হয় তবে আপনার এক্সকোড খোলার, নতুন লাইসেন্সে সম্মত হওয়া এবং নোকোগিরি সফলভাবে ইনস্টল করা উচিত।


1

ম্যাক ওএস এক্স ইয়োসেমাইটে আমার ভুলটি হ'ল যে আমি sudo gem installযখন রত্নগুলি ইনস্টল করার সময় অতিরিক্ত ব্যবহারকারীর সুবিধাগুলি ব্যবহার না করার জন্য থাম্বের নিয়ম ব্যবহার করার চেষ্টা করি ।

আমার ক্ষেত্রে এটি রুবির সিস্টেম ইনস্টলেশনটি পরিবর্তন করার চেষ্টা করেছিল এবং এটি কোনও ভাল ধারণা নয়। আমি আরবেএনভ ইনস্টল করেছি, এটির মাধ্যমে রুবি ২.২.২ ইনস্টল করেছি এবং সেট করে রেখেছি, এটি globalআরবেভের ডকুমেন্টেশন থেকে একটি শব্দ is এর পরে নোকোগিরি একটি সাধারণ দিয়ে নিজেকে ইনস্টল করতে পারত

gem install nokogiri

কোনও হ্যাক বা কাজের ক্ষেত্র প্রয়োজন ছিল না, কেবল একটি সঠিকভাবে সেট পরিবেশ; নোকোগিরি বাকিটা পুরোপুরি করে।


ব্যবহার sudoকরা ঠিক আছে, যদি আপনি বুঝতে পারেন যে এটি কীভাবে কাজ করে, কোথায় এটি কার্যকর হতে চলেছে, ফাইলগুলি ইনস্টল করা বা আপডেট হওয়া উচিত কেন এবং যদি ব্যর্থ হয় তবে কীভাবে পদক্ষেপটি পূর্বাবস্থায় ফেলা যায়। অন্যথায়, rbenv বা আরভিএম এর মতো একটি স্যান্ডবক্স ব্যবহার করা সত্যিই ভাল ধারণা।
টিন ম্যান 17

1

উপরোক্ত পোস্ট অনুসরণ করে তবে কমান্ডটি নিম্নলিখিতভাবে ব্যবহার করে ভ্যাংগার-অ্যাভ ইনস্টল করতে সক্ষম হয়েছিল:

NOKOGIRI_USE_SYSTEM_LIBRARIES=1 vagrant plugin install vagrant-aws


0

আমি নিম্নলিখিত প্যাকেজগুলি চালিয়ে নোকোগিরি ইনস্টল করতে সক্ষম হয়েছি:

$ dnf group install "C Development Tools and Libraries"
$ dnf install ruby-devel libxml2-devel patch

0

=== টিএলডিআর ===

হিসাবে নির্দেশাবলী রাষ্ট্র, সর্বশেষ ঝনঝন কম্পাইলার দিয়ে বিল্ড রুবি, বা অন্তত একই সংস্করণ যা Rubygems কম্পাইল করার ব্যবহার করবে Nokogiri এর নেটিভ এক্সটেনশান libxml এবং libxsl।

আরভিএম ব্যবহার করে, --with-ggc=clangপতাকাটি দিয়ে উত্স থেকে বিল্ডিং করা আমার পক্ষে এটি কী হয়েছিল:

rvm install 2.2 --with-gcc=clang

2.2আপনি যে সংস্করণটি চান তা দিয়ে প্রতিস্থাপন করুন । --with-gcc=clangআরভিএম উত্স থেকে বিল্ডগুলি নিশ্চিত করে এবং তা করতে ঝনঝন ব্যবহার করে; অন্যথায় আরভিএম একটি প্রাক-নির্মিত বাইনারি রুবি হতে পারে, যা আমাকে ট্রিপ করেছে।

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

=== ডিপথে ===

আমি কিছুক্ষন এটির সাথে লড়াই করেছি। gem install nokogiriআমাকে দিলো:

checking for xmlParseDoc() in libxml/parser.h... no
checking for xmlParseDoc() in -lxml2... no
checking for xmlParseDoc() in -llibxml2... no

খনন করে mkmf.logদেখলাম:

conftest.c:15:27: error: too few arguments to function call, single argument 'cur' was not specified
int t(void) { xmlParseDoc(); return 0; }  

নোকোগিরি তার নিজস্ব libxML এবং libxsl সরবরাহ করে (1.6.4 হিসাবে)। নোকোগিরির পার্সার.একের স্থানীয় অনুলিপি (রত্ন ইনস্টল ডিরেক্টরিতে পাওয়া যায়) এর মধ্যে স্বাক্ষরটি হ'ল:

xmlParseDoc (const xmlChar *cur);                                                                                                                                                                                

সুতরাং আমি কীভাবে ক্ষতিগ্রস্থ হয়ে পড়েছিলাম যে কীভাবে হারমেটিকালি সিল করা কনফেস্টে। ফাইলের পদ্ধতি পদ্ধতি কলটি পার্সার। H এর জন্য শিরোনাম ফাইলের সাথে মেলে না।

যখন আমি বুঝতে পারি আমি সম্ভবত একটি বাইনারি রুবি ইনস্টল করেছি আমি মুছে ফেলা এবং পুনরায় ইনস্টল করে --with-gcc=clang(সংকলন জোর করতে এবং ঝনঝন ব্যবহার করতে) এবং সমস্যাটি সমাধান করা হয়েছে:

rvm uninstall 2.2
rvm install 2.2 --with-gcc=clang
gem install nokogiri

আমি ঠিক নিশ্চিত নই কেন এটি সিস্টেম লাইবএক্সএমএল শিরোনাম /usr/include/libxml2/libxml/parser.hহিসাবে নোকোগিরির স্থানীয় অনুলির মতো একই স্বাক্ষর হিসাবে কাজ করে।

এটি অদ্ভুত, কিন্তু এটি কাজ করে। আপনি নিশ্চিত হন যে আপনি কোনও রুবিকে ঝনঝন করে সংকলন করেছেন।


0
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib

এটির সাথে আপনার সংস্করণটি পরিবর্তন করুন।

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