จะอัปเดตแอปพลิเคชัน App Store จากบรรทัดคำสั่งได้อย่างไร


18

ฉันต้องการบังคับให้อัปเดตแอปพลิเคชัน App Store จากบรรทัดคำสั่ง

ฉันจะทำสิ่งนี้ได้อย่างไร


2
ดูเหมือนจะไม่มีผู้ช่วยบรรทัดคำสั่งเหมือนการอัปเดตซอฟต์แวร์โดยรวมดังนั้นคุณอาจถูก จำกัด ให้เรียกใช้สคริปต์ที่จะทำให้คำสั่ง GUI เป็นแบบอัตโนมัติ คุณจะแก้ไขคำถามเพื่ออธิบายให้ชัดเจนหรือไม่หากคุณคาดว่าโซลูชัน "ทำงาน" จะเป็นเทอร์มินัลเท่านั้นหรือหากสคริปต์ Automator ที่จะป้อนรหัสผ่านของคุณเมื่อถูกถามคือสิ่งที่คุณกำลังมองหา
bmike

ฉันกำลังมองหาบางอย่างที่ไม่ต้องใส่ข้อมูลหากยังต้องการรหัส / รหัสผ่าน AppleID ฉันพบว่าตกลงที่จะรวมไว้ในสคริปต์
โซริน

1
นอกจากนี้โปรดดูapple.stackexchange.com/questions/42353/…สำหรับวิธีการแก้ปัญหาที่เรียกแอปของบุคคลที่สาม
bmike

คำตอบ:


6

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เครื่องมือบรรทัดคำสั่ง


1
ว้าวนี่มันน่ารำคาญจริงๆ การอัปเดตซอฟต์แวร์ปกติสามารถสคริปต์ได้อย่างง่ายดายโดยใช้ softwareupdate (8)
Arne

2
ฉันแค่อยากจะบอกสถานะการบันทึก - เป็นที่ชัดเจนว่า Apple ตัดสินใจอย่างจริงจังที่จะทำให้มันยาก / ไม่ได้ให้เครื่องมือหรือขอความช่วยเหลือใด ๆ สำหรับการติดตั้งและอัปเดตอัตโนมัติของ App Store ระบบหลักยังคงมีsoftwareupdateกระบวนการและยังเชื่อมต่อกับ App Store บน Mountain Lion - แต่มันเป็นเพียงสำหรับแอพที่ไม่ใช่ App Store
bmike

4

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 และทำให้เป็นอันดับ และทำบางสิ่งให้สำเร็จ


1
คำตอบที่ดีฉันเรียนรู้สิ่งใหม่ ๆ มากมายที่ฉันสามารถทำได้ใน Terminal +1
ยัก

1

คุณสามารถใช้softwareupdateเครื่องมือ

sudo softwareupdate -l

แสดงรายการอัพเดตที่มีทั้งหมด

sudo softwareupdate -ia

ติดตั้งการอัพเดทที่มีทั้งหมด


สิ่งนี้ใช้ไม่ได้กับแอปพลิเคชั่น Appstore เฉพาะแอปเปิ้ลแพ็คเกจ
Brice

ลองอีกครั้ง: man softwareupdate
Billy McCloskey
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.