명령 줄에서 App Store 응용 프로그램을 강제로 업데이트하고 싶습니다.
어떻게해야합니까?
명령 줄에서 App Store 응용 프로그램을 강제로 업데이트하고 싶습니다.
어떻게해야합니까?
답변:
Apple은 자동화를 위해 잠글 수있는 명령 줄 도우미 나 스크립트 가능한 코코아 클래스를 제공하지 않습니다. 즉시 업데이트 및 설치가 가능한 전체 소프트웨어 업데이트와 달리, Automator를 사용하여 마우스로 버튼을 클릭하는 프로세스를 스크립팅 할 수 있습니다.
그러나 앱 스토어는 리버스 엔지니어링되어 오픈 소스 와 바이너리 형식을 출시했습니다 .
설치가 빠르며 현재 버전의 OS X 10.11에서 매우 안정적인 것으로 보입니다.
brew install argon/mas/mas
소스가 공개되면이 도구의 다른 구현, 아마도 파이썬으로 작성된 스크립트가 나타날 것으로 기대합니다.
누군가가 Mac에 로그인 한 경우 (윈도우 관리자가 실행 중), Automator 및 "나를 감시하십시오"기능을 사용하여 업데이트를 자동화하고 스크립트에 상점 암호를 상당히 안전하지 않게 저장할 수 있습니다.
다음은 필요에 따라 시작할 수있는 두 가지 자습서입니다.
http://www.tuaw.com/2009/01/19/mac-automation-creating-watch-me-do-workflows/
http://automator.us/leopard/features/virtual-user.html
작업 스크립트가 있으면 명령 행 open
명령을 사용하여 시작할 수 있습니다.
App Store 앱이 해당 기능을 스크립팅에 노출시키는 경우 명령 행에서 더 많은 옵션이 제공됩니다. 그것은 쉽게 사용하는 것 sdef
, sdp
그리고 gen_bridge_metadata
에 루비를 사용하여 전체 스크립트 사전 및 스크립트 일 덤프 명령 줄에서, 그러나 현재 최고의 옵션은 사용하는 것입니다 mas
명령 줄 도구를.
softwareupdate
프로세스가 있으며 Mountain Lion의 App Store에 연결되기도하지만 비 App Store 앱 전용입니다.
App Store는 단순히 관리에 적합하지 않습니다. 준 패키지 관리자는 거의 없지만 pkgsrc, FreeBSD 포트, 적성, RPM, macports 또는 심지어 소프트웨어 업데이트와 같은 실제 패키지 관리자만큼 유용하거나 신뢰할 수는 없습니다. 내 경험상, 상업용 개발자가 자신의 실력을 쌓는 것은 예측할 수없는 수염입니다. 따라서 유능한 관리자로서 App Store 작업을하는 합리적이고 책임있는 방법은 단 하나뿐입니다.
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.store_helper.plist
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.storeagent.plist
sudo mkdir /System/Library/LaunchAgents\ \(disabled\)/
sudo mv /System/Library/LaunchAgents/com.apple.store* /System/Library/LaunchAgents\ \(disabled\)/
그리고 그냥 마음 속에두면 더 이상 문제가되지 않습니다. ;-)
패키지 관리자는 아니지만 ARD를 대신 사용하여 패키지, 설치, 업데이트 및 업그레이드를 관리하고 원하는 작업을 수행하고 시간을 절약하며 실망시키지 않습니다.
Apple Remote Desktop 3의 경우 10.9 :
먼저 관리자 안내서를 확인하여이 방법이 올바른지 확인하십시오.
curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf
open ARD3_AdminGuide.pdf
그런 다음 설치하십시오.
curl -Ok http://supportdownload.apple.com/download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/Mac_OS_X/downloads/031-2845.20140313.rerft/RemoteDesktopAdmin372.dmg
hdiutil attach -quiet -noverify -nobrowse -noautoopen RemoteDesktopAdmin372.dmg
sudo installer -pkg /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg -target /
그러나 10.9를 실행하지 않거나 이전 버전의 ARD가 설치되어 있지 않은 경우 재미있는 오류가 발생할 수 있습니다.
pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg ARDexpanded/
또는 동등한 효과를 내기 위해 (또는 여기에서 pkgutil과 xar를 모두 사용할 필요는 없습니다 ... 나는 철저히하고 있습니다) :
mkdir ARDexpanded
cd ARDexpanded
xar -xf /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg
더 이상 디스크 이미지를 첨부 할 필요가 없으므로 꺼내십시오.
hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/
그리고 지금 당신이 볼 수있는 것
cd ARDexpanded/RemoteDesktopAdmin372.pkg/
ls
이다
Bom PackageInfo Payload Scripts
gzip으로 압축 된 cpio 아카이브 인 Payload 파일의 내용은 다음과 같습니다. 따라서 몇 가지 파이프 명령을 사용하면 앱 번들로 이동할 수 있습니다.
cat Payload | gzip -d - | cpio -id
ls
보고:
Applications Bom Library PackageInfo Payload Scripts
그리고 거의 끝났습니다.
cp -R Applications/Remote\ Desktop.app /Applications/
이제 Apple Remote Desktop Admin 3.7.2를 설치했습니다
남은 일은 라이센스를 구매하는 것입니다.
open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat
/ Applications / Remote \ Desktop.app을 시작하고 직렬화하십시오. 그리고 몇 가지 작업을 수행하십시오.
10.6 Snow Leopard의 경우 약간 이전 버전의 ARD가 필요합니다.
curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf
curl -Ok http://supportdownload.apple.com/download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/Mac_OS_X/downloads/041-6789.20120917.xD6TR/RemoteDesktopAdmin353.dmg
hdiutil attach -quiet -noverify -nobrowse -noautoopen RemoteDesktopAdmin353.dmg
sudo installer -pkg /Volumes/Apple\ Remote\ Desktop\ 3.5.3\ Admin\ Update/RemoteDesktopAdmin353.pkg -target /
그리고 그것이 당신에게 다시 던져지면 :
installer: Cannot install on volume / because it is disabled.
installer: This update could not find Remote Desktop on this volume.
그런 다음 시도하십시오.
pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.5.3\ Admin\ Update/RemoteDesktopAdmin353.pkg ARD353
hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.5.3\ Admin\ Update
페이로드로 드릴 다운하십시오.
cd ARD353/RemoteDesktopAdmin353.pkg/
ls
보고:
Bom PackageInfo Payload Scripts
그래서 실행하십시오 :
cat Payload | gzip -d - | cpio -id
ls
보고:
Applications Bom Library PackageInfo Payload Scripts
그리고 거의 끝났습니다.
cp -R Applications/Remote\ Desktop.app /Applications/
라이센스를 구매하십시오 :
open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat
/ Applications / Remote \ Desktop.app을 시작하고 직렬화하십시오. 그리고 무언가를 끝내십시오.
softwareupdate
도구 를 사용할 수 있습니다 .
sudo softwareupdate -l
사용 가능한 모든 업데이트를 나열합니다.
sudo softwareupdate -ia
사용 가능한 모든 업데이트를 설치합니다.