ruby on rails - Pg মণ ইনস্টল করার সময় 'libpq-fe.h হেডারটি খুঁজে পাচ্ছি না




ruby-on-rails ruby-on-rails-3 (20)

আমি Rails 3.1 প্রাক সংস্করণ রুবি ব্যবহার করছি। আমি PostgreSQL ব্যবহার করতে চান, কিন্তু সমস্যাটি পিজি মীম ইনস্টল করা হয়। এটা আমাকে নিম্নলিখিত ত্রুটি দেয়:

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

        /home/u/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/home/u/.rvm/rubies/ruby-1.9.2-p0/bin/ruby
    --with-pg
    --without-pg
    --with-pg-dir
    --without-pg-dir
    --with-pg-include
    --without-pg-include=${pg-dir}/include
    --with-pg-lib
    --without-pg-lib=${pg-dir}/lib
    --with-pg-config
    --without-pg-config
    --with-pg_config
    --without-pg_config


Gem files will remain installed in /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0 for inspection.
Results logged to /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0/ext/gem_make.out

আমি কিভাবে এই সমস্যা সমাধান করব?


Libpq-fe.h হেডারটি খুঁজে পাচ্ছি না

আমি CentOS 7.0.1406 এ নিম্নলিখিত কমান্ডগুলি সফল করে দিয়েছি :

~ % psql --version # => psql (PostgreSQL) 9.4.1
yum install libpqxx-devel
gem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config

বিকল্পভাবে , আপনি এই বিকল্পগুলির সাথে সর্বদা পজি ইনস্টল করার জন্য বান্ডলার কনফিগার করতে পারেন (পরিবেশ স্থাপনে বান্ডলার চালানোর জন্য সহায়ক)

  • bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config

CentOS 6.5 (সুইজ) এর অধীনে আমি একটি ফাইল তৈরি করেছি:

$ sudo touch /etc/profile.d/psql.sh

কন্টেন্ট সঙ্গে:

pathmunge /usr/pgsql-9.3/bin

এখানে উল্লেখ্য, আপনি আপনার PostgreSQL পাথটি pg_config ফাইল দিয়ে সেট করুন। আপনি এই কমান্ডটি দিয়ে এটি খুঁজে পেতে পারেন:

$ sudo find / -iname pg_config

ফাইল সংরক্ষণ করুন:

$ sudo chmod +x /etc/profile.d/ruby.sh

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

দ্রষ্টব্য: যে কোন সময় আপনি Bash কনফিগারেশন পরিবর্তন করেন - প্রোফাইল.d কনফিগারেশন পরিবর্তন করে - আপনাকে অবশ্যই Bash পুনরায় লোড করতে হবে।


FreeBSD (9.1) এ প্রয়োজনীয় প্যাকেজ / usr / port / database / postgresql-server * যা ইনস্টল করার পরে প্রয়োজনীয় শিরোনাম ফাইলটি ইনস্টল করবে যা "pg" র মণ ইনস্টল করতে ব্যর্থ হবে। এখানে এই উত্তরটি আমাকে সমাধান খুঁজে পেতে সাহায্য করেছে তবে প্যাকেজ নামগুলির পার্থক্যটি একটু অনুসন্ধানের প্রয়োজন।

আশা করি এটি একটি ফ্রিBSD সিস্টেমে "-dev" প্যাকেজ অনুসন্ধানের সময় মাথা খোঁচা কিছুটা এড়িয়ে চলতে সাহায্য করবে!


PostgreSQL সার্ভার ইনস্টল ছাড়া MacOS জন্য:

brew install libpq
gem install pg -- --with-pg-config="/usr/local/Cellar/libpq/9.6.6/bin/pg_config"

আমার ক্ষেত্রে এটি প্যাকেজ ছিল postgresql-server-dev-8.4 (আমি 11.04 (নত্তি নার্ভাল), 64 বিট)।


আমি gem install libpq-dev চেষ্টা করেছিলাম, কিন্তু আমি এই ত্রুটিটি পেয়েছি:

Can't find the 'libpq-fe.h header
*** extconf.rb failed ***

তবে আমি দেখেছি যে sudo apt-get সাথে ইনস্টল করা (যা আমি রুবে রুবি ব্যবহার করে এড়াতে চেষ্টা করি), অর্থাৎ

sudo apt-get install libpq-dev
# or
apt-get install postgres-server-dev-{pg.version}
# for postgresql 9.4 on Ubuntu 14.04

তারপর আমি করতে সক্ষম ছিল

gem install pg

সমস্যা ছাড়া।


আমি অবশেষে এই সমস্যা সমাধান, কিন্তু পূর্বে বর্ণিত পদ্ধতি ব্যবহার করে না।

brew install postgresql ব্যবহার করে, আমি এটি ইতিমধ্যে ইনস্টল করা হয়েছে যে খুঁজে বের করে, কিন্তু লিঙ্ক না।

  1. PostgreSQL ইনস্টল করা যেখানে খুঁজে বের করুন, এবং এটি মুছে দিন,

  2. তারপর আবার brew install postgresql ,

  3. brew link postgresql

  4. gem install pg


আমি অ্যামাজন লিনাক্স এ একই সমস্যা ছিল। আমি শিরোনাম libpq-fe.h খুঁজে পেতে পারে, কিন্তু যেকোনোভাবে এটি কাজ করে না।

এটি বিভিন্ন প্যাকেজগুলির বিভিন্ন সংস্করণ থেকে এসেছে যা যন্ত্রের বিভিন্ন ব্যবহারকারীর মাধ্যমে ইনস্টল করা হয়েছিল। PostgreSQL 9.2 এবং PostgreSQL 9.3 ইনস্টল করা হয়েছে। সুতরাং, লাইব্রেরি সহ আপনার PostgreSQL সংস্করণ নিশ্চিত করুন।

আমার জন্য, ম্যাজিক কমান্ড লাইন ছিল:

sudo yum install postgresql93 postgresql93-server postgresql93-libs postgresql93-contrib postgresql93-devel

উত্স: পোস্টগ্রেএসকিউএল 9.3, পোস্ট জিআইএস 2.1 এবং Yum এর সাথে pgRouting ইনস্টল করার জন্য প্রায় নির্বোধের নির্দেশিকা


আমি এই উত্তরটি খুঁজে পেয়েছি, এবং এটি আমার (ম্যাক ওএস) জন্য একমাত্র কাজ ছিল - প্রায় দুই দিনের জন্য গবেষণা করার পরে:

$ sudo su

$ env ARCHFLAGS="-arch x86_64" gem install pg

Building native extensions.  This could take a while...
Successfully installed pg-0.11.0
1 gem installed
Installing ri documentation for pg-0.11.0...
Installing RDoc documentation for pg-0.11.0...

স্ট্যাক ওভারফ্লো প্রশ্ন দেখুন PostgreSQL ক্লায়েন্ট লাইব্রেরি (libpq) খুঁজে পাচ্ছেন না


আমি একই সমস্যা ছিল, এবং এটি আমার জন্য এটি সংশোধন করা হয়েছে:

gem install do_postgres -- --with-pgsql-server-dir=/Applications/Postgres.app/Contents/MacOS --with-pgsql-server-include=/Applications/Postgres.app/Contents/MacOS/include/server

সূত্র:

https://gist.github.com/oisin/6562181


আমি শুধু OSX চলমান brew এবং [email protected] এই ছিল।

আমার ফিক্স এই ছিল:

CONFIGURE_ARGS="with-pg-include=/usr/local/opt/[email protected]/include/" bundle install

আমি সম্প্রতি ম্যাক ওএস এক্স v10.10 ( জোসেমাইট ) তে আপগ্রেড করেছি এবং পিজি মোম নির্মাণে সমস্যা হয়েছে।

ত্রুটি রিপোর্ট সাধারণত ছিল:

Using config values from /usr/local/bin/pg_config
checking for libpq-fe.h... *** extconf.rb failed ***

আমার সমাধান ছিল gem uninstall pg এবং তারপর সর্বশেষ সঙ্গে মণি প্রতিস্থাপন bundle update pg । আমি brew update; brew upgrade চালানো হয়নি brew update; brew upgrade Yosemite ইনস্টল করার পরে আমি আগে ইনস্টল করা প্যাকেজের সর্বশেষ সংস্করণ পেতে ইনস্টল করার পরে brew update; brew upgrade


উবুন্টুতে মনে হচ্ছে যে হেডারটি libpq-dev প্যাকেজের অংশ (অন্তত নিম্নোক্ত উবুন্টু সংস্করণগুলিতে: 11.04 ( libpq-dev ), 10.04 (লুসিড লিনক্স), 11.10 (বেতার ওসেলট), 12.04 (নির্দিষ্ট পঙ্গোলিন), 14.04 ( বিশ্বস্ত Tahr) এবং 18.04 (বায়োনিক বীবর)):

...
/usr/include/postgresql/libpq-fe.h
...

সুতরাং আপনার অপারেটিং সিস্টেমের জন্য libpq-dev বা এর সমতুল্য ইনস্টল করার চেষ্টা করুন:

  • উবুন্টু / ডেবিয়ান সিস্টেমগুলির জন্য: sudo apt-get install libpq-dev
  • Red Hat Linux (RHEL) সিস্টেমে: yum install postgresql-devel
  • ম্যাক Homebrew : brew install postgresql
  • ম্যাক MacPorts PostgreSQL এর জন্য: ম্যাক gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
  • OpenSuse : zypper in postgresql-devel
  • ArchLinux : pacman -S postgresql-libs

একটি ম্যাকে, আমি এই কোডটি ব্যবহার করে সমাধান করেছি:

gem install pg -v '0.18.4' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

ম্যাক অপারেটিং সিস্টেমেও একই সমস্যা ছিল, কিন্তু আমি টার্মিনালে নিম্নলিখিত ব্যবহার করে পোস্টগ্রেএসকিউএল মীমটি সহজে ইনস্টল করেছি:

ARCHFLAGS="-arch x86_64" gem install pg

(আমি brew install postgresql সঙ্গে প্রথম PostgreSQL brew install postgresql ।)


ম্যাক ওএস এক্স এ এই মত চালানো:

gem install pg -- --with-pg-config=***/path/to/pg_config***

***/path/to/pg_config*** পাথ


CentOS 6.4 জন্য,

yum install postgresql-devel
gem install pg

ভাল কাজ!


ওএস এক্স 10.9 (ম্যাভারিক্স) -এ, আমি rvm reinstall করেছি, এবং তারপর আমার রুবি rvm reinstall করতে rvm reinstall । আমি এখন খুশী :)


AltLinux প্যাকেজের জন্য postgresqlx.x-devel (আমার ক্ষেত্রে postgresql9.5-devel ) ইনস্টল করা আবশ্যক:

apt-get install postgresql9.5-devel

libpq-fe.h আপনার PostgreSQL ইনস্টলেশনের উপর নির্ভর করে (যা আপনি এটি ইনস্টল করার উপর নির্ভর করে)। আপনার মেশিনে libpq-fe.h ফাইলটি খুঁজতে অবস্থান locate ( http://en.wikipedia.org/wiki/Locate_%28Unix%29 )। এটি বিদ্যমান থাকলে, এটি আপনার PostGreSQL ইনস্টলেশনের include ডিরেক্টরিতে থাকবে।

$ locate libpq-fe.h
/Library/PostgreSQL/9.1/include/libpq-fe.h

bin ডিরেক্টরি, যা pg_config ধারণ pg_config , include ডিরেক্টরি হিসাবে একই ডিরেক্টরিতে থাকবে। ত্রুটিটি প্রস্তাবিত হিসাবে, মীম ইনস্টল করার জন্য --with-pg-config বিকল্পটি ব্যবহার করুন:

$ gem install pg --with-pg-config="/Library/PostgreSQL/9.1/bin/pg_config"

উল্লেখ্য, যদি আপনি কোনও অবস্থান locate বা PostgreSQL ইনস্টল করার পরে আপডেট না করেন তবে আপনাকে updatedb চালানোর প্রয়োজন হতে পারে।