আমার হোমব্রিউ ক্যাগগুলি রিলিং করার জন্য কি কোনও দ্রুত উপায় আছে?


61

আমি সবেমাত্র আমার ম্যাকবুক এয়ারটি ম্যাভেরিক্সে আপগ্রেড করেছি। প্রক্রিয়া প্রায় সব symlinks যে সরিয়েছি মনে হচ্ছে homebrewরাখা /usr/local/bin। আমি যখন জিনিসগুলি অনুপস্থিত দেখি তখন আমি তাদের মাধ্যমে পুনরায় সংযুক্ত করি brew unlink <keg> && brew link <keg>(যদিও সিমলিংকগুলি চলে গেছে, homebrewতবুও তারা মনে করে যে তারা সেখানে আছে তাই আমার unlinkপ্রথমে প্রয়োজন )। এটি কিছুটা অদক্ষ অনুভব করে।

আমি কেবল সমস্ত কিছু লুপ করতে পারি /usr/local/Cellarতবে প্রতিটি ক্যাগ স্বয়ংক্রিয়ভাবে সংযুক্ত থাকে না এবং আমি সেগুলি লিঙ্ক করতে চাই না। সুতরাং আমার পরবর্তী অনুমানটি হ'ল প্রতিটি লিঙ্কযুক্ত কেগ তালিকাভুক্ত করা এবং সেগুলি পুনরায় সংযুক্ত করা (উপরের ব্যবহার করে)।

এমন কিছু ম্যাজিক কমান্ড রয়েছে যা homebrew মনে করে যে সমস্ত ক্যাগগুলি লিঙ্কযুক্ত বলে মনে হয় যাতে আমি সেগুলি পুনরায় সংযুক্ত করতে পারি?


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

উত্তর:


39

/usr/local/Library/LinkedKegs মনে হয়, ভাল, সংযুক্ত kegs এর একটি তালিকা রয়েছে, সুতরাং এটি কৌশলটি করা উচিত:

ls -1 /usr/local/Library/LinkedKegs | while read line; do
    echo $line
    brew unlink $line
    brew link --force $line
done

আমি /usr/local/libচেষ্টা করার আগে আবার আপনার কাছে লেখার অনুমতি রয়েছে কিনা তা নিশ্চিত করার পরামর্শ দেব ।


অত্যন্ত নিশ্চিত যে এটি সবেমাত্র আমার হোমব্রুকে কাজের ক্রমে পুনরুদ্ধার করেছে। ধন্যবাদ!
রবার্ট ম্যাসাওলি

আশ্চর্যজনক, আপনাকে ধন্যবাদ :) আপনি যদি কিছু মনে করেন না তবে এটি থেকে কেবল একটি বাক্য তৈরি করেছেন, আমি নিশ্চিত যে আমরা এই সমস্যার মুখোমুখি একমাত্র ব্যক্তিই নই
স্টোন আলেসান্দ্রো

1
না, না --force! brew linkপর্যাপ্ত পরিমাণে হওয়া উচিত এবং কিছু ক্যাগগুলি সত্যই লিঙ্কযুক্ত করা উচিত নয় (কারণ তারা সিস্টেম লাইব্রেরিগুলির সাথে দ্বন্দ্ব করতে পারে), তবে --forceতাদের লিঙ্কটি জোর করে।
ক্রিস জেফারসন

হাহ। দেখে মনে হচ্ছে আমিও মুছে ফেলেছি /usr/local/Library
কাইল স্ট্র্যান্ড

59

এই ব্যাশ কমান্ড (থেকে নেওয়া সেখানে ) সমস্ত ইনস্টল সূত্র লিঙ্কমুক্ত হবে এবং তারপর আবার তাদের সংযোগ আছে:

brew list -1 | while read line; do brew unlink $line; brew link $line; done

আমি অনুমান করি যে সমস্ত সূত্রগুলি লিঙ্ক করা দরকার, অন্যথায়, যে কোনও সরঞ্জাম তাদের উপর নির্ভর করে, সেগুলি খুঁজে পাবে না ..


আমি নিশ্চিত নই যে সমস্ত সূত্রকে সংযুক্ত করা দরকার। কিছু কেবল-কেবল হয় তবে আমি জানি না কোনটি, যেহেতু কিছু অন্যের নির্ভরতা হিসাবে ইনস্টল করা হয়েছিল।
লুপ স্পেস

4
দেখে মনে হচ্ছে আপনি "সতর্কতা: এক্সটেম্পোর কেবল-কেবল এবং এটি অবশ্যই
--ফোর্সের

2
এখানে xargs ব্যবহার করে একটি সমতুল্য সংস্করণ:brew list -1 | xargs -I formula sh -c "brew unlink formula && brew link formula"
পলমেলিকো

ব্যবহার দুর্দান্ত। আমি 10.12.6 ম্যাক ওএস ব্যবহার করছি
রাজু আপনার পেপ

8

এই প্রশ্নের অন্যান্য উত্তর ছাড়াও, আপনার একাধিক সংস্করণ ইনস্টল করা সূত্রটি পুনরায় সংযোগের প্রয়োজন হতে পারে ( brew linkএটি আপনার জন্য করবে না)।

প্রথমে আপনি করতে পারেন এমন সমস্ত সূত্র রিলিঙ্ক করুন:

brew list -1 | while read line; do brew unlink $line; brew link --force $line; done

তারপরে দৌড়াও brew doctor, যা অভিযোগ করবে এবং আপনাকে দুটি তালিকা দেবে:

  • একাধিক সংস্করণ সহ লিঙ্কযুক্ত সূত্র
  • মূল-পুনরায় সংযোগ প্রক্রিয়া দ্বারা কেগ-কেবল সূত্রগুলি ভুলভাবে লিঙ্ক করা হয়েছে।

একাধিক সংস্করণ সহ প্রতিটি সূত্রের জন্য সূত্রের নামের সাথে "পাইথন" প্রতিস্থাপন করে নিম্নলিখিতটি চালান:

brew info python  

এটি আপনাকে অন্যান্য ইনস্টলিত সংস্করণগুলির সাথে দেখাবে। আপনি কোন সংস্করণটি লিঙ্ক করতে চান তা চয়ন করুন (আমার জন্য এটির 2.7.6), এবং ব্যবহার করুনbrew switch

brew switch python 2.7.6

আপনি brew unlinkলিঙ্কযুক্ত কেবল-কেবল সূত্রের তালিকায় (যদি থাকে তবে) চালাতেও চাইবেন ।

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