모든 업그레이드 할 수있는 방법이 brew cask
있습니까? 같은 것 brew cask upgrade
?
답변
패키지를 업그레이드하기위한 Bash 스크립트
파스칼 답변에서 영감을
#!/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
답변
2017 년 12 월 현재입니다 brew cask upgrade
.
답변
자가 맥주 통 업그레이드
나는 이것이 통을 업그레이드하는 가장 좋은 해결책이라고 생각합니다.
출처 : https://github.com/buo/homebrew-cask-upgrade
설치 및 사용법
brew tap buo/cask-upgrade
brew update
brew cu
(선택 사항) 최신으로 표시된 앱을 포함하여 오래된 앱을 강제로 업그레이드합니다.
brew cu --all
답변
다른 답변의 인용에서 알 수 있듯이 현재 업데이트 된 모든 통을 업그레이드 할 수있는 방법이 없습니다.
그러나 대답의 두 번째 부분은 잘못되었습니다 brew upgrade --all
. 통을 업그레이드 할 수 없습니다.
모든 통을 업그레이드하는 유일한 방법은 설치된 통의 목록을 가져 와서 변경하지 않은 통을 포함하여 강제로 다시 설치하는 것입니다!
에서 물고기 ,이 같은 것을 할 수 있습니다 :
for app in (brew cask list)
brew cask install --force $app
end
편집하다:
Atais는 작동하는 스크립트를 작성했습니다. Bash script to upgrade packages .
이것보다는 그의 대답을 찬성하십시오.
답변
로부터 homebrew cask
문서 :
homebrew-cask 저장소는 Homebrew Tap이므로 일반 Homebrew 명령을 실행할 때마다 최신 Casks를 풀다운합니다
brew update
. 현재, homebrew-cask는 응용 프로그램이 업데이트되었는지 항상 감지 할 수 없습니다. 명령을 통해 강제로 업데이트 할 수 있습니다
brew cask install --force
. 우리는 이것을 개선하기 위해 노력하고 있습니다.
다음은 추출 공식과 통을 모두 업그레이드하기에 충분해야합니다.
brew upgrade --all
답변
.bash_profile에 homebrew의 전체 업그레이드 패스를 수행하기 위해 실행 한 내용이 있습니다. 버전이 항상 “최신”이거나 업그레이드되어서는 안되기 때문에 모든 업데이트에 대해 거대한 다운로드가 반복적으로 가져 오지 않도록하기 위해 몇 가지 항목을 “고정”합니다.
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 앱을 다시 설치하려면
brew cask update;
for app in $(brew cask list); do
brew cask uninstall --force ${app}
brew cask install --force ${app}
done