সুডোর বিরক্তিকর বার্তা কি মাউন্টেন লায়ন 10.8.0 থেকে মুছে ফেলা যাবে?


11

10.8.0 এ আপগ্রেড করার পরে, যখনই আমি একটি করি sudo, আমি সর্বদা এই বার্তাটি পাই:

dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/sudo) is setuid or setgid

আমি চেক আমার .bash_profile, .zshrcসব কথা আমার মনে পড়েছে, আর আমি এর সাথে সম্পর্কিত কিছু দেখি না DYLD_পরিবেশ।

ঘন্টার পর ঘন্টা গুগল করার পরে আমি এই দুটি লাইন আমার মধ্যে রাখার চেষ্টা করেছি .zshrc:

unset LD_LIBRARY_PATH  
unset DYLD_LIBRARY_PATH

তবে বিরক্তিকর বার্তাটি এখনও উপস্থিত রয়েছে।

আমি একটি অতিথির অ্যাকাউন্টে যাই এবং sudoএই বার্তাটি পাইনি তবে করিনি । সুতরাং আমি অনুমান করি যে আমার কাছে কিছু কাস্টম লাইব্রেরি ইনস্টল আছে ... তবে কীভাবে এটি ডিবাগ করা যায় তা আমি জানি না।

উত্তর:


6

আপনার কি অন্য কোনও ডিওয়াইএলডি_ ভেরিয়েবল সেট আছে? setসমস্ত ভেরিয়েবলগুলি দেখার জন্য কোনও পরামিতি ছাড়াই চালান এবং সেই উপসর্গের সাথে উপস্থিত যে কোনও কিছু আনসেট করুন।

মনে রাখবেন এটি দেখে মনে হচ্ছে এটি সত্যই কোনও বাগের জন্য কাজ মাত্র, আপনি যদি DYLD_PRINT_WARNINGS সক্ষম না করেন তবে এই বার্তাগুলি মুদ্রণ করা উচিত নয়।

এছাড়াও, ১০.৮.১-এর আপডেটে এই বিরক্তি লাগছে।


1
এমএল বাগ, যতদূর আমি বলতে পারি। এই DYLD_ ভেরিয়েবলগুলি গুরুত্বপূর্ণ হতে পারে, তাদের অপসারণের জন্য তারা যা নির্ধারিত ছিল তা ভঙ্গ করতে পারে।
gabedwrds

2
ঠিক আছে, বাগটি হ'ল আপনি যদি পরিবেশের পরিবর্তনশীল DYLD_PRINT_WARNINGS সেট না করেন তবে আপনি সেই বার্তাগুলি দেখার কথা না, তবে কোনও কারণে পর্বত সিংহ সেগুলি উভয়ভাবেই মুদ্রণ করে।
gabedwrds

2
10.8.1 সমস্যাটি সমাধান করেনি
মাত্তেও

2
সব DYLD_ এনভায়রনমেন্ট ভেরিয়েবল Unsetting হয় না একটি সমাধান হিসেবে তারা একটি কারণ জন্য আছে। এটি একটি বাগ এবং অ্যাপল এটি ঠিক না করা পর্যন্ত আমরা এটির সাথে আটকে আছি।
মাত্তেও

2
আমার এই সমস্যাটি 10.8.3 এ আছে
অ্যালেক্স জাজাত্রি

3

জেডএসে:

 sudo () { ( unset LD_LIBRARY_PATH DYLD_LIBRARY_PATH; exec command sudo $* ) }

এটি এমন একটি উপ-শেল তৈরি করেছে যেখানে পরিবেশ ভেরিয়েবলগুলি যা সুডোর অভিযোগ করে যে আনসেট সেট করা নেই, এবং তারপরে sudo চালায়।

অন্যান্য উত্তরের কয়েকটিগুলির মধ্যে সুবিধার মধ্যে রয়েছে:

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

আমি এটি পাঠককে বশ করতে পোর্ট করতে ব্যায়াম হিসাবে ছেড়ে দেব, ইত্যাদি।


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

2

yokyoh1987 দ্বারা আপেল সমর্থন ফোরামে পাওয়া প্রায় কাজ,

https://discussions.apple.com/thread/4143805?start=30&tstart=0

আপনার। প্রোফাইলে / .bashrc / .Bash_profile (আপনার টার্মিনাল সেটিং উপর নির্ভর করে):

আমার সাধারণ প্রোগ্রামগুলির জন্য # সেট ডিওয়াইএলডি_ * করুন
DYLD_LIBRARY_PATH = '..'

# বিকল্প sudo সেট করুন
thesudo ()
{
# ডিওয়াইএলডি_ * ভেরিয়েবলগুলি ব্যাক আপ করুন
স্থানীয় পিঠ = Y DYLD_LIBRARY_PATH

# আনসেট ডিওয়াইএলডি_ *
ডিওয়াইএলডি_লিবারি_প্যাথ আনসেট করুন

# কলিং সুডো
/ ইউএসআর / বিন / সুডো "$ @"

# সুডো শেষ হওয়ার পরে ডিওয়াইএলডি_ * পুনরুদ্ধার করুন
DYLD_LIBRARY_PATH = AC পিছনে রফতানি করুন
}

সুডো পুনঃনির্দেশ
ওরফে সুডো = থিসুডো

এটি env পরিচালনার একটি চতুর ছোট্ট টুকরা।
bmike

এই সমাধানটির একটি সমস্যা হ'ল আপনি sudo বাধা দিলে (উদাহরণস্বরূপ, ctrl-c এর মাধ্যমে) আপনার DYLD_LIBRARY_PATH varটি নিঃশব্দে আপনার ইন্টারেক্টিভ শেলের মধ্যে আনসেট ছাড়াই থাকবে কারণ শেষে পুনরুদ্ধার অপারেশনটি কার্যকর হবে না। একটি সাব-শেল ব্যবহার (এই প্রশ্নের আমার অন্যান্য উত্তর দেখুন) এর সমাধান করে।
পিঙ্কো

-3

আপনার সম্ভবত আপনার এলডি_লিবিআরএআইপিএটিএইচ সেট রয়েছে।


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