macos what होमब्री कास्क के माध्यम से स्थापित सभी कैस्क को अपग्रेड करें




what is apple safari (13)

brew cask outdated | xargs brew cask reinstall --force

मैं ओएस एक्स पर एप्लिकेशन इंस्टॉल करने के लिए होमब्रू कास्क का उपयोग करता हूं। मैं सभी स्थापित कैस्क को अपग्रेड कैसे करूं?


यह वह कार्य है जिसे मैंने संभालने के लिए लिखा है। ध्यान दें कि मैं व्यक्तिगत रूप से यह नहीं चाहता था कि यह सबकुछ फिर से इंस्टॉल करें, क्योंकि मेरे द्वारा उपयोग किए जाने वाले कुछ कास्के को स्थापित करने के लिए कुछ समय लगता है या अतिरिक्त संकेत की आवश्यकता होती है।

brew-cask-upgrade() { 
  if [ "$1" != '--continue' ]; then 
    echo "Removing brew cache" 
    rm -rf "$(brew --cache)" 
    echo "Running brew update" 
    brew update 
  fi 
  for c in $(brew cask list); do 
    echo -e "\n\nInstalled versions of $c: " 
    ls /opt/homebrew-cask/Caskroom/$c 
    echo "Cask info for $c" 
    brew cask info $c 
    select ynx in "Yes" "No" "Exit"; do  
      case $ynx in 
        "Yes") echo "Uninstalling $c"; brew cask uninstall --force "$c"; echo "Re-installing $c"; brew cask install "$c"; break;; 
        "No") echo "Skipping $c"; break;; 
        "Exit") echo "Exiting brew-cask-upgrade"; return;; 
      esac 
    done 
  done 
} 

homebrew-पीपा-अपग्रेड

मुझे लगता है कि यह कैस्क को अपग्रेड करने का सबसे अच्छा समाधान है।
स्रोत: buo/homebrew-cask-upgrade

स्थापना और उपयोग

brew tap buo/cask-upgrade
brew update
brew cu

(वैकल्पिक) पुराने संस्करण को अपग्रेड करने वाले पुराने ऐप्स को अपग्रेड करें:

brew cu --all

दिसंबर 2017 अद्यतन

मैंने सोचा कि यह कभी नहीं होगा, लेकिन आखिरकार होमब्री कास्क के लिए एक आधिकारिक अपग्रेड तंत्र है (कार्यान्वयन के लिए अंक 3396 देखें)! इसका उपयोग करने के लिए, बस यह आदेश चलाएं:

brew cask upgrade

हालांकि यह उन कार्यों को अपडेट नहीं करेगा जिनमें संस्करण जानकारी ( version :latest ) या अनुप्रयोग नहीं हैं जिनमें अंतर्निहित अपग्रेड तंत्र ( auto_updates true ) है। इन कैस्क को पुनर्स्थापित करने के लिए (और परिणामस्वरूप अपग्रेड किए जाने पर उन्हें अपग्रेड करें), अपग्रेड कमांड को इस तरह से - --greedy ध्वज के साथ --greedy :

brew cask upgrade --greedy

मार्च 2017 अपडेट (दिमाग दंड;) (@polo)

मुझे कुछ अपडेट मिले क्योंकि मूल रूप से इसका उत्तर दिया गया था। वर्कअराउंड के लिए, अब आप brew cask reinstall उपयोग कर सकते हैं:

brew cask reinstall <cask_name>
brew cask list | xargs brew cask reinstall

मूल उत्तर में उल्लिखित अंक 4678 को बंद कर दिया गया था और अपग्रेड फीचर अब चर्चा # 29301 में चर्चा की गई है। buo/homebrew-cask-upgrade , एक बाहरी पैकेज जो buo/homebrew-cask-upgrade अपग्रेड कमांड जोड़ता है। मैंने इसे कुछ संकुलों पर सफलतापूर्वक परीक्षण किया है।

मूल उत्तर

होमब्री केक को अपग्रेड करने के लिए कोई आधिकारिक विधि नहीं है। वर्तमान में यह काम किया जा रहा है, लेकिन यह अभी भी पूरा होने से बहुत दूर है। अधिक जानकारी के लिए समस्या # 4678 देखें। उस मुद्दे में स्क्रिप्ट के कुछ उदाहरण भी हैं जो उपयोगकर्ता अपने सभी कार्यों को अपग्रेड करने के लिए उपयोग करते हैं। एक एकल कार्य को अपग्रेड करने का सबसे आसान तरीका brew cask install --force <cask_name> को चलाने के लिए होगा, लेकिन केवल यह जान लें कि इससे आपके ऐप के साथ समस्याएं हो सकती हैं क्योंकि इससे पहले ठीक से अनइंस्टॉल नहीं किया जाएगा। आमतौर पर यह कोई मुद्दा नहीं है।

आप निम्न शेल कमांड का उपयोग कर सभी स्थापित कैस्क को अपग्रेड कर सकते हैं:

brew cask list | xargs brew cask install --force

भविष्य के संदर्भ के लिए, अधिक जानकारी github पर डुप्लिकेट समस्या में पाई जा सकती है।


पुराने कैस्क प्राप्त करें:

ब्रू काका पुराना है

अपग्रेड कैस्क:

ब्रू कास्क पुरानी-कास्क पुनर्स्थापित करें

डेमो स्क्रिप्ट:

$ cat ~/bin/brew_cask_upgrade.sh
#!/bin/bash
red=$(tput setaf 1)
# green=$(tput setaf 2)
reset=$(tput sgr0)

(set -x; brew update;)

for cask in $(brew cask outdated | awk '{print $1}')
do
    echo "${red}update ${cask} ...${reset}."
    (set -x; brew cask install --force "$cask";)
done

echo "${red}brew clean up ...${reset}"
(set -x; brew cask cleanup;)
echo "${red}brew clean up done.${reset}"

brew cask upgrade

upgrade कमांड को हाल ही में होमब्रू कास्क में पेश किया गया है और अन्य उत्तरों में वर्णित सभी अन्य मैन्युअल विधियों को हटा देना चाहिए।


@ एटिस के जवाब के आधार पर, मैंने अपने तर्क को कुछ अच्छे में बढ़ा दिया है। मैं वास्तव में अपग्रेड को मजबूर करने से पहले पैकेज को पहले अपग्रेड करने का निरीक्षण करना चाहता था।

  • $ brew-cask.sh सिर्फ $ brew-cask.sh के brew update के समान आउटपुट सूचीबद्ध करता है।
  • ऊपर दी गई सूची सभी संकुलों को स्थापित करती है, जिसमें एक हरा किसी भी लंबित अपडेट का संकेत देता है।
  • $ brew-cask.sh upgrade उन पैकेजों के $ brew-cask.sh upgrade को मजबूर करेगा।

कोड:

# Usage:
#
#  $ brew update
#    You should execute this first to update everything locally.
#
#  $ brew-cask.sh [update]
#    This will list all of your cask packages and rather there is an upgrade
#    pending with a ✔ checkmark, just like Homebrew does with "brew update".
#    The update command is optional, as it doesn't actually do any tracking, there's
#    not really anything to "update" with cask.  But it keeps with the pattern of
#    of Homebrew's "brew update" pattern for those with memory muscle fingers (like me).
#
#  $ brew-cask.sh upgrade
#    This performs a "brew cask install <cask> --force" of all cask packages that have
#    an update pending.
#
# This code was inspired by http://.com/a/36000907/56693

# get the list of installed casks
casks=( $(brew cask list) )

if [[ "$1" == "upgrade" ]]; then
  for cask in ${casks[@]}; do
    current="$(brew cask info $cask | sed -n '1p' | sed -n 's/^.*: \(.*\)$/\1/p')"
    installed=( $(ls /opt/homebrew-cask/Caskroom/$cask))
    if (! [[ " ${installed[@]} " == *" $current "* ]]); then
      echo "Upgrading $cask to v$current."
      (set -x; brew cask install $cask --force;)
    else
      echo "$cask v$current is up-to-date, skipping."
    fi
  done
else
  echo "Inspecting ${#casks[@]} casks. Use 'brew-cask.sh upgrade' to perform any updates."
  for (( i = i ; i < ${#casks[@]} ; i++ )); do
    current="$(brew cask info ${casks[$i]} | sed -n '1p' | sed -n 's/^.*: \(.*\)$/\1/p')"
    installed=( $(ls /opt/homebrew-cask/Caskroom/${casks[$i]}))
    if (! [[ " ${installed[@]} " == *" $current "* ]]); then
      casks[$i]="${casks[$i]}$(tput sgr0)$(tput setaf 2) ✔$(tput sgr0)"
    fi
  done
  echo " ${casks[@]/%/$'\n'}" | column
fi

बस इसे स्थापित करें (उर्फ "मुझे अब इसकी ज़रूरत है!")

यह मेरे। .dotfiles रेपो में चेक किया गया है; इसलिए, आप इसे अपने ~/bin में जल्दी से इंस्टॉल कर सकते हैं:

$ 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

यदि आपके पास अपने पथ में ~/bin नहीं है, तो ऊपर दिए गए कथनों के लिए उपसर्ग ~/bin/


इसने वास्तव में मुझे परेशान किया है इसलिए मैंने इस ब्रू को सभी ब्रू ऐप्स अपडेट करने के लिए बनाया है और उपयोगकर्ता को यह चुनने की अनुमति है कि कौन से कास्क ऐप्स अपडेट हो जाएं। आप ऐप्स को भी विचार से बाहर कर सकते हैं।

github.com/derrekyoung/ScriptsAndUtils/blob/master/…


इसके साथ स्थापित कैस्क सूचीबद्ध करना संभव है:

brew cask list

और इसके साथ एक कास्क की पुन: स्थापना को मजबूर करें:

brew cask install --force CASK_NAME

तो दूसरे कमांड के आउटपुट को दूसरे में पाइप करना, हम सभी केक अपडेट करते हैं:

brew cask list | xargs brew cask install --force

मैंने जो पढ़ा है उसके आधार पर मैंने एक स्क्रिप्ट बनाई है जो एक ऐसी फाइल तैयार करेगी जो फ़ाइलों को अद्यतन करने के लिए सूचीबद्ध करे, जिसमें नवीनतम रूप से परिभाषित ऐप्स शामिल हैं। फिर आप अपनी आवश्यकताओं के अनुरूप फ़ाइल को संशोधित कर सकते हैं और मेरी olinst स्क्रिप्ट का उपयोग कर अद्यतन स्थापित कर सकते हैं।

अधिक जानकारी के लिए मेरे github पर जाएं।

https://github.com/pacav69/caskroom-offline-install


दिसंबर 2017 के उपयोग के रूप में: ब्रू कास्क अपग्रेड

[दिसंबर 2017 के बाद से हटा दिया गया जब होमब्रू ने कास्क के लिए अपग्रेड कमांड पेश किया] मैं बस निम्नलिखित का उपयोग करता हूं:

brew cask outdated | xargs brew cask reinstall


मैंने खुद ही इस तरह की लिपि बनाई है। कृपया github https://github.com/pesh1983/brew_cask_upgrade । इसमें बहुत अच्छा विवरण है, लेकिन यदि आपके पास कोई अतिरिक्त प्रश्न है, तो मुझसे पूछने में संकोच न करें। यह उचित अपग्रेड करता है: अनइंस्टॉल और इंस्टॉल करें, इसलिए किसी भी आवश्यक क्लीनअप को 'ब्रू' द्वारा ही किया जाएगा।


मैं उपयोग करता हूं

brew cask install --force `brew cask list`




homebrew-cask