ব্রিউ কাস্ক আপগ্রেড করার কোনও উপায় আছে কি?


37

সমস্ত আপগ্রেড করার কোন উপায় আছে brew cask? এরকম কিছু brew cask upgrade?

উত্তর:


23

প্যাকেজ আপগ্রেড করতে স্ক্রিপ্টে বাশ করুন

পাস্কেল উত্তর দ্বারা অনুপ্রাণিত

#!/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পরে চালাতে পারেন


কবজির মতো কাজ করেছেন। প্রথমে তারিখের প্যাকেজগুলির মধ্যে প্রথমে তালিকার জন্য জিজ্ঞাসা করা ভাল। এটি করার জন্য স্ক্রিপ্টটি টুইট করার পক্ষে যথেষ্ট সহজ।
eduncan911

ধন্যবাদ! আপনি কি সরাসরি হোমব্রিউ ক্যাসকে এই সংহত করার চেষ্টা করেছেন? আমি কেবল এটিকে মাছে রূপান্তরিত করেছি এবং এটি আমার পক্ষেও কাজ করে। এটি আমার কাছেও প্রকাশিত হয়েছিল যে আমি বর্তমানেরগুলি ইনস্টল করার পরেও কিছু পুরানো সংস্করণ উপস্থিত ছিল।
পাস্কাল

আপনি brew cask uninstall --forceযদি পুরানো সংস্করণটি সেখানে না রাখতে চান তবে নতুন সংস্করণ ইনস্টল করার আগে আপনাকে চালনা করতে হবে।
পাস্কাল

@ পাসল হ্যাঁ আমি লক্ষ্য করেছি যে এখানে আমারও প্রচুর পুরানো সংস্করণ রয়েছে। শীঘ্রই আমি আনইনস্টল কমান্ড যুক্ত করব।
আতাইস

@ আটাইস এখনও কি ডাইনোস্টলেশন আপনার জন্য ধারাবাহিকভাবে কাজ করে? কিছু ক্যাস্ক এখন আমার স্ক্রিপ্ট সহ সংস্করণ নম্বর সহ একটি খালি ফোল্ডার রেখে দেয় যা সংস্করণ চেকিংয়ের সাথে গোলযোগ করে।
পাসকাল


19

homebrew-পিপা-আপগ্রেড

আমি মনে করি এটি এখন পর্যন্ত ক্যাসকে আপগ্রেড করার সেরা সমাধান।
উত্স: https://github.com/buo/homebrew-cask-upreg

ইনস্টলেশন ও ব্যবহার

brew tap buo/cask-upgrade
brew update
brew cu

(Alচ্ছিক) সর্বশেষতম হিসাবে চিহ্নিত চিহ্নিতগুলি সহ পুরানো অ্যাপ্লিকেশনগুলিকে আপগ্রেড করুন:

brew cu --all

12

অন্য উত্তরের উদ্ধৃতি যেমন বলেছে, বর্তমানে সমস্ত আপডেট হওয়া ক্যাসকে আপগ্রেড করার কোনও উপায় নেই।

উত্তরের দ্বিতীয় অংশটি ভুল, যদিও: brew upgrade --allক্যাকগুলি আপগ্রেড করতে পারে না।

সমস্ত ক্যাসকে আপগ্রেড করার একমাত্র উপায় হ'ল ইনস্টল করা কাস্কগুলির একটি তালিকা পাওয়া এবং তাদের পুনরায় ইনস্টল করার জন্য জোর করা - যার সাথে কোনও পরিবর্তন হয়নি including

ইন মাছ , আপনি যে এই রকম কাজ করতে পারে:

for app in (brew cask list)
    brew cask install --force $app
end

সম্পাদনা:

আটাইস একটি স্ক্রিপ্ট তৈরি করেছে যা কাজ করে: প্যাকেজগুলি আপগ্রেড করার জন্য স্ক্রিপ্টটি বাশ করে
দয়া করে এই উত্তরটির চেয়ে তার উত্তরটিকে উজ্জীবিত করুন।


1
ঠিক আছে, মনে রাখবেন যে এটি আসলে আপনার সমস্ত অ্যাপ্লিকেশনগুলি পুনরায় ইনস্টল করবে, কেবল পুরানো
তারিখটি

1
ক্যাস তালিকাগুলি আপগ্রেড করতে, আপনার এখন চালানো উচিত brew cask updateএবং কেবলমাত্র প্যাকেজগুলি বর্তমানে আপগ্রেড করার জন্য পূর্ববর্তী প্রতিক্রিয়া অনুসরণ করুন: আপেল.স্ট্যাকেক্সেঞ্জা.কম
-জেমস ডব্লিউ

@ দানিজেল-জেমসডাব্লু আমি আপনার পরিবর্তনটি ঘুরিয়েছি কারণ এটি ভুল ছিল। এটি অন্যান্য শাঁসে এটি করার উপায় হতে পারে তবে এটি মাছের মধ্যে নেই।
পাস্কাল

10

homebrew caskডকুমেন্টেশন থেকে :

যেহেতু হোমব্রু-ক্যাসক সংগ্রহস্থলটি হোমব্রিউউ ট্যাপ, আপনি নিয়মিত হোমব্রিউ কমান্ডটি প্রতিবারই প্রতিবার সর্বশেষতম ক্যাসকে টেনে নামিয়ে আনবেন brew update। বর্তমানে, হোমব্রু-ক্যাস্কটি কোনও অ্যাপ্লিকেশন আপডেট করা হয়েছে কিনা তা সর্বদা সনাক্ত করতে পারে না। আপনি কমান্ডের মাধ্যমে একটি আপডেট জোর করতে পারেন brew cask install --force। আমরা এর উন্নতিতে কাজ করছি।

নিম্নলিখিত উত্সাহ সূত্র এবং ক্যাস উভয়ই আপগ্রেড করার জন্য পর্যাপ্ত হওয়া উচিত।

brew upgrade --all 

4
এটি আর সত্য নয়। brew upgrade --allএখন সমতুল্য brew upgrade। কমান্ডগুলি সেই আদেশ দ্বারা আপগ্রেড হয় না।
পেশাদাররা

6

আমার .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)
}

2

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প্রথমটির মতো একটি আপডেট চালানো উচিত ।
দানিজেল-জেমস ডাব্লু

@ দানিজেল-জেমসডাব্লু দুর্ভাগ্যক্রমে এটি হ'ল যদি আপনি পুরানো সংস্করণটি না চান।
পাসকাল

1

এটি সত্যিই আমাকে বিরক্ত করেছে তাই আমি সমস্ত স্ক্রু অ্যাপ্লিকেশন আপডেট করার জন্য এবং স্ক্র্যাপটিকে কোন ক্যাস্ক অ্যাপ্লিকেশন আপডেট করতে হবে তা চয়ন করার অনুমতি দেওয়ার জন্য এই স্ক্রিপ্টটি তৈরি করেছি। আপনি বিবেচনা থেকে অ্যাপস বাদ দিতে পারেন।

https://github.com/derrekyoung/ScriptsAndUtils/blob/master/brew-cask-upgrade.sh


1

আমি @ মধ্যে 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

1

আমি নিজেই এরকম স্ক্রিপ্ট তৈরি করেছি। দয়া করে গিথুব https://github.com/pesh1983/brew_cask_upgrade দেখুন । এটির চমত্কার বর্ণনা রয়েছে তবে আপনার যদি কোনও অতিরিক্ত প্রশ্ন থাকে তবে নির্দ্বিধায় আমাকে জিজ্ঞাসা করুন। এটি ন্যায্য আপগ্রেড করে: আনইনস্টল করুন এবং ইনস্টল করুন, সুতরাং কোনও প্রয়োজনীয় পরিষ্কার-পরিচ্ছন্নতা নিজেই 'ব্রু' দ্বারা সম্পাদিত হবে।


1

এটি সম্ভবত একটি মন্তব্য হিসাবে আরও উপযুক্ত হবে, তবে আমার একটি উত্তর দেওয়ার যথেষ্ট খ্যাতি নেই, তাই ...

এই লেখার মতোই homebrew-caskএর নিজস্ব আপগ্রেড সিস্টেম রয়েছে এবং তাই তৃতীয় পক্ষের স্ক্রিপ্ট এবং সরঞ্জামগুলির আর প্রয়োজন নেই।

পুরানো ক্যাসকে তালিকাবদ্ধ করতে: brew cask outdated

সমস্ত পুরানো ক্যাসকে আপগ্রেড করতে: brew cask upgrade


0
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

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