হোমব্রু অনুমতি এবং একাধিক ব্যবহারকারীর আপডেট আপডেটের প্রয়োজন


79

আমি সিংহে প্যাকেজ ইনস্টলগুলি পরিচালনা করতে হোমব্রেউ ব্যবহার করছি (সিংহ সার্ভার আসলে তবে এটি কোনও বিষয় নয়)

হোমব্রিউ এক ব্যবহারকারীর অধীনে ইনস্টল করা হয়েছিল। এখন অন্য কোনও ব্যবহারকারী প্যাকেজ যুক্ত করতে চান এবং হোমব্রিউ খুশি নয়:

$ brew update
fatal: Unable to create '/usr/local/.git/index.lock': Permission denied
Error: Failure while executing: git checkout -q master

এটাকে কি খারাপ বলে মনে করা হয়? আমি ভেবেছিলাম /usr/local/আপনার ইনস্টলগুলির জন্য ব্যবহার করার একটি সুবিধা হ'ল আপনার প্রয়োজন নেই sudo। তবে স্পষ্টতই আমরা করি।

যে সমস্ত ব্যবহারকারীকে হোমব্রিউ পরিবর্তন করতে হবে তারা প্রশাসক গোষ্ঠীর সদস্য । সুতরাং, আমি chmod -R g+w /usr/local/তবে ভয় পেতে পারি যে এটি কিছু উদ্রেক করবে বা সুরক্ষা সমস্যা তৈরি করবে?!?

পরামর্শ?

$ ls -al /usr/local/.git/
total 432
drwxr-xr-x  14 ladmin  admin     476 Feb 24 11:48 .
drwxrwxr-x  14 root    admin     476 Feb  9 15:27 ..
-rw-r--r--   1 ladmin  admin      94 Feb 24 11:48 FETCH_HEAD
-rw-r--r--   1 ladmin  admin      23 Feb 24 11:48 HEAD
-rw-r--r--   1 ladmin  admin      41 Feb  9 15:28 ORIG_HEAD
drwxr-xr-x   2 ladmin  admin      68 Feb  9 15:27 branches
-rw-r--r--   1 ladmin  admin     218 Feb  9 15:27 config
-rw-r--r--   1 ladmin  admin      73 Feb  9 15:27 description
drwxr-xr-x  12 ladmin  admin     408 Feb  9 15:27 hooks
-rw-r--r--   1 ladmin  admin  200272 Feb 24 11:48 index
drwxr-xr-x   3 ladmin  admin     102 Feb  9 15:27 info
drwxr-xr-x   4 ladmin  admin     136 Feb  9 15:27 logs
drwxr-xr-x   4 ladmin  admin     136 Feb  9 15:27 objects
drwxr-xr-x   5 ladmin  admin     170 Feb  9 15:27 refs

উত্তর:


100

এটাকে কি খারাপ বলে মনে করা হয়? আমি ভেবেছিলাম আপনার ইনস্টলগুলির জন্য / usr / স্থানীয় / ব্যবহার করার একটি সুবিধা হ'ল আপনার সুডোর দরকার নেই। তবে স্পষ্টতই আমরা করি।

হোমব্রিউ, ডিফল্টরূপে, একক-ব্যবহারকারীর অ্যাক্সেসের জন্য নিজেকে প্রস্তুত করে /usr/local। সুতরাং একাধিক ব্যক্তির দ্বারা পরিচালিত হওয়ার জন্য আপনাকে ডিরেক্টরি ট্রিতে অনুমতিগুলি খুলতে হবে।

হোমব্রু পরিচালনা করতে লোকদের এখানে সুডো চালানোর দরকার নেই। আপনার কেবল কিছু অনুমতি পরিবর্তন করতে হবে। যেহেতু আপনার ইতিমধ্যে রয়েছে:

যে সমস্ত ব্যবহারকারীকে হোমব্রিউ পরিবর্তন করতে হবে তারা প্রশাসক গোষ্ঠীর সদস্য।

আপনার আরও দুটি জিনিস করা দরকার:

  1. নিশ্চিত করুন যে সমস্ত কিছু /usr/localগ্রুপের অন্তর্গত admin; এবং
  2. গোষ্ঠী থেকে যে কেউ যে কোনও adminকিছুতে লিখতে পারেন তা নিশ্চিত করুন /usr/local

এক্ষেত্রে পরিবর্তনগুলি হ'ল:

chgrp -R admin /usr/local
chmod -R g+w /usr/local
chgrp -R admin /Library/Caches/Homebrew
chmod -R g+w /Library/Caches/Homebrew

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

 dseditgroup -o edit -a <username> -t user admin

(সেই অধিকারগুলি মঞ্জুর করার জন্য সেই ব্যবহারকারীর আবার লগইন করতে হবে)।

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


1
আমার একই সমস্যা আছে এবং গ্রুপের মালিকানা এবং প্রস্তাবিত হিসাবে গোষ্ঠী অনুমতিগুলি পরিবর্তন করেছি। brew doctorএখনও অভিযোগ করে যে উদাহরণস্বরূপ /usr/local/includeলিখনযোগ্য নয় যদিও আমি নিজে নিজে যাচাই করতে পারি যে আমি এখানে একটি ফাইল লিখতে পারি (যেমন ব্যবহার করে echo "hello" > /usr/local/include/testfile)। আমি অ্যাডমিন গ্রুপের সদস্য। ডিবাগিংয়ের জন্য কোনও ধারণা?
এমজিডি

2
এই সমাধানটি আমার পক্ষে কাজ করেছে, তবে এটি হোমব্রিউয়ের স্থানীয় ক্যাশে সম্বোধন করে না। আমি দৌড়ানোর পরামর্শ দিই:chmod -R g+w /Library/Caches/Homebrew
ড্র দারা-আব্রামগুলি

আমি এটিতে একটি ব্লগ পোস্ট পেয়েছি। Blog.strug.de/2012/06/my-homebrew-mult-user-setup এবং সেই কাঁচা.githubusercontent.com/steshaw/shelly/master/bin/…
স্টিভেন শ

2
মনে হচ্ছে হোমব্রিউ এখন ক্যাশের বর্তমান ব্যবহারকারীর ডিরেক্টরিতে স্থানান্তরিত করেছে। সবেমাত্র দেখেছেন: ==> মাতালকরণ / গ্রন্থাগার / ক্যাশে / হোমব্রিউ / ইউজার / ব্লুচেইন.এডমিন / লাইব্রেরি / ক্যাচস / হোমব্রিউতে ... যখন একটি ব্রি আপডেট করা হচ্ছে। যদি আমি এটি সঠিকভাবে ব্যাখ্যা করছি তবে এর অর্থ হ'ল হোমব্রিউয়ের জন্য বিশ্বব্যাপী রচনামূলক ক্যাশে দির থাকার বিষয়ে আমাদের আর চিন্তার দরকার নেই।
এন্ডারেথ

এই সমস্যা সহ উচ্চ সিয়েরা ব্যবহারকারীদের জন্য আপনাকে এখন এটি ব্যবহার করতে হবে: sudo chown -R $(whoami) $(brew --prefix)/*উপরের আদেশগুলি পরিবর্তে। এখান
জেফ ক্রেনেনবার্গ

7

আপনি প্রশাসক গোষ্ঠী বা অন্য কোনও ব্যবহারকারী গোষ্ঠীর মাধ্যমে একাধিক ব্যবহারকারীর জন্য হোমব্রিউ অনুমতি সক্ষম করতে পারেন। এটি কনফিগার করার জন্য এখানে কিছুটা প্রসারিত রেসিপি দেওয়া হল:

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

chgrp -R admin /usr/local
chmod -R g+w /usr/local

গ্রুপ / গ্রন্থাগার / ক্যাশে / হোমব্রিউতে সূত্র এবং উত্স ফাইলগুলির স্থানীয় ক্যাশেগুলির জন্য হোমব্রিউয়ের অনুমতিও দরকার :

chgrp -R admin /Library/Caches/Homebrew
chmod -R g+w /Library/Caches/Homebrew

যদি আপনি একাধিক অ্যাকাউন্ট থেকে হোমব্রু ব্যবহার করার সময় আরও অনুরূপ অনুমতি সংক্রান্ত সমস্যাগুলি নিয়ে যান তবে আপত্তিজনক পথটি নোট করুন এবং একই পদ্ধতির চেষ্টা করার বিষয়টি বিবেচনা করুন।

লিফ হ্যানাক একটি অনুরূপ সমাধান ব্লগ করেছেন , যেখানে তিনি এই উদ্দেশ্যে একটি ডেডিকেটেড ইউজার গ্রুপ মদ তৈরি এবং কনফিগার করেছেন।

- আপডেট 2015-08-20

আমি সম্প্রতি এই উত্তরটি হোমব্রিউ অ্যাক্সেস সহ অতিথি অ্যাকাউন্ট সেট আপ করতে আবার ব্যবহার করেছি। দ্বিতীয় অ্যাডমিন অ্যাকাউন্ট থেকে ক্যাস্ক ব্যবহার করতে আমাকে নীচের কমান্ডগুলিও চালাতে হয়েছিল:

chgrp -R admin /opt/homebrew-cask
chmod -R g+w /opt/homebrew-cask

4

আমি কেবল গৃহীত উত্তর সম্পর্কে মন্তব্য করতে যাচ্ছি (তবে এখনও এর জন্য খ্যাতি নেই don't)

ক্যাসকরুম.আইওর ব্যবহারকারী হিসাবে আমি যুক্ত করার পরামর্শ দিচ্ছি:

sudo chown -R admin /opt/homebrew-cask
sudo chmod -R g+w /opt/homebrew-cask
sudo chmod -R g+w  /Library/Caches/Homebrew/

যেহেতু ক্যাস্ক, হোমব্রিউয়ের জন্য অত্যন্ত দরকারী একটি এক্সটেনশন, এর সমস্ত ফাইল .োকায় /opt/homebrew-cask


1
দ্বারা /optআমি আপনি কি বলতে চান /usr/local? /optহোমব্রিউ ইনস্টলের পরেও সাম্প্রতিক ওএস এক্স ইনস্টলগুলিতে যেমন বিদ্যমান নেই।
qu:৫০ এ ফিরিয়ে দিন

২০১ of সালের জুনে, হোমব্রু-ক্যাস্ক (একটি বারু এক্সটেনশন) এর ক্যাসকুম ফোল্ডারের জন্য ডিফল্ট অবস্থানটি /usr/local(বা আরও সঠিকভাবে $(brew --prefix)) এ স্থানান্তর করেছিল /opt/homebrew-caskতাই এই উত্তরটি এখন মোট, তবে এটি যখন লেখা হয়েছিল তখন বৈধ ছিল। দেখুন সরান ডিফল্ট caskroom অবস্থান # 21603
জেন

1

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

sudo chown -R $ ব্যবহারকারী / usr / স্থানীয়


0

আমি গোষ্ঠীটির অনুমতি নির্ধারণের জন্য ভোট দেব - এবং আমার কাছে মনে হয় এটি কেবল এটির জন্য এবং সুরক্ষা সমস্যা তৈরি করা উচিত নয়।

  • Sudo ব্যবহার করবেন না।

tl; ডাঃ সুডো বিপজ্জনক, এবং আপনি যাইহোক sudo ছাড়াই TextMate.app ইনস্টল করেছেন installed

হোমব্রু সুডো ব্যবহার না করে কাজ করার জন্য ডিজাইন করা হয়েছে। আপনি এটি ব্যবহারের সিদ্ধান্ত নিতে পারেন তবে আমরা তা না করার দৃ strongly়ভাবে পরামর্শ দিই। যদি আপনি সুডো ব্যবহার করেন এবং কোনও বাগে চালিত হন তবে এটি সম্ভবত কারণ হতে পারে। আপনি sudo ব্যবহার না করে স্ক্র্যাচ থেকে হোমব্রু পুনরায় ইনস্টল করার পরে এটি পুনরুত্পাদন করতে না পারলে কোনও বাগ রিপোর্ট ফাইল করবেন না।


তো, আপনার পরামর্শ কি হবে sudo chmod -R g+w /usr/local/?
মেলতেমি

হ্যাঁ, তবে আপনি এর মধ্যে একটি ব্যবহার করে দ্বিতীয় মতামত চাইতে চাইতে পারেন: আইআরসি (irc: //irc.freenode.net/#machomebrew); মেইলিং তালিকা (homebrew@librelist.com); টুইটার ( twitter.com/machomebrew )
iolsmit
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.