সুরকারের মাধ্যমে সিমফনি ২.৩.x ইনস্টল করার সময় লিব-আইকিউ নির্ভরতা নিয়ে সমস্যা


112

সুরকার ব্যবহার করে সিমফনি ২.২.x ইনস্টল করতে আমার কোনও সমস্যা হয়নি, আমি সবসময় কেবলমাত্র http://symfony.com/download এ স্থিতিশীল সংস্করণটি অনুলিপি করেছি ।

composer create-project symfony/framework-standard-edition myproject/ 2.2.1

(আমি বিশ্বব্যাপী সুরকার ইনস্টল করেছি)
প্রায় ২.৩.০-আরসি 1 সম্পর্কে কৌতূহলী আমি বুঝতে পেরেছি এটি সহজেই চলে যাবে:

composer create-project symfony/framework-standard-edition mynewerproject/ 2.3.0-RC1

তবে নিম্নলিখিত ত্রুটিগুলি দ্বারা বন্ধ হয়ে গেছে:

Your requirements could not be resolved to an installable set of packages.

Problem 1
    - symfony/icu v1.2.0-RC1 requires lib-icu >=4.4 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
    - symfony/icu v1.1.0-RC1 requires lib-icu >=3.8 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
    - symfony/symfony v2.3.0-RC1 requires symfony/icu >=1.0,<2.0 -> satisfiable by symfony/icu[v1.1.0-RC1, v1.2.0-RC1].
    - Installation request for symfony/symfony 2.3.* -> satisfiable by symfony/symfony[v2.3.0-RC1].

আমার কি কমপোজার.জসন ফাইলটি টুইট করতে হবে?


সমাধান আপডেট

আমি পিএইচপি ইন্টেল এক্সটেনশন অনুপস্থিত যা লাইব-আইকিউ সরবরাহ করে

এত সহজ, ইনস্টল করুন এবং ইন্টেল এক্সটেনশনটি কনফিগার করুন। পিএইচপি 5.3 হিসাবে ইন্টেল এক্সটেনশনটি ডিফল্টরূপে বিতরণ করা হয়, তবে এমএএমপি এর মতো কিছু বিতরণে ইন্টেল নেই তাই আপনাকে এটি অর্জন করতে হবে। আমি নাশপাতি ব্যবহার করেছি :

আমার পদক্ষেপগুলি:

  • ইন্টেল এক্সটেনশনটি ইনস্টল করুন (পিইসিএল দ্বারা রক্ষণাবেক্ষণ করা): $ pear install pecl/intl- আপনাকে প্রথমে পিয়ারের চ্যানেলটি যুক্ত করতে হতে পারে।
  • আপনি যদি এমএএমপি ব্যবহার করেন এবং কখনও নাশপাতি / পেপেল চেক লুলাবোটের সহায়ক ব্লগ পোস্টের সাথে কাজ করেন না ; MAMP পিএইচপি উৎস অর্ণবপোত না, তাই আপনি করতে হবে আপনার পিএইচপি সংস্করণ জন্য উৎস ডাউনলোড এবং মধ্যে উৎস সরান /Applications/MAMP/bin/php/php[version]/include/php(ব্লগ পোস্ট মধ্যে আবৃত হিসাবে)
  • পেয়ার আমার php.ini খুঁজে পেল না, তাই আমাকে নিজেই extension=intl.sophp.ini এ যুক্ত করতে হয়েছিল to এমএএমপিতে আপনি ফাইল> সম্পাদনা টেম্পলেট> পিএইচপি। [সংস্করণ] .ini এ গিয়ে সহজেই php.ini সম্পাদনা করতে পারেন ini

কমান্ড লাইন:

  • সুরকার বা সিমফোনির কনসোল সিএলআই phpব্যবহার php.iniকরার সময় আপনারও ইন্টেল লাগবে এবং যেহেতু সিএলআই সাধারণত আলাদা ব্যবহার করে আপনি সেখানে এক্সটেনশান নির্দেশকে যুক্ত করতে চান। আপনার সিএলআইয়ের php.ini সন্ধান করার জন্য কেবল $ php -i |grep php\.iniফাইলের পথটি আবিষ্কার করতে এবং extension=intl.soসেই পিএইচপি.আইএনই যুক্ত করতে পারেন ।
  • ইন্টেল ইনস্টল করা আছে কিনা তা পরীক্ষা করতে আপনি $ php -mউপলব্ধ মডিউলগুলি পরীক্ষা করতে পারেন ।

আপনি কোন ওএস ব্যবহার করছেন? তারপরে আমি কীভাবে আপনার ইনটেল এক্সটেনশন আপডেট করব সে সম্পর্কিত তথ্য সরবরাহ করতে পারি।
নিকোলাই ফ্রিলিচ

এটি পিএইচপি 5.2.x সামঞ্জস্যের জন্য পেকল / ইন্টেল ব্যবহার করবেন না। পিএইচপি 5.3 হিসাবে, ইন্টেল একটি মূল এক্সটেনশন।
জের্মে ভিইলেন্ডেন্ট

2
@ জেরোমেভিল্যান্ডেন্ট মনে হচ্ছে বর্তমান এমএএমপি বিতরণটি ইন্টেল বান্ডিল করে না যা আপনাকে কেবল এটি নির্মাণের জন্য পিইসিএল
মার্ক ফক্স

উত্তর:


118

আপনার পিএইচপি- ইনটেল এক্সটেনশন আপডেট করুন , সেখান থেকে আইকিউ ত্রুটিটি এসেছে!

sudo aptitude install php5-intl                 // i.e. ubuntu
brew install icu4c                              // osx

পাশাপাশি এক্সপ্লোরেশনটি php.ini এ সক্ষম এবং সঠিকভাবে কনফিগার করা আছে কিনা তা পরীক্ষা করুন।

(ইঙ্গিত: পিএইচপি-ক্লিপ কখনও কখনও পৃথক php.ini ব্যবহার করে)

php.ini

extension=intl.so       ; *nix
extension=php_intl.dll  ; windows

[intl]
intl.default_locale = en_utf8
intl.error_level = E_WARNING

যদি এক্সটেনশনটি সফলভাবে সক্ষম করা হয়েছে তবে আপনার টার্মিনাল থেকে আপনার phpinfo()অ্যান্ড চেক করুন php -m

পিএইচপি থেকে আপনার বর্তমান ইন্টেল সংস্করণগুলি এর সাথে পরীক্ষা করুন:

Intl::getIcuVersion();
Intl::getIcuDataVersion();

মনোযোগ: আর প্রয়োজন নেই ( ইতিমধ্যে সিমফনি ২.৩ প্রকাশিত হয়েছে )

আপনার নির্ভরতার সাথে ন্যূনতম স্থায়িত্বের পতাকাটি @ দেবদেব বা @ সিআরকে যুক্ত করুন দয়া করে:

composer create-project symfony/framework-standard-edition mynewerproject/ 2.3.*@dev 

সুরকারে ডিফল্ট স্থিতিশীল স্থিতিশীল যা কোন সিমফনি ২.৩ শাখা বর্তমানে নেই (এটি @ সিআরসি)। এখানে আরও একটি স্থায়িত্ব পতাকা পড়ুন ।


দুর্দান্ত নিবন্ধ। সুরকার ডকুমেন্টেশন আমাকে কিছু স্থির করে নিল যদি স্থিরতা পতাকাটি কার্যকর হয়।
মার্ক ফক্স

আমি পিয়ার / পিইসিএল এর মাধ্যমে পিএইচপি-ইন্টেল ইনস্টল করেছি। কোনও কারণে INTL::…ব্যর্থ হয়। তবে, আমি ব্রাউজারে phpinfo () এর মাধ্যমে দেখতে পাই যে ইন্টেল ইনস্টল করা আছে এবং আইসিইউ সংস্করণটি 49.x। যাইহোক, সুরকার এখনও একই ত্রুটি বার্তায় ব্যর্থ।
মার্ক ফক্স

কোন অপারেটিং সিস্টেম? উদাহরণস্বরূপ উবুন্টুতে "sudo প্রবণতা ইনস্টল করুন php5-intl"। php.ini তে এক্সটেনশন সক্ষম হয়েছে, কমান্ডলাইন থেকে পিএইচপি-এম দিয়ে দৃশ্যমান?
নিকোলাই ফ্রিলিচ

1
ম্যাক ওএসএক্স 10.7.5 - আমি যখন চালনা php -mকরি আমি ইন্টিএল দেখতে পাই না। আমি জানি এটি ওয়েবসভারে কাজ করে তবে কমান্ড লাইনে এটি স্বীকৃত নয়। সুতরাং… আমাকে কমান্ড লাইনে যুক্ত করতে হবে?
মার্ক ফক্স

আমি হোমব্রিউয়ের মাধ্যমে ইনস্টল করেছি, তবে php -mএখনও সিএলআই থেকে সনাক্ত করতে পারি না?
মার্ক ফক্স

21

অনেক অ্যাপ্লিকেশন কেবল "এন" লোকালে সমর্থন করবে এবং অনুবাদ ক্ষমতা বা পিএইচপি-ইনটেলের প্রয়োজন হবে না। যদি এটি আপনি হয় বা আপনি নিজের সার্ভারে পিএইচপি-ইনটেল ইনস্টল করতে না পারেন তবে আপনি স্পষ্টভাবে আপনার মধ্যে symfony / icu ~ 1.0 যুক্ত করতে পারেন composer.json। 1.0 এর জন্য পিএইচপি-ইনটেল প্রয়োজন হয় না, যেখানে 1.1+ রয়েছে।

আপনার যদি অনুবাদ বৈশিষ্ট্যগুলির প্রয়োজন না হয়:

$ php bin/composer.phar require symfony/icu ~1.0

এই ঘোষণা ছাড়াই এবং সিমফনি / সিমফনি ২.৩ ইনস্টল করার চেষ্টা না করে সুরকার সিমফনি / আইসিইউ ~ 1.2 ইনস্টল করার চেষ্টা করতে পারেন যার জন্য আপনাকে পিএইচপি-ইনটেল ইনস্টল করতে হবে।

এটি স্পষ্টভাবে "আইসিইউ এবং ডিপ্লোয়মেন্ট সমস্যাগুলি" এর অধীনে সিমফনি ইন্টেল কম্পোনেন্টের ডক্সগুলিতে আরও বিস্তৃতভাবে আচ্ছাদিত ।


1
এর জন্য ধন্যবাদ. এটি অযৌক্তিক যে সিম্ফনি 2 এমন কোনও বৈশিষ্ট্যটির উপর ইনস্টলেশন বন্ধ করে দেয় যা alচ্ছিক হওয়া উচিত এবং এটি অনেক পরিবেশে ইনস্টলড নয়।
আকায়রা

দুঃখিত, তবে এটি সত্য নয়। সিমফনি ২.৩ ইনস্টল করার ফলে কনফিগারেশনটি স্বতঃস্ফূর্ত হবে এবং সঠিক আইকিউ-উপাদান নির্ধারণ করবে। এটি বন্ধ হবে না।
টুইটিনি

POC composer.json: "require":{"symfony/symfony": "v2.3.3"}}ফলাফল: প্যাকেজ তথ্যের ইনস্টল নির্ভরতা সঙ্গে'Loading সুরকার ভান্ডার (তত্সহ প্রয়োজন-DEV) - ইনস্টল করার প্রক্রিয়া PSR / লগ (1.0.0) ডাউনলোড: 100% - ইনস্টল করার প্রক্রিয়া পল্লব / পল্লব (v1.13.2) ডাউনলোড: 100% - মতবাদ / সাধারণ ইনস্টল করা (২.৩.০) ডাউনলোড করা হচ্ছে: ১০০% - সাইমফনি ইনস্টল করা / সাইফনি (ভি ২.৩.৩) ডাউনলোড হচ্ছে: ১০০% - সিম্ফনি ইনস্টল করা / আইসিইউ (ভি ১.০.০) ডাউনলোড হচ্ছে: ১০০% রাইটিং লক ফাইল
অটলয়েড

1
ডক্সে বর্ণিত হিসাবে, সমস্যাটি উদ্ভূত হয় যখন composer.lockপরিবেশের মধ্যে ইন্টেলের বিভিন্ন সংস্করণ (বা অনুপস্থিতি) এর সাথে ভাগ করা হয়।
তামিলেন

এর জন্য ধন্যবাদ! আমার আঙ্গুলগুলি অতিক্রম করে আমি আমার সিমফনি 2 প্রকল্পটি এমন এক ক্লায়েন্টের জন্য চালিয়ে পেতে পারি যিনি এখনও গোড্যাডিতে রয়েছেন
ম্যাট

15

এটি বা অনুরূপ সমস্যা সম্পর্কিত একটি সমাধান এখানে পাওয়া যাবে: আইসিইউ এবং স্থাপনার সমস্যা

সুরকারের আচরণটি সঠিক আইকিউ-উপাদানটি নির্বাচন করে বুদ্ধিমান হওয়া উচিত:

  • symfony / icu 1.0। *: যখন ইন্টেল এক্সটেনশন পাওয়া যায় না
  • সিমফনি / আইকিউ ১.১। *: যখন আইটিইউ ৪.০ বা তার বেশি সংখ্যার সাথে ইন্টেল সংকলিত হয়
  • symfony / icu 1.2। *: যখন আইটিইউ 4.4 বা ততোধিক সংখ্যার সাথে ইন্টেল সংকলিত হয়

সিমফনি ২.৩ ইনস্টল করার ক্ষেত্রে (তাত্ত্বিকভাবে) কোনও ত্রুটি থাকা উচিত। কোন প্রসারিত-এক্সটেনশন ছাড়া।

আপনি যখন আটকে যেতে পারেন যখন আপনার বিকাশ-পরিবেশটি আপনার প্রযোজনা-সার্ভার থেকে পৃথক হয় নিবন্ধে উল্লিখিত:

  • বিকাশ মেশিনগুলি আইসিইউ ৪.৪ বা তার চেয়ে বেশি সংকলিত হয় তবে সার্ভারটি সংকলিত হয়> ৪.৪ এর চেয়ে কম আইসিইউ সংস্করণ সহ
  • ইন্টেল এক্সটেনশনটি ডেভলপমেন্ট মেশিনে উপলব্ধ তবে সার্ভারে নেই।

যখন আপনার প্রডাকশন-সার্ভারে কোনও রুট-অ্যাক্সেস নেই আপনি এই নিবন্ধে উল্লিখিত হিসাবে এটি ঠিক করতে পারেন fix (টুইটার কম্পোজার.জসন)

আশা করি এই অতিরিক্ত তথ্যটি যেমন বিভিন্ন পরিবেশের সাথে এই বিশেষ ক্ষেত্রে আমাকে সহায়তা করেছে তেমন সহায়তা করেছে।


9

ম্যাক ওএস মাভারিক্স পিএইচপি 5.4.17 এর সাথে ইন্টেল ছাড়াই আসে। এটি পেতে, আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে:

brew install icu4c
sudo pecl install intl 
The path to the ICU libraries and headers is: /usr/local/opt/icu4c/
Edit /etc/php.ini and add extension=intl.so to the end.

6

আমি জানি যে এই উত্তরটি এই ব্যক্তির সমস্যার সঠিক উত্তর নাও হতে পারে তবে এটি একই শিরোনামযুক্ত আমার সমস্যার সমাধান ছিল। আমি php.ini এর ইনটেল এক্সটেনশন সক্ষম করে এবং সুরকারকে আপগ্রেড করে নিজের জন্য এই সমস্যাটি সমাধান করতে সক্ষম হয়েছি।

সুরকারকে আপগ্রেড করা হচ্ছে।

php composer.phar self-update

এই লাইন থেকে মন্তব্য সরান (php.ini এ):

extension=php_intl.dll

এবং (পিএইচপি.এন.ইআই) এর মধ্যে [ইন্টেল] এর নীচে এই দুটি লাইন মন্তব্য মুছে ফেলুন:

[intl]
intl.default_locale = en_utf8
intl.error_level = E_WARNING

এবং অবশ্যই apache2 পুনরায় চালু করুন। :)

অতিরিক্ত তথ্য:

আপনি যদি হোমব্রাবির সাথে ম্যাক এবং ইনস্টলড পিএইচপি ব্যবহার করেন তবে এই পদক্ষেপগুলি অনুসরণ করুন:

(পিএইচপি 5.4)

$ brew install php54-intl

(পিএইচপি 5.5)

$ brew tap josegonzalez/php
$ brew tap homebrew/dupes
$ brew install josegonzalez/php/php55-intl
$ sudo apachectl restart

অ্যাপাচি পুনরায় চালু করুন।


1
দেখে মনে হচ্ছে এটি উইন্ডোজ ফিক্স ;-)
মার্ক ফক্স

1
হ্যাঁ, আমি উইন্ডোজগুলি ব্যবহার করছি, তবে এটি একটি "উইন্ডোজ ফিক্স" নয় এটি একটি পিএইচপি কনফিগারেশন এবং সুরকার আপডেট ফিক্স। লিনাক্স বা ম্যাক বাক্সে একই পদক্ষেপ নেওয়া দরকার হতে পারে।
লেটন ইভারসন 21

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

1
গুড পয়েন্ট মার্ক ফক্স। এখানে আমরা এটির যে কারও জন্য প্রয়োজন। আমি উইন্ডোজ 8 বাক্সে অ্যাপাচিফ্রেন্ডদের থেকে এক্সএএমপিপি স্ট্যাক ব্যবহার করছি। (সংস্করণ 1.8)
লেটন ইভারসন

1
আমার জন্য এটি এক্সএএমপিপি ব্যবহার করে এটি স্থির করেছে। এক্সটেনশানটি ইতিমধ্যে সক্ষম করা হয়েছিল, তবে এটি কেবলমাত্র [intl] intl.default_locale = en_utf8 intl.error_level = E_WARNING
d0001

5

প্রোডাকশন সার্ভারের প্রয়োজনীয় সংস্করণে আপনার কম্পোজার জেসনকে ঠিক করা আরও ভাল সমাধান। প্রথমে সার্ভারে আইসিইউ সংস্করণটি নির্ধারণ করুন: 1 2

$ php -i | grep ICU
ICU version => 4.2.1

তারপরে আপনার রচয়িতা.জসন ফাইলের আইসিইউ উপাদানটি একটি মিলিত সংস্করণে ঠিক করুন:

"require: {
    "symfony/icu": "1.1.*"
}

সংস্করণটি "1.0। " এ সেট করুন যদি সার্ভারটিতে ইন্টেল এক্সটেনশন ইনস্টল না করা থাকে; "1.1। " যদি সার্ভারটি আইসিইউ 4.2 বা তার সাথে কম সংকলিত হয়।

শেষ পর্যন্ত, চালান

php composer.phar update symfony/icu

আপনার বিকাশ মেশিনে, ব্যাপকভাবে পরীক্ষা করুন এবং আবার মোতায়েন করুন। নির্ভরতা ইনস্টলেশন এখন সফল হবে।

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