হোমব্রু ইনস্টলের পরে কীভাবে ওএস এক্স সিংহের অনুমতি ত্রুটিগুলি সমাধান করবেন resolve


9

আমি স্নো চিতাবাঘ থেকে সিংহকে আপগ্রেড করেছি এবং হোমব্রু ইনস্টল করার চেষ্টা করছি। তবে ইনস্টলেশনের পরে, আমি brew doctorইনস্টলেশন সংক্রান্ত নির্দেশাবলী অনুসারে চালনা করি এবং / usr / স্থানীয় ডিরেক্টরিগুলি লিখনযোগ্য নয় এমন ইঙ্গিত করে একটি ত্রুটি সিরিজ দেখি। উদাহরণ স্বরূপ:

Error: /usr/local/share isn't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew.

If a brew tries to write a file to this directory, the install will
fail during the link step.

You should probably `chown` /usr/local/share

আমি এইগুলি একগুচ্ছ ডিরেক্টরিতে পেয়েছি:

You should probably `chown` /usr/local/include

You should probably `chown` /usr/local/share

You should probably `chown` /usr/local/share/man

এই ত্রুটিটি কেন আসছে তা আমি বুঝতে পারি না, কারণ দেখা যাচ্ছে যে আমি ইউনিক্স গোষ্ঠীর অংশ যার এই ডিরেক্টরিতে লেখার অনুমতি রয়েছে:

Mini:~ felciano$ ls -ld /usr/local/share
drwxrwxr-x  4 root  admin  136 May 13 15:53 /usr/local/share
Mini:~ felciano$ whoami
felciano
Mini:~ felciano$ dscl . -read /Groups/admin GroupMembership
GroupMembership: root felciano
Mini:~ felciano$

আমি কী মিস করছি?


প্রস্তাবিত হিসাবে আপনি কেন এই ডিরেক্টরিগুলি আপনার ব্যবহারকারীর নাম হিসাবে "ছাঁটাই" করবেন না? এগুলি যাইহোক "রুট" এর অন্তর্ভুক্ত হওয়া উচিত নয়। একাধিক ব্যবহারকারীর জন্য আপনি গ্রুপের অনুমতিগুলিও পরিবর্তন করতে পারেন: আপেল.স্ট্যাকেক্সেঞ্জ
কিউপি

@ আইলসমিট: আমার ঠিক একই সমস্যা আছে। তবে, এই মেশিনে একাধিক প্রশাসক ব্যবহারকারী থাকলে তার পরিবর্তে আমার কেন /usr/localউচিত তা আমি দেখতে পাচ্ছি না । এছাড়াও, আমার পক্ষে অবস্থানগুলি সম্পর্কে লেখার জন্য অভিযোগ করা সম্ভব । অন্য কোন ধারণা? brew doctor
মিগড

উত্তর:


7

সম্পাদনা: হোমব্রিউতে এখন সমস্যাটি ঠিক করা হয়েছে:

আপনি যদি এখনও সমস্যাটি অনুভব করেন তবে হোমব্রিউকে এভাবে আপডেট করুন:

brew update

আপনি যদি সমস্যাটি জানতে চান তবে আমি আমার আসল উত্তরটি নীচে রেখেছি।


আপাতত পার্মিসন ইস্যুটি উপেক্ষা করুন

আমি ঠিক একই সমস্যাটি অনুভব করছি এবং আমার মতে সমস্যাটি brew doctorআপনার এবং আমার ইনস্টলেশনগুলির পরিবর্তে।

আমি মনে করি আপনার মালিকানা পরিবর্তনের পরিবর্তে বিষয়টি উপেক্ষা করা উচিত /usr/local। বিকল্পভাবে, brew doctorকোনও ফিক্স প্রকাশ না হওয়া পর্যন্ত আপনি আপনার স্থানীয় স্ক্রিপ্টটি ঠিক করতে পারেন । নিচে দেখ.

/usr/localনির্দিষ্ট কোনও ব্যবহারকারীর মালিকানাধীন করা আমি এটিকে সঠিক মনে করি না । এই মেশিনে আমার একাধিক অ্যাডমিন ব্যবহারকারী রয়েছে। আপনার মালিক এবং গোষ্ঠী হিসাবে /usr/localমালিকানা ছেড়ে দেওয়া উচিত root:admin

আমার তদন্ত

আপনার মত আমার কাছে এমন একটি আছে /usr/localযা আমার ব্যবহারকারীর দ্বারা নিখুঁতভাবে লিখতে পারা যায় যা adminগোষ্ঠীর সদস্যও :

$ ls -ld /usr/local/
drwxrwxr-x  14 root  admin  476 22 Jun 23:33 /usr/local/
$ whoami
mgd
$ dscl . -read /Groups/admin GroupMembership
GroupMembership: root mgd rgd

আসুন পরীক্ষা করে দেখি যে ডিরটি সত্যিই লেখার যোগ্য:

$ ls -l /usr/local/newfile
ls: /usr/local/newfile: No such file or directory
$ touch /usr/local/newfile
$ ls -l /usr/local/newfile
-rw-r--r--  1 mgd  admin  0 23 Jun 14:52 /usr/local/newfile

কোডটিতে আরও তদন্ত brew doctorআমার সিদ্ধান্তে পৌঁছেছে যে রুবি ফাংশন Pathname.writable?ব্যবহারের ফলে সমস্যা দেখা দিচ্ছে। এই ইন্টারেক্টিভ রুবি সেশনটি বিবেচনা করুন:

$ irb
>> require 'pathname'
=> true
>> Pathname('/usr/local').writable?
=> false

ফাংশন Pathname.writable?বলে যে /usr/localএটি লিখিত হয় না যদিও আমরা জানি এটি রয়েছে।

Pathname.writable_real?পরিবর্তে ব্যবহার করা সঠিক ফলাফল দেয় - এটি বলছে যে dir লিখনযোগ্য:

>> Pathname('/usr/local').writable_real?
=> true

এটি স্থির করা উচিত /usr/local/Library/Homebrew/cmd/doctor.rb। ঠিক করার জন্য অপেক্ষা করার সময় আপনি এটি নিজের ইনস্টলেশনতে এটি ঠিক করতে পারেন।

দুটি ফাংশনের মধ্যে পার্থক্য হ'ল ( এখানে এবং এখানে রুবি ডক্স অনুসারে ):

লিখনযোগ্য? ( ফাইলের নাম ) → সত্য বা মিথ্যা: যদি এই ফাইলটির কার্যকর ব্যবহারকারী আইডি দ্বারা নামকরণ করা ফাইলটি লিখিত হয় তবে সত্যটি প্রত্যাবর্তন করে।

Writable_real? (file_name) → সত্য বা মিথ্যা: যদি এই ফাইলটির প্রকৃত ব্যবহারকারী আইডি দ্বারা নামকরণ করা ফাইলটি লিখিত হয় তবে সত্যটি প্রত্যাবর্তন করে।


এমজিডির তদন্ত এবং স্পষ্টতার জন্য থাম্বস আপ ... এটি স্পট অন! দেখা যাচ্ছে যে প্রায় এক বছর আগে গিথুব ডটকম এ একই রকম প্রশ্ন উত্থাপিত হয়েছিল , তবে কখনই (সঠিকভাবে?) সমাধান করা হয়নি, কমপক্ষে ব্যবহারের মাধ্যমে নয় writable_real?... সম্ভবত এটি কি সময় টানার অনুরোধের সময় ?! ?! :-)
pvandenberk


0

আমি বিশ্বাস করি আপনার কেবল এটির প্রয়োজন:

brew update

তারপরে brew doctorআবার চেষ্টা করুন ।

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

অন্যের সুবিধার জন্য: মনে রাখবেন যে এটি কাজ করার জন্য আপনাকে প্রশাসক হিসাবে লগ ইন করতে হবে।


0

আমি আইলমিট এবং ফিল এম এর পরামর্শগুলির সংমিশ্রণটি অনুসরণ করেছি: আমি এই ডিরেক্টরিগুলি আমার ব্যবহারকারী নামটিতে ছড়িয়েছি, তারপরে brew updateআবার দৌড়ে এসেছি brew doctor। এটি সমস্ত ত্রুটি বার্তা এবং ব্রিউয়ের ইনস্টলেশন থেকে মুক্তি পেয়েছে এখন মনে হচ্ছে এটি দুর্দান্তভাবে কাজ করে work দুজন কেই ধন্যবাদ!


0

@ এমজিডি'র তদন্ত এবং স্পষ্টতার জন্য থাম্বস আপ ... এটি স্পট!

দেখা যাচ্ছে যে প্রায় এক বছর আগে গিথুব ডটকম এ একই রকম প্রশ্ন উত্থাপিত হয়েছিল , তবে কখনই (সঠিকভাবে?) সমাধান করা হয়নি, কমপক্ষে ব্যবহারের মাধ্যমে নয় writable_real?... সম্ভবত এটি কি সময় টানার অনুরোধের সময় ?! ?! :-)

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