উত্তর:
পাস্কেল উত্তর দ্বারা অনুপ্রাণিত
#!/usr/bin/env bash
(set -x; brew update;)
(set -x; brew cleanup;)
(set -x; brew cask cleanup;)
red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`
casks=( $(brew cask list) )
for cask in ${casks[@]}
do
version=$(brew cask info $cask | sed -n "s/$cask:\ \(.*\)/\1/p")
installed=$(find "/usr/local/Caskroom/$cask" -type d -maxdepth 1 -maxdepth 1 -name "$version")
if [[ -z $installed ]]; then
echo "${red}${cask}${reset} requires ${red}update${reset}."
(set -x; brew cask uninstall $cask --force;)
(set -x; brew cask install $cask --force;)
else
echo "${red}${cask}${reset} is ${green}up-to-date${reset}."
fi
done
এর মানে কি
brew cask info
নতুন সংস্করণ জন্য পরীক্ষা করুনউত্স: https://gist.github.com/atais/9c72e469b1cbec35c7c430ce03de2a6b
অধৈর্য জন্য একটি লাইন:
curl -s https://gist.githubusercontent.com/atais/9c72e469b1cbec35c7c430ce03de2a6b/raw/36808a0544628398f26b48f7a3c7b309872ca2c6/cask_upgrade.sh | bash /dev/stdin
হিসাবে সংরক্ষণ করুন /usr/local/bin/cask-upgrade
, যাতে আপনি স্থানীয়ভাবে এটি cask-upgrade
পরে চালাতে পারেন
brew cask uninstall --force
যদি পুরানো সংস্করণটি সেখানে না রাখতে চান তবে নতুন সংস্করণ ইনস্টল করার আগে আপনাকে চালনা করতে হবে।
আমি মনে করি এটি এখন পর্যন্ত ক্যাসকে আপগ্রেড করার সেরা সমাধান।
উত্স: https://github.com/buo/homebrew-cask-upreg
ইনস্টলেশন ও ব্যবহার
brew tap buo/cask-upgrade
brew update
brew cu
(Alচ্ছিক) সর্বশেষতম হিসাবে চিহ্নিত চিহ্নিতগুলি সহ পুরানো অ্যাপ্লিকেশনগুলিকে আপগ্রেড করুন:
brew cu --all
অন্য উত্তরের উদ্ধৃতি যেমন বলেছে, বর্তমানে সমস্ত আপডেট হওয়া ক্যাসকে আপগ্রেড করার কোনও উপায় নেই।
উত্তরের দ্বিতীয় অংশটি ভুল, যদিও: brew upgrade --all
ক্যাকগুলি আপগ্রেড করতে পারে না।
সমস্ত ক্যাসকে আপগ্রেড করার একমাত্র উপায় হ'ল ইনস্টল করা কাস্কগুলির একটি তালিকা পাওয়া এবং তাদের পুনরায় ইনস্টল করার জন্য জোর করা - যার সাথে কোনও পরিবর্তন হয়নি including
ইন মাছ , আপনি যে এই রকম কাজ করতে পারে:
for app in (brew cask list)
brew cask install --force $app
end
সম্পাদনা:
আটাইস একটি স্ক্রিপ্ট তৈরি করেছে যা কাজ করে: প্যাকেজগুলি আপগ্রেড করার জন্য স্ক্রিপ্টটি বাশ করে ।
দয়া করে এই উত্তরটির চেয়ে তার উত্তরটিকে উজ্জীবিত করুন।
brew cask update
এবং কেবলমাত্র প্যাকেজগুলি বর্তমানে আপগ্রেড করার জন্য পূর্ববর্তী প্রতিক্রিয়া অনুসরণ করুন: আপেল.স্ট্যাকেক্সেঞ্জা.কম
homebrew cask
ডকুমেন্টেশন থেকে :
যেহেতু হোমব্রু-ক্যাসক সংগ্রহস্থলটি হোমব্রিউউ ট্যাপ, আপনি নিয়মিত হোমব্রিউ কমান্ডটি প্রতিবারই প্রতিবার সর্বশেষতম ক্যাসকে টেনে নামিয়ে আনবেন
brew update
। বর্তমানে, হোমব্রু-ক্যাস্কটি কোনও অ্যাপ্লিকেশন আপডেট করা হয়েছে কিনা তা সর্বদা সনাক্ত করতে পারে না। আপনি কমান্ডের মাধ্যমে একটি আপডেট জোর করতে পারেনbrew cask install --force
। আমরা এর উন্নতিতে কাজ করছি।
নিম্নলিখিত উত্সাহ সূত্র এবং ক্যাস উভয়ই আপগ্রেড করার জন্য পর্যাপ্ত হওয়া উচিত।
brew upgrade --all
brew upgrade --all
এখন সমতুল্য brew upgrade
। কমান্ডগুলি সেই আদেশ দ্বারা আপগ্রেড হয় না।
আমার .bash_ প্রোফাইলে যা আছে তা এখানে আমি হোমব্রিউয়ের একটি সম্পূর্ণ আপগ্রেড পাস করতে চালাচ্ছি। প্রতিটি আপডেটের জন্য বার বার বিশাল ডাউনলোডগুলি বার করা থেকে বিরত রাখতে আমি কয়েকটি আইটেম "পিন" করি, কারণ তাদের সংস্করণগুলি সর্বদা "সর্বশেষ" থাকে বা সেগুলি আপগ্রেড করা উচিত নয়।
boop() {
brew update && brew upgrade && brew cleanup \
&& cask-upgrade && cask-retire && brew cask cleanup \
&& brew doctor && brew cask doctor
}
__is_pinned() {
local pinned=";pixate-studio;sketchup;skype;"
[[ *";${1};"* != "${pinned}" ]] && return 0 || return 1
}
cask-upgrade() {
while read -r; do
reply=(${REPLY})
name="${reply[0]}"
vers="${reply[1]}"
if ! __is_pinned "${name}"; then
if [[ "${vers}" == "latest" ]]; then
brew cask install "${name}" --force
else
brew cask install "${name}" 2> >(grep -v "re-install")
fi
fi
done < <(brew cask list --versions)
}
cask-retire() {
room="/opt/homebrew-cask/Caskroom"
while read -r; do
reply=(${REPLY})
name="${reply[0]}"
vers="${reply[1]}"
if ! __is_pinned "${name}"; then
for inst in $(ls "${room}/${name}"); do
if [[ "${inst}" != "${vers}" ]]; then
echo "Removing ${name} version ${inst}"
rm -r "${room}/${name}/${inst}"
fi
done
fi
done < <(brew cask list --versions)
}
Zsh এ ব্রু ক্যাস অ্যাপগুলি পুনরায় ইনস্টল করতে:
brew cask update;
for app in $(brew cask list); do
brew cask uninstall --force ${app}
brew cask install --force ${app}
done
brew cask
ইনস্টলেশন থাকতে পারে যার জন্য ব্যবহারকারীর ইনপুট প্রয়োজন (যেমন - কোয়ার্টজ) । এছাড়াও, প্রতিটি অ্যাপ্লিকেশন পুনরায় ইনস্টল করার আগে এটি আনইনস্টল করা প্রয়োজন। আদর্শভাবে আপনারও brew cask update
প্রথমটির মতো একটি আপডেট চালানো উচিত ।
এটি সত্যিই আমাকে বিরক্ত করেছে তাই আমি সমস্ত স্ক্রু অ্যাপ্লিকেশন আপডেট করার জন্য এবং স্ক্র্যাপটিকে কোন ক্যাস্ক অ্যাপ্লিকেশন আপডেট করতে হবে তা চয়ন করার অনুমতি দেওয়ার জন্য এই স্ক্রিপ্টটি তৈরি করেছি। আপনি বিবেচনা থেকে অ্যাপস বাদ দিতে পারেন।
https://github.com/derrekyoung/ScriptsAndUtils/blob/master/brew-cask-upgrade.sh
আমি @ মধ্যে eduncan911 এর উত্তর সুপারিশ স্ট্যাক ওভারফ্লো উপর সহযোগীর প্রশ্ন ।
সংক্ষেপে:
brew-cask.sh
কেবল হোমব্রিউয়ের মতোই একটি আউটপুট তালিকাভুক্ত করে brew update
। উপরের তালিকাটিতে সমস্ত প্যাকেজ ইনস্টলড ✔
রয়েছে যা সবুজ কোনও পেন্ডিং আপডেটের সাথে ইঙ্গিত করে।brew-cask.sh
আপগ্রেড those প্যাকেজগুলির আপগ্রেডকে বাধ্য করবে।তার রেপো থেকে এটি ইনস্টল করুন:
$ curl -L https://raw.githubusercontent.com/eduncan911/dotfiles/master/bin/brew-cask.sh --create-dirs -o ~/bin/brew-cask.sh
$ chmod 755 ~/bin/brew-cask.sh
তারপরে এটি ব্যবহার করুন:
$ brew-cask.sh
$ brew-cask.sh upgrade
আমি নিজেই এরকম স্ক্রিপ্ট তৈরি করেছি। দয়া করে গিথুব https://github.com/pesh1983/brew_cask_upgrade দেখুন । এটির চমত্কার বর্ণনা রয়েছে তবে আপনার যদি কোনও অতিরিক্ত প্রশ্ন থাকে তবে নির্দ্বিধায় আমাকে জিজ্ঞাসা করুন। এটি ন্যায্য আপগ্রেড করে: আনইনস্টল করুন এবং ইনস্টল করুন, সুতরাং কোনও প্রয়োজনীয় পরিষ্কার-পরিচ্ছন্নতা নিজেই 'ব্রু' দ্বারা সম্পাদিত হবে।
এটি সম্ভবত একটি মন্তব্য হিসাবে আরও উপযুক্ত হবে, তবে আমার একটি উত্তর দেওয়ার যথেষ্ট খ্যাতি নেই, তাই ...
এই লেখার মতোই homebrew-cask
এর নিজস্ব আপগ্রেড সিস্টেম রয়েছে এবং তাই তৃতীয় পক্ষের স্ক্রিপ্ট এবং সরঞ্জামগুলির আর প্রয়োজন নেই।
পুরানো ক্যাসকে তালিকাবদ্ধ করতে: brew cask outdated
সমস্ত পুরানো ক্যাসকে আপগ্রেড করতে: brew cask upgrade
for app in $(brew cask list); do
cver="$(brew cask info "${app}" | head -n 1 | cut -d " " -f 2)"
ivers=$(ls -1 "/opt/homebrew-cask/Caskroom/${app}/.metadata/" | tr '\n' ' ' | sed -e 's/ $//')
aivers=(${ivers})
nvers=$(echo ${#aivers[@]})
echo "[*] Found ${app} in cask list. Latest available version is ${cver}. You have installed version(s): ${overs}"
if [[ ${nvers} -eq 1 ]]; then
echo "${ivers}" | grep -q "^${cver}$" && { echo "[*] Latest version already installed :) Skipping changes ..."
continue; }
fi
echo "[+] Fixing from ${ivers} to ${cver} ..."
brew cask uninstall "${app}" --force
brew cask install "${app}"
done