ওএস এক্স আপগ্রেড করার পরে আমার হোমব্রিউ ইনস্টলেশনটি কীভাবে ঠিক করব?


25

প্রসঙ্গ

আমার নিয়োগকর্তা আমাকে উন্নয়ন কাজের জন্য একটি ম্যাকবুক প্রো দিয়েছেন; যাইহোক, আমি আমার গবেষণা গ্রুপে বেশিরভাগ উন্নয়ন কাজ লিনাক্স প্ল্যাটফর্মের জন্য এবং অনেক নীতিগত কারণে, আমি এই ল্যাপটপে ভার্চুয়ালাইজেশন সফ্টওয়্যার ইনস্টল করতে পারি না। হোমব্রিউ দেখতে এই দুর্দান্ত সরঞ্জামগুলি ইনস্টল করার জন্য একটি দুর্দান্ত পদ্ধতির মতো দেখাচ্ছে, বিশেষত এটি দেখতে খুব হ্যাকযোগ্য বলে মনে হয় (যেহেতু এটি রুবি ব্যবহার করে; ম্যাকপোর্টগুলি হ্যাকযোগ্য দেখাচ্ছে না, কারণ এটি টিসিএল ব্যবহার করে)। তবে হোমব্রু সিস্টেম লাইব্রেরিগুলিতে নির্ভর করে এবং সুরক্ষার কারণে আমার নিয়োগকর্তা (এবং আমি যা শুনি তা থেকে) যেকোন সময় আমার সিস্টেমকে আপগ্রেড করতে পারে। আমি শুনেছি ওএস এক্স আপগ্রেডগুলি হোমব্রিউকে ভেঙে দেবে। (উদাহরণস্বরূপ, /programming/7779300/how-should-i-upgrade-xcode- after- upgrading- to- os- x- lion দেখুন )।

প্রশ্ন

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

উত্তর:


8
brew update

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

#!/bin/sh
# Just copy and paste the lines below (all at once, it won't work line by line!)
# MAKE SURE YOU ARE HAPPY WITH WHAT IT DOES FIRST! THERE IS NO WARRANTY!

function abort {
  echo "$1"
  exit 1
}

set -e

/usr/bin/which -s git || abort "brew install git first!"
test -d /usr/local/.git || abort "brew update first!"

cd `brew --prefix`
git checkout master
git ls-files -z | pbcopy
rm -rf Cellar
bin/brew prune
pbpaste | xargs -0 rm
rm -r Library/Homebrew Library/Aliases Library/Formula Library/Contributions
test -d Library/LinkedKegs && rm -r Library/LinkedKegs
rmdir -p bin Library share/man/man1 2> /dev/null
rm -rf .git
rm -rf ~/Library/Caches/Homebrew
rm -rf ~/Library/Logs/Homebrew
rm -rf /Library/Caches/Homebrew

এবং আবার হোমব্রু ইনস্টল করুন। বেশ নিশ্চিত যে এই সমস্ত পুতুল ব্যবহার করে কনফিগার করা যায়।


7

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

আমার সমস্যা ছিল, বিশেষত যখন ওএস এক্স মাভারিক্স এবং এক্সকোড 5 এ পরিবর্তন করার সময় আমার ইনস্টল থাকা সমস্ত প্যাকেজগুলি পুনরায় লিঙ্ক করতে হয়েছিল - আমার স্ক্রিপ্টটি এখানে:

#!/bin/bash
FORMULAS=(`brew list`);
for FORMULA in "${FORMULAS[@]}"
do 
    echo "brew unlink $FORMULA" && echo "brew link $FORMULA";
    OUTPUT=`brew unlink $FORMULA`;
    echo $OUTPUT;
    OUTPUT=`brew link $FORMULA`;
    echo $OUTPUT;
done

আউটপুট নোট করুন, পদক্ষেপের --forceজন্য কিছু সূত্রের প্রয়োজন হবে link

যদি তা এখনও কাজ না করে, মাইক ম্যাককিউইড থেকে এই কমান্ড সিরিজটি ব্যবহার করে দেখুন :

brew list > brew-list.txt
brew uninstall $(cat brew-list.txt)
brew install $(cat brew-list.txt)

rebuildহোমব্রুতে এখন একটি কমান্ড রয়েছে, তবে এটি বর্তমানে নির্ভরতাগুলি সমাধান করে না।


1
আমি আমার নতুন ম্যাকে ম্যাভেরিক্সের একটি পরিষ্কার ইনস্টল করেছি এবং তার পরে আমি আমার অন্যান্য ম্যাক থেকে একটি টাইম মেশিন ব্যাকআপ পুনরুদ্ধার করেছি। এটি হোমব্রিউ এবং এর সূত্রগুলি সহ ইনস্টল হওয়া সমস্ত কিছু দিয়ে কম্পিউটার রেখেছিল, তবে সেগুলির সমস্ত লিঙ্কযুক্ত ছিল। আমি স্ক্রিপ্টটি একবারে সমস্ত সূত্র পুনরায় লিঙ্ক করতে এবং এটি ঠিক করেছি! ধন্যবাদ একটি মোহন মত কাজ করে।
আলেজান্দ্রো গার্সিয়া ইগলেসিয়াস

1
একটি সম্পর্কিত সমস্যায় আমাকে সমস্ত ট্যাপ আনটপ / ট্যাপ করতে হয়েছিল, অন্যথায় ব্রিউ কিছু সূত্র খুঁজে পাবে না যদিও এটি দাবি করেছে যে সঠিক টেপটি ইতিমধ্যে ট্যাপ হয়ে গেছে। for tap in $(brew tap); do brew untap "$tap"; brew tap "$tap"; done
জোয়েল পুররা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.