হ্যামব্রু-ইনস্টল থাকা সরঞ্জামগুলি পাওয়া গেলে আমার ম্যাকের উপর কীভাবে PATH পরিবর্তনশীল সেট করব?


86

নতুন ম্যাকে হোমব্রু সেট আপ করার চেষ্টা করা হচ্ছে (পূর্ববর্তী ম্যাকগুলিতে আমি উত্স থেকে প্যাকেজ ইনস্টল করব)।

আমি প্রথম যে প্যাকেজটি ইনস্টল করার চেষ্টা করেছি সেটি হ'ল গিট:

$ brew install git

ইনস্টলেশনের ঠিক আছে গিয়েছিলাম, কিন্তু which gitএখনও এক দেখায় /usr/bin/gitযে সঙ্গে বরাবর এসেছেন লায়ন (আমার ধারণা?)। এবং এর মধ্যে একটি /usr/local/bin/gitসবেমাত্র ইনস্টল করা হয়নি।

$ echo $PATH
/Users/meltemi/.rvm/gems/ruby-1.9.2-p290@rails31/bin:/Users/meltemi/.rvm/gems/ruby-1.9.2-p290@global/bin:/Users/meltemi/.rvm/rubies/ruby-1.9.2-p290/bin:/Users/michael/.rvm/bin:/usr/local/mysql/bin:/opt/subversion/bin:/Developer/Additions/checker/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

যেহেতু আপনি দেখতে পারেন /usr/binআগে ডিফল্ট /usr/local/binমধ্যে$PATH

তো, আমি বিভ্রান্ত! আমি ভেবেছিলাম হোমব্রুয়ের বিন্দুটি (এবং স্রষ্টাদের এমন কিছু সম্পর্কে বড়াই করা মনে হয়) যে আপনাকে $PATHভেরিয়েবলের সাথে গোলযোগ করতে হবে না !?

তো, আমি কী ভুল করেছি?


আপনি কি আগে আপনার পথের সাথে ঝামেলা করেছিলেন এবং সম্ভবত এগুলি ভুল ক্রমে রেখেছেন? এছাড়াও আমি নিশ্চিত নই কেন এটি "ব্রেগিং পয়েন্ট" ফর্ম হোমব্রিউ কারণ ... এটি কোনও পথের ধারণা পছন্দ করে না বা এটি পরিবর্তন করা একটি জটিল বিষয় যা আপনার সিস্টেমে বিশেষ অনুমতি বা কোনও কিছুর মাধ্যমে 10 টি পৃথক plist লেখার এবং ছিটিয়ে দেওয়ার সাথে জড়িত ... ..
প্রোডিজিটালসন

1
পথ, ভাল যে অংশটি আরভিএম সম্পর্কিত নয়, এটি স্ট্যান্ডার্ড ইস্যু হওয়া উচিত। এবং না, আমি পথ পরিবর্তন করার বিষয়ে অভিযোগ করছি না। এটা ঠিক যে তারা দাবিটি পুনরুক্ত করে বলে মনে হচ্ছে If you choose /usr/local, everything 'just works!'যে আমি কী মিস করছি তা ভাবতে হবে ... কারণ এটি "শুধু কাজ করে না"।
মেলতেমি

উত্তর:


78

আমি এই সম্পর্কিত পোস্টটি খুব সহায়ক বলে মনে করেছি। পরিবর্তনশীল পরিবর্তন করার পরিবর্তে $PATH, কেবলমাত্র আপনি নিজের /etc/pathsফাইলটি সম্পাদনা করতে পারেন ।

হোমব্রু আমাকে আমার পথ সংশোধন করতে চায়; কোন ক্লু কিভাবে

আমি নির্দেশাবলী অনুসরণ করে এবং /usr/local/binউপরে রাখার সাথে সাথেই /usr/binআমার সমস্যাগুলি সমাধান হয়ে গেছে।

  1. ওএস এক্স-এ, টার্মিনাল খুলুন
  2. কমান্ডটি টাইপ করুন: sudo vi /etc/paths
  3. আপনার পাসওয়ার্ড জিজ্ঞাসা করা হলে এটি প্রবেশ করুন
  4. আপনি পাথের একটি তালিকা দেখতে পাবেন। এগুলি সম্পাদনা করুন যাতে /usr/local/binপথটি উপরে /usr/binপাথের উপরে প্রবেশ করা হয়
  5. * সংরক্ষণ এবং প্রস্থান করুন
  6. টার্মিনাল পুনরায় চালু করুন

আমি এটি করার পরে আমার দেখতে কেমন দেখাচ্ছে তা এখানে:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

* সংরক্ষণ এবং প্রস্থান করতে কোন কোলন ( :) টাইপ করুন, তারপরে টাইপ করুন wq(একই সাথে লিখতে এবং ছেড়ে দিতে), তারপরে Enter

আপনি /etc/pathsএকটি গ্রাফিকাল টেক্সট সম্পাদক এ ফাইলটি খুলতে এবং সেভাবে সম্পাদনা করতে পারেন।

সেখানে তার উত্তরের জন্য স্ট্যাক ওভারফ্লোতে কমে যাওয়ার কৃতিত্ব


ভিআই ডিম্বিটদের জন্য (আমার মত) কমান্ড মোডে থাকাকালীন একটি লাইন কেটে পি ব্যবহার করার জন্য ডি ব্যবহার করুন
জেরার্ড

10
আমি এটির সাথে সাবধানতা ব্যবহার করব - এর উত্তম উত্তর হ'ল কেবলমাত্র প্রোফাইলে / .বাশ_প্রফাইলে পাথ পরিবর্তন করে সেখানে রফতানি করা। / ইত্যাদি / পাথ পরিবর্তন করে আপনি (সম্ভাব্যভাবে) সমস্ত সিস্টেম প্রক্রিয়া প্রভাবিত করেন; প্রফাইলে / .বাশ_প্রফাইলে PATH পরিবর্তন করা আপনার অ্যাকাউন্ট এবং কমান্ড শেলের মাধ্যমে অনুরোধ করা those কমান্ডগুলির উভয়কেই প্রাধান্য দেয় (যা আমার বিকাশের ক্ষেত্রে আমি যা চাই তা চাই)। আপনি যদি সত্যিই সতর্ক হন তবে নীচের উত্তরে @ অ্যারিস্টটল পাগাল্টজিস যা বলেছে তা করতে পারেন।
রোলস

1
ওএসএক্সের জন্য নকশাকৃত প্যাকেজ ম্যানেজারের একটি সহজ ইনস্টল-বাক্সটি ব্যর্থ হয়ে যাওয়ায় ভয়াবহভাবে কিছু ভুল আছে তা বিবেচনা করা বন্ধ করার কোনও কারণ আছে কি? আপনার পথ পরিবর্তন করা একটি সম্ভাব্য ব্রেকিং "ফিক্স" এবং বিটিডাব্লু, কারণ আমি এই প্রস্তাবিত ফিক্সটিতে হোঁচট খেয়েছি তা হ'ল আমার পন্থা আপডেট করতে ব্যর্থ হয়, তবে "পথ" ইতিমধ্যে সঠিক ক্রমে রয়েছে। আরেকটি মৃত-শেষ। উন্মাদনা বন্ধ করুন, মূল কারণটি ঠিক করুন।
রিক ও'শিয়া

এছাড়াও, আছে path_helperএবং আছে /etc/paths.d
সাইমন রাইট

29

এই উত্তর অচল। পছন্দসই হোমব্রিউ PATHক্রম হিসাবে ব্যাখ্যা হিসাবে ব্যবহৃত হত, তবে এটি আর সত্য নয়। যাইহোক, পদ্ধতিরটি আরও সাধারণভাবে প্রযোজ্য, সুতরাং স্বার্থের জন্য, আমি এটিকে ছেড়ে দিচ্ছি।


আপনার করা উচিত নয়।

Homebrew ইচ্ছাকৃতভাবে রাখে /usr/local/bin পর /usr/bin সর্বোচ্চ সামঞ্জস্যের জন্য পাথ। PATHসম্পাদনা করে এই ডিরেক্টরিগুলির ক্রমটিকে বিপরীত করার অর্থ হ'ল সিস্টেমের /etc/pathsযে কোনও জায়গায় সমস্ত প্রোগ্রাম, সেগুলি যেভাবেই শুরু করা হয়েছিল, তা কোনও কমান্ডের হোমব্রু সংস্করণ পাবে। তবে কেউ কেউ অ্যাপলের সংস্করণটি বিশেষত আশা করতে পারে, বা কেবল নতুন সংস্করণ ব্যবহার করতে সক্ষম হবে না ইত্যাদি etc.

এই নীতিটি কীভাবে সংরক্ষণ করা যায় এবং এখনও হোমব্রিউ-ইনস্টল করা সংস্করণটি পাওয়া যায় git? প্রবাদটি যেমন চলে যায়, সমস্ত সমস্যা ইন্ডিয়ারেশনের একটি স্তর দিয়ে সমাধান করা যেতে পারে (ইন্ডিরিশনের অনেকগুলি স্তর বাদে)। - অথবা এই ক্ষেত্রে, এটি যেমন দুটি স্তরগুলি পরিণত হয়।

বিশেষ করে, এটি একটি আছে আমার ইউনিক্স অভ্যাস অংশ হয়েছে ~/binডিরেক্টরির আমার শুরুতে করা PATH। এটি আমার প্রথম বিটগুলির মধ্যে একটি .bashrc:

[[ :$PATH: == *:$HOME/bin:* ]] || PATH=$HOME/bin:$PATH

এই পরীক্ষা করে কিনা PATHধারণ করে ~/bin, এবং যদি না হয়, তাহলে prepends। সেই স্থানে, তারপরে বাছাই করে কেবল হোমব্রেইউ-পরিচালিত gitসিস্টেম সংস্করণে ( প্রতিটি হোমব্রিউ-পরিচালিত বাইনারি পরিবর্তে ) এবং কেবল আপনার শেল সেশনের জন্য ( জিইউআই প্রোগ্রামগুলি সহ যে কোনও জায়গা থেকে শুরু হওয়া সমস্ত প্রোগ্রামের পরিবর্তে) অগ্রাধিকার দেওয়া হবে is এটি সিমলিংকের মতোই সহজ:

ln -s /usr/local/bin/git ~/bin/git

আপনি পারে সিমবলিক লিঙ্ক /usr/local/Cellar/git/1.8.2.1/bin/gitসরাসরি, কিন্তু তারপর প্রতি সময়ে আপনি যদি একটি করেনি আপনার সিমবলিক লিঙ্ক ঠিক করতে হবে brew upgrade git(প্রত্যক্ষ বা পরোক্ষভাবে)। হোমব্রিউয়ের স্থির-অবস্থানের সিমিলিঙ্কে সিএমলেট করে, আপনাকে এটি নিয়ে চিন্তা করতে হবে না।

সুতরাং আপনি নিজের সাথে একটি ডিরেক্টরি যুক্ত করুন $HOMEযাতে আপনি এটি যুক্ত করতে পারেন PATHযাতে আপনি একটি সিমিলিংকে সিলেক করতে পারেন এবং এটি আপনার সমস্যার সমাধান করে এবং ডাঃ সিউসকে হাসি দেয়। ইও ডগ আমি আপনাকে সিমলিংক পছন্দ করি যাতে আমরা আপনার মধ্যে একটি পথ রেখেছি যাতে আপনি সিমলিংক করার সময় সিমলিংক PATHকরতে পারেন।


1
দুর্দান্ত, এই উত্তরগুলি হুবহু আমি কী ভাবছিলাম!
এন_এ

এই SEEMS সঠিক উত্তরটি পছন্দ করে, তবে আমি চালানোর জন্য সঠিক আদেশগুলি খুঁজে বের করতে পারি না। সিমলিঙ্কগুলি তৈরি করার সময় আমি "ফাইল বিদ্যমান" পেয়ে যাচ্ছি।
রায়ান

আপনাকে সাহায্য করার জন্য যথেষ্ট বিশদ নেই, দুঃখিত।
এরিস্টটল পাগাল্টজিস

1
@ রায়ান নিশ্চিত করে নিন যে ঠিক কমান্ডে আপনার কাছে অর্গের ক্রম রয়েছে ln। প্রথম পথটি লক্ষ্য, এবং দ্বিতীয়টি হ'ল সিমিলিংক
ফ্রিডম_বেন

1
সত্য, এল ক্যাপে, আমি অপ্রচলিত উত্তর দিয়ে ব্যর্থ হয়েছি এবং জেডসিআরসিexport PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
উর্স

17

আপনি কোনও ভুল করেন নি, তবে এটি খুব পরিষ্কার বলে মনে হচ্ছে যে আপনি যদি এই নির্দিষ্ট সমস্যাটির /usr/local/binআগে আপনার পথে /usr/binথাকতেন তবে এই সমস্যাটি সরে যেত। সবচেয়ে সহজ সমাধানটি হ'ল এটি করা এবং এর মতো কিছু করা

export PATH=/usr/local/bin:$PATH

আপনার ~/.bash_profileতাই হোমব্রু ইনস্টল করা সমস্ত কিছু আগে পাওয়া যায়। আমার ম্যাকে এটি যেভাবে সেট আপ করেছি এবং এটি আমার পক্ষে দীর্ঘকাল ধরে কাজ করেছে, তবে, ওয়াইএমএমভি।

এটি প্রদর্শিত হচ্ছে যা তারা বিশ্বাস করে যে এটি পরে/usr/local/bin থাকার সাথে কাজ করবে , তাই আমি নিজেরাই আপ করতে চাইলে তাদের ডকুমেন্টেশনের অভাব কোথায় তা আমি দেখতে পাচ্ছি: /usr/bin$PATH

মনে রাখবেন যে আপনার /usr/local/binপরে রাখা উচিত /usr/bin কারণ কিছু প্রোগ্রাম আশা করে যে সিস্টেমের সংস্করণ যেমন রুবি, এবং যদি তারা নতুন হোমব্রু সংস্করণটি পেয়ে যায় তবে ব্রেক হবে।

থেকে মধ্যবর্তী উইকি & চোলাই ডাক্তার # 10738 অসঙ্গতি: । মনে রাখবেন যে, এই দলিল বলে, যায় "প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (উপরে উদ্ধৃতি) গুই অ্যাপসের জন্য সেটিং পাথ বোঝায়; ডাক্তার (পরামর্শ করা /usr/local/binএগিয়ে /usr/bin । আপনার পাথ), CLI অ্যাপসের জন্য সেটিং পাথ বোঝায়"


1
এই /usr/local/binআমার দুইটা ছেড়ে যাবে না $PATH? আমি তাই বিশ্বাস করি. আমি অবাক হই যদি আমাদের পরিবর্তে ডিফল্ট পাথের ক্রমগুলি /etc/pathsবা এর সামগ্রীগুলি সম্পাদনা করা উচিত /etc/paths.d? তবে এটি প্রতিটি ব্যবহারকারীর উপর প্রভাব ফেলবে ... সম্ভবত কোনও খারাপ জিনিস নয়। যাইহোক, কেবল অন্যান্য ব্যক্তিরা কীভাবে এটি কাছে এসেছেন তা কেবল দেখতে চেয়েছিলেন।
মেলতেমি

@ মেলতেমি, এই উত্তরটির স্পিরিটটি সঠিক: পূর্ববর্তী PATHহওয়ার জন্য আপনার (আপনার পছন্দ অনুসারে) আপডেট করুন । আমি ব্যক্তিগতভাবে আমার আপডেট মধ্যে এখানে সুপারিশ করেছে। /usr/local/bin/usr/binPATH.bash_profile

@ নিক- আকর্ষণীয় তথ্য ... এবং কেবল বিষয়গুলি (কমপক্ষে আমার বিষয়গুলি) বিভ্রান্ত করার কাজ করে ... হোমব্রব ডক্সের দ্বারা বোঝা যাচ্ছে যে টার্মিনাল কমান্ডগুলি অ্যাপ্লিকেশনগুলি গ্রহণ করা উচিত /usr/local/binযদিও এটি পথ /usr/binচলছিল। তবে জিইউআই অ্যাপসের জন্য বিশেষ কোডিং দরকার? এটি সমস্ত অ্যাপ্লিকেশন, জিইউআই বা না হিসাবে মনে হবে , আমাদের AT PATH ভেরিয়েবল সামঞ্জস্য করতে হবে। সুতরাং, আমি (বা হোমব্রিউ তৈরির) কী অনুপস্থিত?
মেলতেমি

আমি মনে করি হোমব্রিউ অনুমান করে আপনি প্রথমে অ্যাপল সরবরাহ করা এক্সিকিউটেবলকে ব্যবহার করতে চান - গিটটি এমন একটি পরিবর্তন যা সিংহ পর্যন্ত এটি অ্যাপল সরবরাহ করেনি যেমন হোমব্রিউ এর প্রয়োজন ছিল - এখন আপনি অ্যাপলটি ব্যবহার করতে পারবেন,
ইউজার 151019

আমি এই বিষয়ে মার্কের সাথে একমত ম্যাকপোর্টস এবং ফিঙ্কের সাথে, অনুমানটি হ'ল অ্যাপলটি বাক্সের বাইরে সরবরাহিত যে কোনও কিছু থেকে পৃথক পৃথক পরিবেশ সরবরাহ করবে। হোমব্রু এই অবস্থান নিয়েছিল যে অ্যাপলের জিনিসগুলি দুর্দান্ত এবং এটি ব্যবহার এড়াতে হবে না (কেন অ্যাপল এর সম্ভাব্য কাজগুলি করবে যখন জিসিসির অন্য সংস্করণটি ডাউনলোড করবেন?)।
নিক ক্লাউয়ার

6

আমি জঠোমাসের উত্তরের সাথে একমত নই। আপনার / ইত্যাদি / পাথ ফাইল সম্পাদনা করা সমস্ত প্রোগ্রামের জন্য লোড পাথগুলিকে পরিবর্তন করবে। এটি বিপজ্জনক হতে পারে যদি কোনও সিস্টেম অ্যাপ্লিকেশন বাইনারিটির একটি নির্দিষ্ট সংস্করণ সন্ধানের প্রত্যাশা করে তবে একটি ভিন্ন সংস্করণ খুঁজে পায় কারণ আপনি নিজের পথের ফাইলটি সম্পাদনা করেছেন। পরিবর্তে, আপনার পাথ ভেরিয়েবলটি ~ / .bashrc (অথবা ~ / .bash_profile) এ পরিবর্তন করুন। তারপরে আপনার লোডের পথটি কেবল টার্মিনালের অভ্যন্তরে পরিবর্তিত হবে:

# প্যাথ
এক্সপোর্টে হোমব্রিউ অ্যাপ্লিকেশন যুক্ত করুন পাঠ্য = / পথ / থেকে / হোমব্রিউ / অ্যাপ / বিন: AT পথ

তারপরে বাশ পুনরায় লোড করুন source ~/.bashrcএবং আপনি যেতে ভাল। যেহেতু হোমব্রিউয়ের পথটি অন্য কোনও কিছুর আগে চলে আসে তাই বাশ আপনি যে সংস্করণটি হোমব্রিউ দিয়ে ডাউনলোড করেছেন তা লোড করবে।


ওএস এক্স-এ, এটি .bashrcডিফল্টরূপে লোড হয় না। আপনি নিজেই এটি উত্স?
ছিটিয়ে দিন

ও আচ্ছা. আমি উবুন্টু থেকে ওএস এক্স থেকে এসেছি এবং অভ্যস্ত ছিলাম .bashrcতাই এটি আমার থেকে উত্স .bash_profile। আপনি যদি আরসি ফাইলটি তৈরি করতে না চান তবে আপনি নিজের কমান্ডটি যুক্ত করতে পারেন .bash_profile
নাথান

5

যেহেতু আমি এটি বুঝতে পেরেছি, brewকোনও /usr/local/binআপেল এক্সিকিউটেবল বিতরিত এ সংঘর্ষে (একই নাম রয়েছে) কিছুই রাখবে না। অতএব, /usr/local/binআগে পথে থাকা /binএবং /usr/binকোনও সমস্যা হওয়া উচিত নয়, কারণ কোনও নাম সংঘর্ষ হওয়া উচিত নয়। * তবে, নীচে নীচে এবং ( এবং ম্যাকপোর্টস) এর মতো অন্যান্য প্যাকেজ অ্যাগ্রিগেটরগুলি সহ lsএবং এর সাথে সমস্যাগুলি দেখুন।tarfinkport

Brew নামগুলির সংঘর্ষগুলি পরিচালনা করতে সহায়তা করে এমন দুটি জিনিসের মধ্যে আমি জানি:

  1. Brewভোজনে লিঙ্কযুক্ত চাবি ছেড়ে। স্টাফ ইনস্টল করার জন্য, ব্রিউগুলি যেখানে রয়েছে সেগুলি সরঞ্জামগুলি ছেড়ে যায় এবং সেই সরঞ্জামগুলিতে প্রতীকী লিঙ্ক তৈরি করে /usr/local/bin। যে সরঞ্জামগুলির brewসাথে নামের সংঘর্ষ চান না তাদের জন্য এটি প্রতীকী লিঙ্ক তৈরি করে না।
  2. অনেকের কাছে যদি না থাকে তবে সমস্ত স্ট্যান্ডার্ড টুলস যা সেগুলিতেও রয়েছে /binএবং /usr/bin, "g" brewএর /usr/local/binসাথে লিঙ্কটিকে উপসর্গ করে , উদাহরণস্বরূপ, lsএকটি বারু সংস্করণ সহ একটি সম্পাদন করতে , ব্যবহার করুন gls কেবলমাত্র একটি কি ls -lমধ্যে /usr/local/binএবং লিঙ্ক ফাইল সন্ধান - যারা বেশী brewসেখানে রেখেছেন। দ্রষ্টব্য: brewইনস্টল করা সরঞ্জামগুলি যেগুলি তাদের আসল নামগুলি দ্বারা অ্যাক্সেস করতে হবে সেগুলি পাওয়া যায় /usr/local/Cellar/coreutils/8.21/libexec/gnubin

আমি /usr/local/binদুটি কারণে আমার পথে রাখি না - কারণগুলি আমার উত্তরের নীচে রয়েছে।

আপনার সিস্টেমে নামের সংঘর্ষগুলি মূল্যায়ন করতে, brew doctorএই বিভাগটি ব্যবহার করুন এবং দেখুন - এখানে brew doctorআগ্রহের আউটপুট:

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

    ctags
    emacs
    emacsclient
    etags
    ex
    git
    git-cvsserver
    git-receive-pack
    git-shell
    git-upload-archive
    git-upload-pack
    rview
    rvim
    view
    vim
    vimdiff
    vimtutor
    xxd

Consider setting your PATH so that /usr/local/bin
occurs before /usr/bin. Here is a one-liner:
    echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile

আমি brewপ্রথমে সরঞ্জামগুলি না রাখার কারণটি, বাস্তবে মোটেও নয়, কারণ brewইনস্টলড lsএবং tarকমান্ডগুলি ফাইল সিস্টেমের এসিএল সঠিকভাবে পরিচালনা করে না, আসলে, গতবার আমি যাচাই করেছি (যা গত সপ্তাহে ছিল), তারা ছিল না ' টি মোটেও সামলানো । এটি একটি বিগ সমস্যা এবং এটি সম্পূর্ণরূপে এড়াতে, যুক্ত manপৃষ্ঠা কনফিগারেশন ইস্যুটি সহ $PATHসঠিক সেট করার পাশাপাশি ট্যাগগুলি রাখার জন্য, আমি নিশ্চিত হয়েছি যে আমি OSXসম্পর্কিত সরঞ্জামগুলি রেখেছি , বিশেষত যা পাওয়া গেছে /binএবং /usr/binপ্রথমে put

আমি /usr/local/binআমার পথেও একেবারে না রাখার আরেকটি কারণ হ'ল brewঅন্যদের সাথে ভাল খেলছে না এবং finkএবং port(ম্যাকপোর্টস) বর্তমানে আরও বেশি সমর্থিত প্যাকেজ রয়েছে যা আমার এখনই প্রয়োজন । উদাহরণস্বরূপ, আমি gnome-terminalসাথে পেতে পারি fink, তবে এটি একটি সূত্র তৈরি এবং এর সাথে এটি করার একটি বড় প্রচেষ্টা হবে brew। সুতরাং, আমি রাখি /swএবং /optআমার অনুসন্ধানে $PATH( যথাক্রমে finkএবং portযথাক্রমে) এবং আমার কাছে প্রয়োজনীয় জিনিসগুলি উল্লেখ করা হয় /usr/local/bin, যার মধ্যে gnatবানান অন্তর্ভুক্ত থাকে, বা আমি ব্যবহার bash aliasকরি, বা আমি কোড setupলেখার সময় সম্পূর্ণ ভিন্ন পরিবেশের জন্য একটি ফাইল উত্স করি Ada

জিনিসটি হ'ল, এটি সত্যিকার অর্থে আপনি যা চান এবং সেই সময়ে কী প্রয়োজন তা নির্ভর করে।

আমি উপরে উল্লিখিত এসিএল সমস্যার উদাহরণ এখানে দিয়েছি।

মানক OSXসরঞ্জাম সহ:

$ /bin/ls -le /var/root | head -7
total 24
drwx------+  3 root  wheel  102 May 28  2013 Desktop
 0: group:everyone deny delete
 1: user:_spotlight inherited allow list,search,readattr,readextattr,readsecurity,file_inherit,directory_inherit
drwx------+  6 root  wheel  204 Sep 19 14:22 Documents
 0: group:everyone deny delete
 1: user:_spotlight inherited allow list,search,readattr,readextattr,readsecurity,file_inherit,directory_inherit

এবং brewইনস্টল করা সরঞ্জাম সহ:

$ /usr/local/bin/gls -le /var/root
/usr/local/bin/gls: invalid option -- 'e'
Try '/usr/local/bin/gls --help' for more information.

এবং

$ /usr/local/bin/gls --help | grep -i acl

আপনি একইরকম ফলাফল পাবেন tarএবং আমি বাড়ী অন্যান্য অনেক brewসরঞ্জাম জানি না , তবে ACLসমস্যার কারনে 6 মাস রাস্তায় কিছু বিরতি পাওয়ার সামর্থ্য কে আছে !


গুরুত্বপূর্ণ তথ্যের জন্য ধন্যবাদ. হিসাবে একটি নোট হিসাবে, এখনই, আমার সিস্টেমে আমার / usr / bin এবং / usr / স্থানীয় / বিন উভয় (যেমন, গিট, যা সদৃশ, যেমন আপনি নোট করেছেন) একই নাম সহ এক্সিকিউটেবল আছে। সুতরাং, তারা ডিফল্টভাবে সংঘাত করে। আমি আমার শেল কাজের জন্য সিস্টেম সরঞ্জামগুলিকে ওভাররাইড করতে চাই না।
রোলস

4

এখানে বেশ কয়েকটি ভাল উত্তর রয়েছে। এখানে আমার:

echo >> ~/.bashrc alias my="PATH=/usr/local/bin:$PATH"
. ~/.bashrc
my git --version # Brew's fancy git
git --version # Apple's old crusty git

প্রতিটি প্রোগ্রামের জন্য একটি পৃথক উপন্যাস তৈরি করা আপনাকে বাঁচায় এবং বোনাস হিসাবে এটি আপনার প্রয়োজনের ক্ষেত্রে ডিফল্ট ইনস্টলেশনগুলি অ্যাক্সেসযোগ্য ছেড়ে দেয়।

আপনি জেডএসএইচ ব্যবহার করছেন ঠিক একইভাবে কাজ করে; শুধু সুইচ bashrcজন্য zshrc। আপনি টাইপিংয়ের myজন্য _বা এমনকি @সঞ্চয় করতে স্যুইচআউট করতে পারেন ।


2

পাথের সাথে মোটেও গোলযোগ না করা (যা আমার ইতিহাসে কয়েক মাস পরে আমাকে জ্বলতে ফিরে আসে) আমি আমার zsh কাস্টম অ্যালিয়াস ডিরেক্টরিতে (~ / .zshrc / কাস্টম / git_alias.zsh) গিটের জন্য একটি উপন্যাস যুক্ত করেছি।

alias git='/usr/local/bin/git'


0

আমি প্রকৃত পরিবর্তন চাই $PATHএমন ব্যবহারকারীদের মতো পরিবেশের পরিবর্তনশীলগুলিতে পরিবর্তন সীমাবদ্ধ রাখতে পছন্দ করি । সুতরাং, আমি কেবল নিম্নলিখিতগুলিতে যুক্ত করব ~/.bashrc:

export PATH="$(brew --prefix)/bin:$PATH"

0

আপনি একটি টার্মিনালে নিম্নলিখিত কমান্ডটি জারি করতে পারেন, এটি আপনার "RC" আরম্ভ করা ফাইলটি যে কোনও ফাইলের (প্যাশ, zsh, csh) প্যাথের মধ্যে ব্রিউ হোম ডিরেক্টরিটি + / বিন যোগ করবে b

echo "export PATH="'$PATH:$(brew --prefix)/bin' >> ~/.$(basename $SHELL)rc

উপভোগ করুন!

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