ฉันต้องการบังคับให้อัปเดตแอปพลิเคชัน App Store จากบรรทัดคำสั่ง
ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันต้องการบังคับให้อัปเดตแอปพลิเคชัน App Store จากบรรทัดคำสั่ง
ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
Apple ไม่ได้จัดหาผู้ช่วยบรรทัดคำสั่งหรือคลาสโกโก้ที่สามารถสคริปต์ได้ซึ่งคุณสามารถใช้เป็นระบบอัตโนมัติได้ แตกต่างจากการอัปเดตซอฟต์แวร์โดยรวมซึ่งอนุญาตให้อัปเดตและติดตั้งนอกกรอบคุณสามารถสคริปต์กระบวนการของการคลิกปุ่มด้วยเมาส์โดยใช้ Automator
อย่างไรก็ตามแอพสโตร์ได้รับการออกแบบทางวิศวกรรมย้อนกลับและเปิดตัวโอเพ่นซอร์สรวมถึงรูปแบบไบนารี :
การติดตั้งนั้นรวดเร็วและดูเหมือนจะเชื่อถือได้ใน OS X 10.11 เวอร์ชันปัจจุบัน:
brew install argon/mas/mas
เมื่อมีการเปิดตัวแหล่งที่มาฉันคาดว่าการใช้งานอื่น ๆ ของเครื่องมือนี้จะปรากฏขึ้นบางทีแม้แต่สคริปต์หนึ่งกับงูหลาม
หากมีคนลงชื่อเข้าใช้ mac (windowmanager กำลังทำงานอยู่) คุณสามารถใช้ 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
กระบวนการและยังเชื่อมต่อกับ App Store บน Mountain Lion - แต่มันเป็นเพียงสำหรับแอพที่ไม่ใช่ App Store
App Store นั้นไม่เหมาะสำหรับการดูแลระบบ แทบจะไม่เป็นผู้จัดการแพคเกจเสมือนมันไม่ได้มีประโยชน์หรือน่าเชื่อถือเท่าที่ผู้จัดการแพคเกจจริงเช่น pkgsrc, พอร์ต FreeBSD, ความถนัด, RPM, macports หรือแม้กระทั่ง softwareupdate จากประสบการณ์ของฉันมันเป็นสิ่งที่คาดเดาไม่ได้และเป็นเคราสำหรับนักพัฒนาเชิงพาณิชย์ที่จะขายเครื่องถ้วยของพวกเขา ดังนั้นจึงเป็นวิธีเดียวที่มีเหตุผลและมีความรับผิดชอบในฐานะผู้ดูแลระบบที่มีความสามารถในการทำงานกับ 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
สิ่งที่อยู่ในไฟล์ Payload ซึ่งเป็นไฟล์เก็บถาวร cpio ที่ถูกบีบอัดด้วย gzip คือสิ่งที่คุณต้องการ ดังนั้นด้วยคำสั่ง piped สองสามคำเราสามารถไปที่มัดแอพ:
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
เจาะลึกไปที่ Payload:
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
ติดตั้งการอัพเดทที่มีทั้งหมด