AT পথ আমাকে বাদাম চালাচ্ছে


10

ঠিক আছে, দুঃখিত, যদি এটি বোবা কিছু হয় তবে আমি ধারণার বাইরে চলে যাচ্ছি।

লক্ষ্য: প্রিপেন্ড /usr/local/binটু$PATH

সমস্যা: $PATH আমি যা চাই বা আশা করি তা করি না

আমি এখানে কীভাবে পেলাম: আমি প্রোগ্রাম শিখতে শুরু করতে চাই, তাই আমি আড়ালে আছড়ে পড়ে আরামদায়ক হয়ে উঠছি, তবে খুব বেশি অভিজ্ঞতা নেই। আমি fishশেলটি ইনস্টল করেছি (কারণ এটি বন্ধুত্বপূর্ণ!) homebrewএবং এটি আমার ডিফল্ট শেল হিসাবে (নীচে system prefs>users & groups>advanced) সেট করেছি । এক পর্যায়ে আমি দৌড়ে এসেছি brew doctorযে আমার ইনস্টলগুলি সমস্ত কোশার ছিল কিনা এবং এটি প্রস্তাব করেছিল আমি /usr/local/binসামনের দিকে চলে যাই $PATHযাতে আমি gitসিস্টেম অনুলিপি না করে আমার ইনস্টলেশনটি ব্যবহার করতে পারি । চমৎকার - তবে path_helperএবং এর মাঝে fishএমন কিছু ঘটছিল $PATHযা আমার নিয়ন্ত্রণের বাইরে ছিল এবং আমি কখনই সঠিক উপায়ে সাজানো পথগুলি পেতে পারি না।

পরিবেশ: ওএসএক্স 10.8.2, সঙ্গে, 10.7ish থেকে আপগ্রেড xcode, এবং DevTools ইনস্টল প্লাস x11, homebrewএবংfish

: আরো তথ্য আমি আমার ইউজার এর ডিফল্ট শেল ফিরে সেট করেছি bash, এবং শাঁস বিভিন্ন চেষ্টা পুরনো terminal.app- bash, fish, sh। আমি /usr/local/binশীর্ষে চলে এসেছি /etc/pathsতবে এটি কিছুই পরিবর্তন করেনি। আমি বিভিন্ন config.fishফাইলের মধ্য দিয়ে তাকিয়েছি এবং এমন স্টাফ মন্তব্য করেছি যাতে $ PATH এর সাথে জগাখিচুড়ি হতে পারে, সাহায্য করেনি। আমার মধ্যে নিম্নলিখিত ফাইলগুলি রয়েছে /etc/paths.d/:

./10-homebrew ধারণকারী /usr/local/bin

./20-fish ধারণকারী /usr/local/Cellar/fish/1.23.1/bin

./40-XQuartz ধারণকারী /opt/X11/bin

আমি আমার সাথে যুক্ত set +xকরেছি profileএবং যখন আমি শুরু terminal.appকরি তখন আমি পাই:

Last login: Mon Oct  1 13:31:06 on ttys000
+ '[' -x /usr/libexec/path_helper ']'
+ eval '/usr/libexec/path_helper -s'
++ /usr/libexec/path_helper -s PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/Cellar/fish/1.23.1/bin:/opt/X11/bin";
export PATH;
+ '[' /bin/bash '!=' no ']'
+ '[' -r /etc/bashrc ']'
+ . /etc/bashrc
++ '[' -z '\s-\v\$ ' ']'
++ PS1='\h:\W \u\$ '
++ shopt -s checkwinsize
++ '[' Apple_Terminal == Apple_Terminal ']'
++ '[' -z '' ']'
++ PROMPT_COMMAND='update_terminal_cwd; '
++ update_terminal_cwd
++ local 'SEARCH= '
++ local REPLACE=%20
++ local PWD_URL=file://Chriss-iMac.local/Users/c4
++ printf '\e]7;%s\a' file://Chriss-iMac.local/Users/c4 
Chriss-iMac:~ c4$

সুতরাং দেখে মনে হচ্ছে পাথ_হেল্পার চলমান, তবে তারপরে echo $PATHআমার জাল চলছে /usr/bin:/bin:/usr/sbin:/sbin। সুতরাং, দেখে মনে path_helperহচ্ছে এমনকি এটি যা করা উচিত বলে তা করছে না?

আমি নিশ্চিত যে এখানে কিছু সংজ্ঞায়িত আচরণ রয়েছে যা আমি বুঝতে পারি না বা এটি সমাধান করার চেষ্টা করার সময় আমি কিছুটা উদাস হয়ে গিয়েছিলাম। সাহায্য করুন!


নোট, আমি এটা কাজ পেতে পারেন fishতৈরি করে ~/.config/fish/config.fishসঙ্গে set PATH /usr/local/bin $PATHকিন্তু আমি এখনও সমস্যা আছে path_helperদৃশ্যত মত এটি করা উচিত কাজ করছে না, এবং $PATHএইভাবে অসম্পূর্ণ হচ্ছে। এখনও বিভিন্ন ইস্যু আছে $PATHস্ক্রিপ্টের জন্য, গুই ইত্যাদি থেকে শুরু অ্যাপ্লিকেশান
Chris4d

উত্তর:


5

সমাধান:

আপনি যদি সিস্টেমের প্রশস্ত সেটিং বা কোনও ব্যবহারকারী কনফিগারেশন এবং উপযুক্ত কনফিগারেশন ফাইল সম্পাদনা করতে চান তা চয়ন করুন, মাছের সাথে পথ_হেল্পার ব্যবহার করবেন না।

অধিক

সিস্টেমের প্রশস্ত এবং ব্যবহারকারী কনফিগারেশনের জন্য মাছগুলি / ইত্যাদি / প্রোফাইলের উত্স নয়, এটি যথাক্রমে /etc/fish/config.fish এবং ~ / .config / fish / config.fish পড়বে [1]।

পাথ_হেল্পারটি শেলগুলির জন্য ব্যবহারের জন্য যা একটি সিস্টেম ওয়াইড প্রোফাইল ফাইল (sh, csh এবং তাদের উদ্ভূত) উত্স দেয়। যেহেতু 10.7 পাথ_হেল্পারটি / ইত্যাদি / পাথগুলিতে অর্ডারকে সম্মান করে বলে মনে হয়, এটি 10.6 এ যায় নি এবং এটির সাথে লড়াই করা আরও শক্ত was

আপনি কি সত্যিই মাছ দিয়ে path_helper ব্যবহার করতে চান তাহলে আপনি যেহেতু এটি শুধুমাত্র SH এবং csh এর মূল সিনট্যাক্স প্রদান করব তার আউটপুট পার্স করতে হবে -s এবং -c অপশন।

কিছুটা এইরকম

/usr/libexec/path_helper -c | sed -e 's/setenv/set -x/' -e 's/:/ /g' -e 's/[";]//g'

কাজ করা উচিত:

[1] http://ridiculousfish.com/shell/user_doc/html/index.html# শিরোনাম


গ্রেট! আমার এখন যা আছে তা এই: if status --is-login eval (/usr/libexec/path_helper -c | sed -e 's/setenv/set -x/' -e 's/:/ /g' -e 's/[";]//g') end- ফিশ 2 এবং ম্যাক ওএস 10.8.3 এর সাথে এখানে দুর্দান্ত কাজ করে
টপস্কিপ

3

আমার কাছে /etc/paths.d, পাথ_হেল্পার, এবং সি সম্পর্কে সম্পূর্ণ ধারণা নেই, এগুলি আমার কাছে অত্যধিক জটিলতার মতো বলে মনে হয় তবে আপনার ash / .Bashrc এর শেষে নিম্নলিখিতটি আপনাকে সঠিকভাবে লিখতে হবে:

 PATH=/usr/local/bin:$PATH

আশাকরি এটা সাহায্য করবে!


থ্যাঙ্কস অ্যারন - path_helperএটি একটি ওএসএক্স-নির্দিষ্ট ইউটিলিটি যা অনুমিতভাবে এবং পরে $PATHপড়ে লগইন-এ সেট করে । যাইহোক, আমি বুঝতে পারি যে আপনার পরামর্শটি আমাকে ঠিক করা উচিত , তবে আমি আসলে এটিতে কাজ করতে চাই (এবং ধারাবাহিকভাবে সিস্টেম জুড়ে, যদি এটি আশা করা খুব বেশি না হয়)। /etc/paths/etc/paths.d/*bashfish
ক্রিস 4 ডি 21

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

3

প্রতিক্রিয়া জানাতে এবং স্ট্যাকেক্সচেঞ্জ সাইটে অনুরূপ অন্যান্য প্রশ্নের উত্তর দেওয়া সকলের জন্য অ্যারনকে ধন্যবাদ জানাই। উত্তরসূরির জন্য, আমি যা বুঝতে পেরেছি তা এখানে:

  1. path_helper/etc/profileসিনট্যাক্সের মাধ্যমে বলা হয় eval '/usr/libexec/path_helper -s'(যেখানে অ্যাস্টোস্ট্রোফস আসলে ব্যাকটিকস)। ডামির মতো, আমি জানতাম না যে ব্যাকটিকগুলি কীভাবে কাজ করেছিল এবং তাই কোনও কারণে তাদেরকে উদ্ধৃতিতে পরিবর্তন করেছিল। এটি আমার profileবোঝা থেকে বিরতি দেয় path_helper। ব্যাক-টিকগুলি প্রতিস্থাপন করা হয়েছে এবং এখন এটি অবশ্যই করা উচিত (অবশ্যই)।
  2. ব্যবহার set PATH /usr/local/bin $PATHআমার মধ্যে ~/.config/fish/profile.fishনিশ্চিত করে যে আমি আমার পছন্দের শেল সঠিক অনুক্রমে পাবেন, কিন্তু যতদিন path_helperকাজ এটা অপ্রয়োজনীয় হতে পারে।
  3. সম্পূর্ণটি $PATHস্ক্রিপ্ট, জিইউআই অ্যাপ্লিকেশন ইত্যাদিতে উপলব্ধ রয়েছে তা নিশ্চিত করার জন্য , এটি launchd.confএবং environment.plist... এর মধ্যে একটি টস-আপ বলে মনে হচ্ছে এটি এখনও গবেষণা করছে।

1
আমি অন্য দিন পড়েছি (তবে আমি উত্সটি মনে করতে পারি না) যে 10.8 আর সমস্ত অ্যাপ্লিকেশানের কাছে দৃশ্যমান একটি পাথ পাওয়ার জন্য একটি নিশ্চিত উপায় দেয় না offers আমি বিশেষভাবে মনে করি যে এনভায়রনমেন্ট.প্লেস্টটি আর পড়া হয় না; আমি লঞ্চডকনফ সম্পর্কে অস্পষ্টভাবে সচেতন, যাতে এটি কার্যকর হতে পারে তবে আমি মনে করি যে নিবন্ধটি এটির প্রস্তাবনা দেয় নি।
ইক্রিস্টোফারসন ২২

1
আরও ফলোআপ: এটিকে দেখে মনে হচ্ছে না যে পাথে_হেল্পার ফিশে কোনওভাবেই কাজ করে; এটি সিএসএস বা ব্যাশ সিনট্যাক্সকে আউটপুট দেয়, উভয়ই বেমানান। পরিবর্তে, আপনি বিড়াল /etc/paths.d/* ~ / .config / માછલી / config.fish (ফিশ স্টার্টআপ স্ক্রিপ্ট) ব্যবহার করতে পারেন এবং তাদের $ PATH এ সংযুক্ত করতে পারেন। আশা করি যে কাউকে সাহায্য করবে!
Chris4d

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